这是我当前的 git-svn 工作流程:
git checkout -b feature master
# hack commit hack commit
git checkout master
git svn rebase
git merge feature
git svn dcommit
这通常工作正常,git 在主干上重放来自本地分支的所有提交,唯一“丢失的数据”是原始提交的时间戳,没什么大不了的。
但看起来今天的合并和 dcommit 有所不同,导致 SVN 存储库上的提交消息只是“合并分支‘功能’”,可能是因为该功能“较小”,只有 2 或 3 次提交。
如何避免这种情况发生并确保来自 git 的所有提交和提交消息都在 SVN 存储库上重播?
最佳答案
该注释应该是 git 合并的 dcommit 的结果,如“Is git-svn dcommit
after merging in git dangerous?”所示:
(master)$> git log --graph --oneline --decorate
* 56a779b (work, master) Merge branch 'work'
|\
| * af6f7ae msg 3
| * 8750643 msg 2
| * 08464ae msg 1
|/
* 21e20fa (git-svn) last svn commit
换句话说,如果这三个“
msgx
”提交是直接在 master 上完成的,它们就会在 svn 端重播(使用它们的原始评论)。但在这里,只有生成的合并提交会被重放,并带有“通用”注释。
关于workflow - git-svn:如何避免 'Merge branch <branchname>' 提交消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7233686/