Как отменить 'svn copy' - PullRequest
       17

Как отменить 'svn copy'

15 голосов
/ 07 апреля 2009

Я случайно переписал старую ветку, скопировав транк поверх нее, используя 'svn copy'. Более конкретно, для каждого выпуска ствол разветвляется и хранится в виде тега, используя:

svn copy svn://machine/REPOS/trunk svn://machine/REPOS/tags/$RELEASENR

Но на этот раз значение 'RELEASENR' было значением старой существующей ветви вместо новой. У кого-нибудь есть идеи, как исправить эту ошибку? Спасибо уже!

Ответы [ 3 ]

18 голосов
/ 07 апреля 2009

Subversion не работает таким образом. Вы на самом деле не перезаписали это. Если цель копирования или перемещения существует и является каталогом, то скопированный или перемещенный элемент помещается в этого каталога:

svn copy svn://machine/REPOS/trunk svn://machine/REPOS/tags/EXISTS_ALREADY

Если вы посмотрите, вы должны найти:

svn://machine/REPOS/tags/EXISTS_ALREADY/trunk 

Какая копия сундука, который вы только что попытались пометить. Исправить в этом случае легко:

svn mv svn://machine/REPOS/tags/EXISTS_ALREADY/trunk \
       svn://machine/REPOS/tags/CORRECT_TAG_NAME

(В случае, если вы не * nix-знакомый: \ означает, что я разбил одну логическую строку на две физические строки, чтобы избавить вашу горизонтальную полосу прокрутки от переутомления.)

3 голосов
/ 12 ноября 2014

Чтобы отменить

svn cp OLDFOLDER NEWFOLDER

если изменение еще не зафиксировано, просто используйте

svn revert NEWFOLDER --depth=infinity
2 голосов
/ 04 января 2012

Вы можете отменить свою последнюю ревизию, вернувшись к предыдущей ревизии. Смотри http://anilsaldhana.blogspot.com/2007/11/svn-undo-change.html

svn merge --revision 92:91 .

и затем зафиксировать

...