Копирование дважды вызывает ветку внутри ветви вместо ошибки
У меня нормальная структура SVN:
http://server/DEV/Project/trunk
http://server/DEV/Project/branches
Затем я разветвляюсь с помощью следующей команды:
svn copy -m "message" "http://server/DEV/Project/trunk@123" "http://server/DEV/Project/branches/rel123"
Все отлично работает, а содержание /trunk@123
находится под новым путем ветви /branches/rel123
, Все хорошо.
Добавлено: /DEV/Project/branch /rel123 (Копировать по пути: /DEV/Project/trunk, Revision, 123)
Эта проблема:
Если кто-то случайно выполнит ответвление снова, я ожидаю, что оно завершится с ошибкой "svn: E160020: Путь 'rel123' уже существует". Однако это не подводит.
Повторяя то же самое svn copy
Команда по сути копирует /trunk
в /branches/rel123/trunk
Добавлено: /DEV/Project/branch /rel123/trunk (Копировать по пути: /DEV/Project/trunk, Revision, 123)
Так что теперь я в конечном итоге /branches/rel123
который содержит все файлы со ствола, плюс дополнительная папка "ствол" (/branches/rel123/trunk
), который также содержит все те же файлы со ствола.
Я пытался:
Я попытался завершить пути, чтобы заставить SVN понять, что это абсолютное имя каталога, но не повезло (я вычеркнул http://server
часть в примерах ниже)
svn copy -m "message" "/ DEV / Project / trunk @ 123 / " "/ DEV / Project / branch / rel123"
svn copy -m "message" "/ DEV / Project / trunk / @ 123" "/ DEV / Project / branch / rel123"
svn copy -m "message" "/ DEV / Project / trunk @ 123" "/ DEV / Project / branch / rel123 / "
svn copy -m "message" "/ DEV / Project / trunk @ 123 / " "/ DEV / Project / branch / rel123 / "
svn copy -m "message" "/ DEV / Project / trunk / @ 123" "/ DEV / Project / branch / rel123 / "
Кто-нибудь испытывает это? Это известная проблема? Какие-нибудь обходные пути, чтобы предотвратить эту ошибку "ветвь в ветке"?
1 ответ
Это особенность. Это позволяет вам делать такие вещи, как:
svn move *.txt docs
поместить все файлы.txt в подкаталог.
Это отражает то, как работает любая из команд оболочки "mv", "move", "cp", "copy", "xcopy" или "robocopy".