2011-12-16 76 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