如何在'svn copy trunk branch'之前找到分支的修订版本,以便我可以恢复副本

时间:2014-02-06 18:50:11

标签: svn

我正在尝试创建新分支,但不小心将我们的主干复制到我们现有的分支机构。

我想,没问题,我会在我的错误之前从分支修订版进行反向合并/复制。

但是,当我去查看分支日志以找到以前的版本时,我只有行李箱历史记录而没有分支历史记录 - 它已被行李箱历史所取代。

副本似乎已清除所有分支历史记录,现在分支与主干相同。我想这在某种程度上是有意义的,因为分支是'喜欢'目录(或者我已经读过),但这是SVN,你永远不能真正删除任何东西 - 对吧?

那么如何在我的错误发生之前找到修订版?另外,我应该复制还是反向合并?

我销毁的分支机构是在几个月前从我们的主干分支机构复制而来的。现在主干是非常不同的,而分支自创建以来只有一些变化。

我对SVN有些新意,所以请放轻松我。

谢谢,出汗

1 个答案:

答案 0 :(得分:0)

首先,我需要查看存储库的整个日志 - 而不是主干或分支 - 这是问题的第一位 - 非常感谢 Wrikken 提示。

    svn log -v svn:/stuff

------------------------------------------------------------------------
r2285 | stupidme | 2014-01-16 10:43:32 -0800 (Thu, 16 Jan 2014) | 1 line
Changed paths:
A /branches/dev/1.7.0 (from /trunk:2284)
Re-creating 1.7.0 branch
------------------------------------------------------------------------
r2284 | stupidme | 2014-01-16 10:40:31 -0800 (Thu, 16 Jan 2014) | 1 line
Changed paths:
   D /branches/dev/1.7.0 
------------------------------------------------------------------------
r2283 | someoneelse | 2014-01-13 14:55:58 -0800 (Mon, 13 Jan 2014) | 1 line
Changed paths:
   M /trunk/apps/handler.cpp
------------------------------------------------------------------------
r2282 | someoneelse | 2014-01-13 14:45:15 -0800 (Mon, 13 Jan 2014) | 3 lines
Changed paths:
   M /branches/dev/1.7.0/apps/someotherfile.cpp

由于在2284删除,当我从分支级别(svn log -v svn:/stuff/branches/1.7.0)查看日志时,我看不到2284或2282,但由于在2285的副本,我可以看到2283所以我认为这是我想要的转。

我尝试恢复到2283,这让事情变得更糟。

现在我知道它是2282,很容易纠正 - 但你必须用@而不是'-r'选项指定修订版 - 我从stackoverflow上的其他帖子中发现了这个:

    svn move svn:/stuff/branches/dev/1.7.0 svn:/stuff/branches/dev/1.7.0_busted
    svn copy svn:/stuff/branches/dev/1.7.0@2282  svn:/stuff/branches/dev/1.7.0