如何撤消'svn copy'

时间:2009-04-07 08:54:38

标签: svn copy undo

我不小心通过使用'svn copy'复制trunk来覆盖旧分支。更具体地说,对于每个版本,主干都是分支的并使用以下标记保存:

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

但这次'RELEASENR'的价值是旧的现有分支而不是新分支的价值。有人对如何撤消这个错误有任何想法吗?谢谢!

3 个答案:

答案 0 :(得分:18)

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 expertant:\表示我将一条逻辑线分成两条物理线,以免水平滚动条过度工作。)

答案 1 :(得分:3)

要撤消

svn cp OLDFOLDER NEWFOLDER

如果尚未提交更改,请使用

svn revert NEWFOLDER --depth=infinity

答案 2 :(得分:2)

您可以通过合并回上一版本撤消上一版本。 见http://anilsaldhana.blogspot.com/2007/11/svn-undo-change.html

svn merge --revision 92:91 .

然后提交