我不小心通过使用'svn copy'复制trunk来覆盖旧分支。更具体地说,对于每个版本,主干都是分支的并使用以下标记保存:
svn copy svn://machine/REPOS/trunk svn://machine/REPOS/tags/$RELEASENR
但这次'RELEASENR'的价值是旧的现有分支而不是新分支的价值。有人对如何撤消这个错误有任何想法吗?谢谢!
答案 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 .
然后提交