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

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

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

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

Ответы

Ответ 1

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

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

svn cp OLDFOLDER NEWFOLDER

если изменение еще не было выполнено, просто используйте

svn revert NEWFOLDER --depth=infinity