2011-01-27 21 views
3

はのgit - svnのワークフローについての質問がたくさんありますが、私はこの1つを把握することができていない。一般的な方法についてgit-svn branch - ブランチをトランクと同期させるには?

This section of the svn book会談をSVNで:あなたはブランチを作り、そしてあなたがからマージ変更を保持しますトランクとしてのトランクが更新され、ブランチには常に最新の変更が反映されます。

私はgit svn branchを実行してsvnにブランチを作成し、それに対応するトラッキングブランチを設定しました。 Thesequestionsはプロセスをかなりうまくカバーしています。

ここで、ブランチにマージしたいトランクに変更が加えられたとします。私の最善の選択肢は何ですか?私はgit-svnを幸せに保つ必要があることに注意してください。そして、ブランチをSubversionで使っている人々の仕事を台無しにしないでください。それはかなり古いですが、

This questionは、同様の状況について話しているようだ、と私はそこにあったものを一番下の行はわからない - それは私がすべきgit checkout master、その後git rebase mybranchを示唆しているようだが、それが正しいことはできません。

私は本当にどのようにこの簡単な質問を理解していない、私は答えは好ましくmergeinfoプロパティを設定すると、svn mergeの効果を持っているものでなければなりません疑い、悲しいかな、何git svn mergeはありません...

答えて

0

1週間以上未回答のままだったが、今のところ13回しか見られなかった。私はそれが私のせいだと思う、悪い質問を書いている。

とにかく、自分で考え出しました。短いバージョン:git rebaseの代わりにgit mergeを使用してください。

私の混乱は、ブランチをmasterの変更と同期するときにgit rebaseを使用したことに由来します。地元の枝で作業するとき、これは通常素晴らしい仕事をし、歴史を清潔に保ちます。しかし、you should not rebase commits that you have pushed to a public repositoryであり、Subversionリポジトリは十分に公開されています。一方、git mergeは、美しく動作し、問題はありません。

ので、長い答えは:あなたが追跡しているのsvnブランチにトランクの最新の変更をマージしたい場合、単に実行します。

git merge master 
# Handle conflicts, git add when you're done 
git commit 
git svn dcommit 

これはトランクと同期して、あなたのブランチを維持しますmergeinfoは設定されませんので、この種の練習にsvn mergeを混ぜてはいけません。

関連する問題