svn - 在执行 git-svn dcommit 之前压缩或编辑一些提交?

标签 svn git version-control git-svn

我正在 subversion 存储库中开展一个项目,该项目具有严格的 checkin 政策,其中包括:对主干的每次提交都必须由另一位开发人员审查,并且必须在提交消息中提及。

在使用 git-svn 时,我正在做许多未经审查的增量 git checkin 。他们的 git 提交消息反射(reflect)了这一点。

使用 git-svn 但要遵守 svn 存储库规则的最佳方式是什么?我应该将所有提交压缩到一个 svn 提交中吗?我可以用审阅者信息重写每个修订版的提交消息吗?我可以“手动”将每个单独的更改移动到 git master 分支并在执行 git-svn dcommit 之前修改每个更改的提交消息吗?

最佳答案

我在 git 上的一个分支上工作,然后 checkout master,git svn rebase 最后将该分支 merge 到 master 中。

此时,git svn dcommit 会将所有临时提交与它们的原始消息一次一个地放入 svn 中——这不是我们想要的!但是,如果我使用 git commit --amend 将 merge 的提交消息从标准 merge 消息更改为符合我们的 svn 提交策略的内容,dcommit 会将它们全部 merge 为一个新消息.赢了。

我发现如果 master 在分支的生命周期内没有改变,这似乎不起作用——提交只是快速转发,没有“merge 分支”消息——所以最好添加--no-ff 标记为 git merge

总结:

git checkout branch
<do work>
git checkout master
git svn rebase
git merge --no-ff branch
git commit --amend
<policy-compliant commit message>
git svn dcommit

关于svn - 在执行 git-svn dcommit 之前压缩或编辑一些提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1170221/

相关文章:

svn - git-svn 创建过去修订的分支

eclipse svn "The working copy needs to be upgraded"

GitHub - 删除推送的提交而不影响本地存储库

git - 列出特定文件的完整提交历史

git - 如何使用 Android Studio 将 Android 应用程序/项目提交并推送到预先存在的空 Bitbucket 存储库?

visual-studio - MDF 文件的版本控制

svn - 合并修订范围和仅合并修订范围有什么区别?

git - git父编号是如何分配的?

linux - Github - 旧帐户的权限被拒绝

php - SVN Web开发工作流程