web-dev-qa-db-ja.com

Subversion:特定のコミットをマージする方法

私は自分のブランチでいくつかのコミットをしています。ブランチをトランクにマージしたいのですが、ブランチのトランクにマージしないコミットがいくつかあります。私はどのように行いますか?

36
Clown

達成したいことは通常、バージョン管理システムではcherrypickingと呼ばれます。

ブランチのリビジョン345、364、377をトランクにマージするとします。trunkのクリーンな作業コピーの最上位ディレクトリで次の操作を行います。

svn merge -c345,364,377 ^/_your_branch_

詳細については、対応する SVNブックのセクション を参照してください。

37

ヤニックの答えを拡張するだけです。
1つまたはいくつかの特定のコミットを1つのブランチから別のブランチにマージできる場合(たとえば、ブランチ 'from'からブランチ '-toにコミットr13およびr666をマージする必要があります) '):

  1. コミットの可用性を確認します(念のため):

    svn diff -c 13,666 https://fullpathtoyourproject/branches/_from_
    
  2. ブランチでの切り替えto

    svn sw https://fullpathtoyourproject/branches/_to_
    
  3. コミットをマージする

    svn merge -c 13,666 https://fullpathtoyourproject/branches/_from_
    

「fullpathtoyourproject」を取得する必要がある場合は、次のように入力します。

svn info

セクションURLにこのパスが表示されます。

私は完全なURL /パスを使用することを好みますが、いくつかのプロジェクトでは個人的に相対パスが機能しませんでした。

34
iMysak