私はgitブランチでさまざまな機能の開発を行っています。git-svnを介してコードをSVNにチェックインする場合は、次のようにします。
git co feature_branch
git svn rebase
git co master
git svn rebase
git merge --no-ff feature_branch
git commit --amend
git svn dcommit
このプロセス中に別の開発者がSVNにコミットしない限り、これはかなりうまく機能します。その場合は、次のいずれかです。
- feature_branchとmasterをリベースする時間の間にSVNコミットが行われると、次のようなログが表示されます。
* 4e6992a BUG-003 My SVN commit (containing cdb40ba and 3b18ea4)
|\
| * cdb40ba local commit 1
| * 3b18ea4 local commit 2
* | cf8a028 BUG-002 Another developer's SVN commit
|/
* 940c613 BUG-001 Another developer's SVN commit
- マスターをリベースしてからの間にSVNコミットが行われると
svn dcommit
、マージの問題が原因で後者が失敗します(この場合、ハードリセットを実行して最初からやり直します)
単一の不可分操作でこれをどのように達成できますか?