SVN - Як зафіксувати кілька файлів за один кадр


104

Я намагався створити кілька файлів у різних каталогах одним знімком, як показано нижче,

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

Оскільки я хотів виключити деякі файли зі списку фіксування, тому я розмістив кожне ім'я файлу в командному рядку, як зазначено вище. Я зібрав його в блокнот, і в ньому вийшло близько 25 файлів. Коли я копіюю і вставляю його в командний рядок, останні кілька файлів відсутні, і я думаю, що це може бути обмеження буфера командного рядка (?). Чи є якийсь варіант, я можу збільшити довжину буфера?

Чи є якийсь варіант, я можу помістити всі файли у текстовий файл і надати його як аргумент для виконання svn?


8
@Thi - Ті, хто не використовує графічний інтерфейс для підриву, - мазохісти. Отримайте Tornise SVN або його еквівалент Linux.
tpow

1
Якщо є обмеження на довжину буфера, воно не буде в SVN, воно буде в будь-якій оболонці, яку ви використовуєте.
Колін штрафом

20
@cinquTimo: ви можете скористатися графічним інтерфейсом для всього. Інші люди цього не роблять.
Колін штрафу

@Colin, я думаю, що так, як збільшити довжину буфера оболонки в такому випадку?
Чт

3
"Ті, хто не використовує графічний інтерфейс для підриву, - мазохісти". - Мазохізм - це використовувати підрив, але деякі з нас не мають вибору.
Даніель

Відповіді:


157

Ви можете використовувати список змін svn, щоб відслідковувати набір файлів, які ви хочете зробити разом.

Пов’язана сторінка містить багато деталей, але ось короткий приклад підсумків:

$ 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

Ви можете використовувати --targets ARGопцію, де ARG - це ім'я текстового файлу, що містить цілі для фіксації.

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

Мені працює в цій команді баш:find . -name \*my.mask | xargs svn ci -m"message" --targets -
ASten

28

У мене не було проблем із створенням декількох таких файлів:

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

Це не працює для мене. Отримання помилки "svn: '/' не є робочою копією". Тут я розмістив своє запитання, можете подивитися. askubuntu.com/questions/442742/how-to-update-dir-on-svn-server/…

Так добре працював. Також у корені мого документа я можу здійснити всі зміни в структурі дерева робочої копії з цим:> svn commit. -m 'повідомлення про
масовий вчинок

3

Використовуйте набір змін. Ви можете додати до набору змін стільки файлів, скільки вам подобається, всі відразу або протягом декількох команд; а потім здійснити їх за один раз.


1
svnbook.red-bean.com/en/1.6/svn.advanced.changelists.html - Ключове слово svn - це "список змін", на який звертається у першій відповіді та найбільш популярно.
Джон У. Кларк
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.