2011-12-16 81 views
3

我已经创建了一个功能分支,并在那里多次提交。我需要恢复一些文件,就好像我从未在我的功能分支中触及它们一样。换句话说,我不想重新整合它们。SVN如何从功能分支恢复更改

我该怎么做?

回答

3

如果我理解正确的,你的情况是以下几点:

  1. 您已经创建了一个有特色的分支:

    $ svn cp ^/trunk/ ^/branches/feature 
    
  2. 你已经做了^/branches/feature和COMMITED一些工作。

    $ ... work, work, work ... 
    $ svn ci 
    
  3. 现在您要撤消一些更改。
    所以,做一个反向合并。
    首先,选中要使用svn log撤消哪个版本:

    In your featured branch working copy: 
    $ svn log -v 
    ----------------------------------- 
    r234 ... 
    Changed paths: 
    M /branches/featured/file.c  
    
    Implemented a feature 
    ----------------------------------- 
    
  4. 反向合并的具体的版本(段)。注意-改版前:

    $ svn merge -c -234 . 
    
  5. 再集成到主干:

    In the trunk working copy: 
    $ svn merge --reintegrate ^/branches/feature . 
    
+0

这正是我需要的!但我无法恢复整个提交。多个提交中只有一个文件。另一件事,为什么一个不能撤销乌龟SVN的变化是我已经重新命名了功能分支。 – dmiandre 2011-12-19 08:00:16

0

如果您执行从一个分支到另一个分支的合并,则只会合并第一个分支上发生的差异。如果你没有触及文件,那么它们就不会有差异,所以不会有任何部分重新集成触及这些文件。所以不,你不必恢复任何东西。在做revert恢复您在客户端上的工作副本中所做的更改,并且与分支机构或存储库无关。

+0

是的,我需要revert命令的副本与仓库工作,并会在功能恢复一些文件分支到创建特征分支时的状态。 – dmiandre 2011-12-19 07:43:44