2010-01-21 12 views
10

Używam subversion do hostowania mojego własnego repozytorium dla instalacji WordPress. Przygotowałem go tak, aby wszystkie podstawowe pliki WordPressa znajdowały się w ich własnym katalogu (zwanym wordpress) i skonfigurowane tak, aby używały svn: externals do połączenia z repozytorium WordPress. Następnie mam własną kopię katalogu wp-content (znajdującego się poza katalogiem wordpress), który nie używa svn: externals. Wszystko działa dobrze.Jak uzyskać SVN, aby zignorować katalog wewnątrz definicji zewnętrznej

Kiedy aktualizuję moje repozytorium, rdzeń WordPress zostaje zaktualizowany. Ponieważ repozytorium WordPressa zawiera własny katalog wp-content, aktualizuje również ten katalog. Więc moja struktura plików kończy się szuka czegoś takiego:

/ 
--/wordpress/ (wordpress repo) 
-----/wp-admin/ 
-----/wp-content/ 
--/wp-content/ (my local repo) 

I skończyć posiadające dwie oddzielne wersje folderze wp-content (jeden z moich repo i jeden z WordPress repo). Nie chcę tego z repozytorium WordPress (a przynajmniej nie w tej lokalizacji). Czy istnieje sposób dla mnie, aby ustawić svn, aby zignorować katalog wordpress/wp-content, nadal używając definicji zewnętrznych?

+0

Nie wiem, ale przypuszczam, że można spróbować ustawić właściwość 'svn: ignore' w katalogu głównym i zobaczyć, co się stanie. Prawdopodobnie to jednak nie zadziała. –

+0

To wydaje się nie działać. Jak tylko zaktualizuję swoją kopię roboczą, przejdzie i ponownie pobierze pliki zawartości wp. – NerdStarGamer

+0

Jestem trochę spóźniony na to - ale nie sądzę, że jest to problem z powieloną wp-treścią. Zakładając, że zdefiniowałeś 'WP_CONTENT_DIR' na coś w stylu' define ('WP_CONTENT_DIR', dirname (__FILE__). '/ Wp-content'); wtedy WordPress zignoruje własny katalog zawartości wp. – icc97

Odpowiedz

10

Co ’ re naprawdę pytaniem jest, “ można określić --depth dla svn:externals ” a odpowiedź brzmi: nie. Obecnie obiekty zewnętrzne są w pełni rekursywne w podanym katalogu.

Issue 3216 prosi o tę funkcję, ale nie wygląda tak, jakby to była ’.

+0

Hmm, ok. Pomyślałem, że nie możesz zrobić tego, co chciałem, ale miałem nadzieję, że coś przeoczyłem. Dzięki. – NerdStarGamer

0

Można to zrobić z sparse directories (znany również jako płytkich kasach). Nie jestem w 100% pewien, czy działa przy użyciu zewnętrznych, ale nie rozumiem, dlaczego nie.

+1

Nie sądzę, że skromne katalogi jest to, co chcę. Chcę móc ustawić moje repozytorium svn, aby zawsze ignorować ten konkretny plik (w zewnętrznej definicji), a następnie o tym zapomnieć. Nie chcę pisać dodatkowych rzeczy za każdym razem, gdy wprowadzam zmiany. – NerdStarGamer

2

Można utworzyć osobne zewnętrzne dla każdego podfolderu w repozytorium, do którego istnieje odniesienie. Jeśli więc twój zewnętrzny jest na repozytorium z projektami A, B i C, a chcesz tylko A i B, możesz utworzyć osobne zewnętrzne odniesienie do podfolderów dla A i B osobno.

Obecnie robię to z projektem, ale możesz napotkać problemy, jeśli faktycznie wprowadzasz zmiany do zewnętrznych i zatwierdzasz je, ponieważ zmiany w dwóch oddzielnych zewnętrznych nie mogą zostać zatwierdzone atomowo. Ten problem istnieje nawet wtedy, gdy dwa zewnętrzne elementy faktycznie wskazują na to samo repozytorium, które ma sens, ale ważne jest, aby zwrócić uwagę podczas korzystania z tej techniki.

Również, jeśli odpowiadasz za drugie repozytorium, jedną z opcji jest również umieszczenie testów, dokumentacji i innych powiązanych folderów w innym oddzielnym repozytorium z zewnętrznymi kodami źródłowymi w celu oddzielenia ich od głównego repozytorium kodu. W ten sposób foldery te nie zostaną przyciągnięte podczas tworzenia zewnętrznego odwołania z powodu zależności kodu.

-1

Co się stanie, jeśli spróbujesz usunąć lokalny katalog zawartości wp, ale zrobisz to przez SVN? to znaczy.

svn rm /wordpress/wp-content 

ten sposób SVN powinien zapamiętać zmiany, a ja zakładam, że nie pchają rzeczy do Wordpress repo, więc nie trzeba się martwić o przypadkowe popełnienia go.

+1

to nie działa. 'svn up' przywróci usunięty folder – user1406062

Powiązane problemy