SVN - jak zatwierdzić wiele plików w jednym ujęciu


104

Próbowałem przesłać wiele plików w różnych katalogach w jednym ujęciu, jak poniżej,

svn commit –m”log msg” mydir/dir1/file1.c mydir/dir2/myfile1.h mydir/dir3/myfile3.c etc etc

Ponieważ chciałem wykluczyć niektóre pliki z listy zatwierdzeń, umieściłem każdą nazwę pliku w linii poleceń, jak powyżej. Włożyłem to do notatnika i wyszło około 25 plików. Kiedy kopiuję i wklejam go w wierszu poleceń, brakuje kilku ostatnich plików i myślę, że może to być ograniczenie bufora wiersza poleceń (?). Czy jest jakaś opcja, dzięki której mogę zwiększyć długość bufora?

Czy jest jakaś opcja, którą mogę umieścić wszystkie pliki w pliku tekstowym i podać go jako argument do zatwierdzenia svn?


8
@Thi - Ci, którzy nie używają GUI do wywrotu, są masochistami. Zdobądź Tortoise SVN lub jego odpowiednik dla Linuksa.
tpow

1
Jeśli istnieje ograniczenie długości bufora, to nie będzie w SVN, będzie w dowolnej powłoce, której używasz.
Colin Fine

20
@cinquTimo: może wolisz używać GUI do wszystkiego. Inni nie.
Colin Fine

@Colin chyba tak, jak w takim przypadku zwiększyć długość bufora powłoki?
Czw

3
„Ci, którzy nie używają GUI do działań wywrotowych, są masochistami”. - Masochizm polega na używaniu wywrotu, ale niektórzy z nas nie mają wyboru.
Daniel

Odpowiedzi:


157

Możesz użyć listy zmian svn, aby śledzić zestaw plików, które chcesz zatwierdzić razem.

Strona, do której prowadzi link, zawiera wiele szczegółów, ale oto przykład podsumowania:

$ svn changelist my-changelist mydir/dir1/file1.c mydir/dir2/myfile1.h
$ svn changelist my-changelist mydir/dir3/myfile3.c etc.
... (add all the files you want to commit together at your own rate)
$ svn commit -m"log msg" --changelist my-changelist

30

Możesz użyć --targets ARGopcji, gdzie ARG jest nazwą pliku tekstowego zawierającego cele zatwierdzenia.

svn ci --targets myfiles.txt -m "another commit"

Działa dla mnie w tym poleceniu bash:find . -name \*my.mask | xargs svn ci -m"message" --targets -
ASten

28

Nie miałem problemów z przesłaniem kilku takich plików:

svn commit fileDir1/ fileDir2/ -m "updated!"

To nie działa dla mnie. Pojawia się błąd „svn:„ / ”nie jest kopią roboczą”. Tutaj zamieściłem moje pytanie, możesz spojrzeć. askubuntu.com/questions/442742/how-to-update-dir-on-svn-server/…

Tak działało dobrze. Również w katalogu głównym mojego dokumentu mogłem zatwierdzić wszystkie zmiany w strukturze drzewa kopii roboczej za pomocą tego:> svn commit. -m 'komunikat o masowym zatwierdzeniu'
Grigoreas P.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.