2009-05-18 10 views
7

Próbowałem używać svn ci dir/a dir/b -m "mój komentarz" , ale to nie działa. Użyłem także svn ci dir/a/* dir/b/* -m "mój komentarz" i to też nie działa.Jak mogę zatwierdzać wiele katalogów jednocześnie, używając subversion?

Wiem, że można podać wiele plików, ale jak sprawdzić subversion, aby sprawdzić wszystkie zmodyfikowane pliki w tych folderach? Głównie chcę to zrobić, aby wszystkie moje zmiany znalazły się w jednej wersji. Mogę meldowanie jeden katalog na raz, ale to kończy się dając mi różne wersje dla każdego katalogu ..

+0

więc istnieje wiele innych zmodyfikowanych plików, powiedzmy dir/c, których nie chcesz robić? – dotjoe

+0

Istnieje wiele zmodyfikowanych plików w katalogach, które chcę sprawdzić. Wiem, że svn zatwierdza tylko pliki checkin, które zmodyfikowałem, czego właśnie chcę. Nie martwię się plikami, których nie chcę popełnić, jeśli to odpowie na twoje pytanie. –

Odpowiedz

1

Chyba tylko mieć 1 opcję: sprawdź katalog zawierający - taki, który ma oba te podkatalogi.

Jeśli nie są już zorganizowane w ten sposób (tzn. Oba są repozytoriami najwyższego poziomu w repozytorium), to nie wiele można zrobić - polecenia svn działają tylko w jednym katalogu.

+0

Oba mają wspólny katalog najwyższego poziomu, ale katalog ten jest raczej ... ogromny, z wieloma innymi folderami podrzędnymi. –

+0

To wystarczy, że po prostu svn będzie potrzebował więcej czasu na przeszukiwanie, aby znaleźć wszystkie pliki, które wymagają zatwierdzenia. Jeśli nie, to zaskakująco szybko. Spróbuj użyć stanu svn, aby zobaczyć (status zajmie więcej czasu niż ci BTW) – gbjbaanb

+0

svn commit działa na wielu katalogach, ale tylko wtedy, gdy wszystkie są w tej samej kopii roboczej. Jeśli są rzeczy, których nie chcesz, możesz użyć rzadkich katalogów subversion 1.5, aby utworzyć mniejszą, bardziej zwięzłą kopię roboczą. – crashmstr

4
svn add dir/a 
svn add dir/b 
svn commit 

Choć bardziej prawdopodobne, myślisz:

svn add dir/* 
svn commit 
+0

Katalogi są już w repozytorium, chcę tylko sprawdzić pliki, które zostały zmodyfikowane na moim lokalnym. –

+0

Jeśli są już dodane, po prostu "svn commit" to obejmie. –

0

Jest to łatwe, jeśli wymeldujesz się z folderu wyższego poziomu dla miejsca, gdzie aib znajdują się. Jeśli więc twoja robocza kopia to "dir", a aib mają zmiany, zatwierdź "dir", aby zatwierdzić zmiany w obu. Robię to przez cały czas.

Edit:
Aby popełnić więcej niż jeden folder, trzeba będzie im być w tej samej kopii roboczej.

Jeśli martwisz się o posiadanie zbyt wiele do procesu, można spróbować rzadki kasę tylko z folderów trzeba, a następnie można po prostu popełnić katalog bazowy lub podkatalogi, ile potrzeba bez obciążania druga projektowanie.

Sparse Directories Information

8

Może trzeba będzie określić, co robi „ale to nie działa” znaczy, bo to działa dobrze tutaj:

D:\Projects>svn commit -m 'test1' test\aaa "test\aaa bbb ccc" 
Sending  test\aaa\aaa222\xxx.txt 
Sending  test\aaa bbb ccc\aaa.txt 
Transmitting file data .. 
Committed revision 8. 

D:\Projects> 
+0

Zastanawiam się, czy są to osobne kopie robocze? Czy to się nie uda? – crashmstr

+0

Tak, to się nie uda. OTOH nie znamy układu kopii roboczych OP, więc może to być przyczyna, dla której "nie działa". –

+0

C: \ zoo> svn ci c: \ zoo \ tiger c: \ zoo \ lion -m "mój komentarz" svn: "C: \ zoo" nie jest kopią roboczą to jest błąd, który dostaję. To zadziała, jeśli przekażę mu tylko jeden katalog, ale gdy dam mu drugi katalog, to go pominie. –

0

Rozważ użycie svn: externals dla sprawdzania część magazyn. Możesz wybrać i wybrać katalogi do pobrania, a następnie zatwierdzić do wielu miejsc docelowych w jednym kroku. Od pewnego czasu używamy tego podejścia z dużym sukcesem.

+0

Mówię o kliencie TortoiseSVN ... – GregC

+0

Zdecydowanie sugerowałbym teraz przeglądanie rzadkich katalogów w SVN, jeśli używasz Tortoise, to jest to tak proste, jak tylko możesz - jest świetne. – gbjbaanb

0

Uwzględniając poniżej zapytaniu

  1. masz dużo plików wyrejestrowany z repozytorium do wielu katalogów i wiele z nich został zmodyfikowany i nie pamiętać, które pliki został zmodyfikowany i to będzie trudne scalania jeden plik na raz, a następnie wykonaj następujące czynności

przejdź do katalogu najwyższego poziomu i uruchomić polecenie

svn ci -m "comments" 

spowoduje to sprawdzenie wszystkich zmodyfikowanych plików w katalogu najwyższego poziomu i wielu podkatalogów znajdujących się pod nim.

0

Napotkany podobny problem. Miałem jedno repozytorium i musiałem mieć dwie osobne kopie robocze niektórych podfolderów repozytorium.Repozytorium było tak:

/web/lib 
/web/htdocs 
... 

... co ja potrzebowałem mieć w oddzielnych kopii roboczych (odpowiednio):

C:/.../web/lib 
C:/.../htdocs/cbs 

Rozwiązałem to przez posiadające „master” kopię roboczą w C:/.../web/web i utworzenie twardego linku (lub węzła NTFS) w C:/.../htdocs/cbs "wskazującego" na C:/.../web/htdocs. Dlatego za każdym razem, gdy wprowadzam zmiany lokalne w jednej z kopii roboczych, zawsze zatwierdzam numer C:/.../web, który naturalnie zawiera zmiany z obu kopii roboczych.

Mam nadzieję, że ta metoda może być dla Ciebie przydatna.

0

Minęło dużo czasu, odkąd zadawano to pytanie, ale mam aktualizację dla osób spóźnionych.

Zakładając, że drzewa jak dir/A, reż/B/C, dir dir/d .... i chcą dokonać zmian tylko w podfoldery A i B, następujące polecenie działa:

svn ci dir/a/* dir/b/* -m "mój komentarz"

Jeśli to naprawdę nie zadziałało, gdy próbowałem go siedem lat temu, mogę tylko założyć, że ta funkcja została dodana w kolejnych wydaniach.

Powiązane problemy