git-svnを使用してsvn追跡ブランチをマージするための正しいワークフローは何ですか。git-svn svn.pushmergeinfo構成キーについて少し読みましたが、注意点は次のとおりです。
http://www.kernel.org/pub/software/scm/git/docs/git-svn.htmlから:
設定キー:svn.pushmergeinfo
このオプションにより、git-svnは、可能な場合、SVNリポジトリのsvn:mergeinfoプロパティに自動的にデータを入力しようとします。現在、これは、最初の親を除くすべての親がすでにSVNにプッシュされている非早送りマージをコミットする場合にのみ実行できます。
したがって、私の通常のワークフローは次のとおりです。
私がSVNブランチを持っていると仮定します^/branchs / feature_branch
# Ensure git-svn is configured to populate svn:mergeinfo
git config --global svn.pushmergeinfo true
# Update my local svn remotes state
git svn fetch
# Track a local branch against a remote SVN backed ^/branches/feature_branch
git checkout -b local_feature_branch remotes/feature_branch
# Modify files and commit to local git repo
git commit -a -m "changes"
# Push changes to SVN branch ^/branches/feature_branch
git svn dcommit
次に、^ / trunkをlocal_feature_branchにマージするために、次のようなことをすると思いますか?
# Sync to the latest SVN
git svn fetch
# Rebase "master" which is tracking the remote SVN ^/trunk
git checkout master
git svn rebase
# Checkout the local_feature_branch
git checkout local_feature_branch
# Merge "master" into "local_feature" which is tracking ^/trunk
git merge --squash master
git commit -m "merge master which is tracking SVN ^/trunk"
# Dry run the dcommit to SVN which should include svn:mergeinfo property changes
git svn dcommit --dry-run
# Commit merge to trunk
git svn dcommit