TortoiseSVN имеет 2 различных инструмента для работы:
- Проводник окон SVN и встроенное меню TortoiseSVN.
- Браузер хранилища TortoiseSVN.
Браузер хранилища - это инструмент пользовательского интерфейса, который работает непосредственно с хранилищем и не знает, когда вы «начинаете и заканчиваете транзакцию». Таким образом, каждая команда сама по себе является коммитом, если коммит необходим. Я не знаю никакой возможности сказать, например.
- Теперь я объявляю начало сеанса коммита.
- Затем я что-то изменяю, перемещаю файлы, переименовываю каталоги, ...
- Затем я заканчиваю сеанс коммита.
Когда вы работаете с меню Windows TortoiseSVN, встроенным в ваш Windows Explorer, вы сначала должны извлечь весь репозиторий. Затем вы можете некоторое время работать локально, использовать вариации SVN для переименования, перемещения и копирования, а через некоторое время зафиксировать все свои изменения сразу.
Версия командной строки позволяет вам обе вещи, но ведет себя одинаково. Из документации для move
:
Эта команда перемещает файлы или каталоги в вашей рабочей копии или в хранилище. ... Переместить файл в хранилище (это немедленная фиксация, поэтому для нее требуется сообщение фиксации):
$ svn move -m "Move a file" http://svn.red-bean.com/repos/foo.c \
http://svn.red-bean.com/repos/bar.c
Таким образом, даже когда вы пишете командный файл для выполнения всего этого и вызываете его, каждый svn move
(и svn copy
...) должен иметь сообщение о коммите, если вы используете вариант, который работает непосредственно в хранилище.
Таким образом, нет возможности реструктурировать ваш репозиторий (только с помощью браузера репозитория) с помощью одного коммита. Вы должны проверить весь репозиторий (по крайней мере, ту часть, которую вы хотите реструктурировать), выполнить свои команды svn something
локально и затем зафиксировать их в конце. Недостатком этого является то, что у вас много сетевого трафика, вам нужно какое-то место локально, и это стоит намного больше времени. Но это единственный способ получить один коммит.
Возможно, есть вариант с svnadmin
, но это само по себе имеет много недостатков.