2011-12-16 12 views
3

私はフィーチャーブランチを作成し、何度かコミットしました。いくつかのファイルを、私のフィーチャーブランチに触れたことがないかのように元に戻す必要があります。言い換えれば、私はそれらを再統合したくありません。SVN機能ブランチからの変更を元に戻す方法

どうすればいいですか?

答えて

3

私が正しく理解している場合、あなたの状況は以下の通りです:あなたは機能のブランチ作成した

  1. $ svn cp ^/trunk/ ^/branches/feature 
    
  2. をあなたは^/branches/featureにいくつかの仕事をしたし、コミットしました。

    $ ... 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. は、特定のリビジョン(複数可)をリバース・マージ。はい

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

それは私が必要とするものです!しかし、私はコミット全体を元に戻すことはできません。いくつかのコミットで1つのファイルだけ。もう1つの理由は、ちょうど亀のSVNで変更を元に戻すことができないということです。機能ブランチの名前を変更しました。 – dmiandre

+0

@dmiandreの場合、特定のファイルを逆マージすることができます。 $ svn merge -c -234 path/to/file – Paker

0

あるブランチから別のブランチにマージする場合、最初のブランチで発生した差分のみをマージします。ファイルに触れていない場合は、ファイルの差分はありませんので、これらのファイルに触れる再統合の部分はありません。だから、何も元に戻す必要はありません。 revertを実行すると、クライアント上の作業コピーで行った変更が元に戻され、ブランチやリポジトリとは何の関係もありません。

+0

、と私は、リポジトリと連携し、機能にいくつかのファイルが返されますrevertコマンドの対応を必要とする:トランクに

$ svn merge -c -234 . 
  • 再統合:改正前の-に注意してください。機能ブランチを作成する時点の状態に分岐します。 – dmiandre

  • 関連する問題