1

Под "каждым изменением" я подразумеваю кнопку "Подтвердить" в TortoiseSVN.
Он удаляет удаленные файлы, добавляет новые и фиксирует изменения.
По крайней мере, это те, о которых я знаю, но могут быть и другие.
(Я просто нажимаю "Все" и нажимаю "Коммит в черепахе".)

RabbitVCS доступен для Linux, но в cli версии commit == svn commit .
Есть ли маленький сценарий или что-то, что могло бы имитировать коммит черепахи?

Среда - Linux с приглашением bash. (SVN 1.7.5)

2 ответа2

0

Перейдите в корень вашего рабочего каталога.

svn add . --force

(Это рекурсивно обходит ваш рабочий каталог и svn add к каждому найденному файлу, который еще не находится под контролем версий.)

Далее сделайте это:

svn rm $( svn status | sed -e '/^!/!d' -e 's/^!//' )

(Это запускает svn status . Команда status рекурсивно выдает список всего, что изменилось в рабочем каталоге. Странная команда sed находит все строки, начинающиеся с "!"(именно так svn status указывает на удаленный файл.))

Теперь сделайте:

svn commit

Не то, чтобы я действительно советую делать это. Было бы предпочтительнее просто использовать "svn rm oldfile" вместо "rm oldfile", когда вы делаете свои модификации. "Svn add. --Force" тоже не так уж и хорош: он будет проверять все временные файлы и объектные файлы, которые вы генерируете во время тестирования. Было бы лучше просто "svn add newfile", когда вы заботитесь о добавлении нового файла.

Обычно я запускаю «svn status -u» перед каждой проверкой, чтобы получить четкое представление о том, что изменилось в моей рабочей копии.

Я нашел ответ для части svn rm по адресу: https://stackoverflow.com/questions/1265122/how-can-i-programmatics-detect-missing-files-in-tar-archive-and-delete-them-f?rq = 1, что, в свою очередь, относится к http://geryit.com/blog/command-line-subversion-practices/.

0

Я использую и планирую этот пакетный скрипт. Это работает хорошо.

CD "MyPath"

for /f "usebackq tokens=2*" %%i in (`svn status ^| findstr /R "^\!"`) do (svn del "%%i %%j")

svn add * --depth=infinity --force 

svn commit . -m "My Message"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .