我正在评估git-svn并尝试确定它与特定svn存储库的效果.我主要关心的是让git-svn执行合并,以便在subversion repo中正确设置svn:mergeinfo属性.这可能吗?
这是我到目前为止所做的:
# Checkout the SVN repo.
$ git svn clone svn://server/project1 -T trunk -b branches -t tags
# Make sure we are working on trunk.
$ git reset --hard remotes/trunk
# Modify the working copy.
$ vim file.txt
# Commit locally to the git repo.
$ git commit -a
# Push the commits back to the SVN server.
$ git svn dcommit
Committing to svn://server/project1/trunk ...
M file.txt
Committed r178
M file.txt
r178 = b6e4a3a0c28e7b9aa71d8058d96dcfe7c8a2b349 (trunk)
Run Code Online (Sandbox Code Playgroud)
现在,我将如何将该特定提交合并到一个subversion分支中?同样,对我来说非常重要的是git在提交更改时正确设置了svn:mergeinfo属性.
我的团队使用SVN进行源代码管理.最近,我一直在努力从树干偶尔合并一个分支,它一直是一个相当恼人的经验(参见乔尔斯波斯基的"颠覆故事#1"),所以我一直在寻找替代方法来管理分支与合并.鉴于集中式SVN存储库是不可协商的,我想要的是一组满足以下条件的工具.
完整的修订历史应存储在SVN中,用于中继和分支.
在任何一个方向(并且可能是纵横交错)的合并应该是相对无痛的.
合并历史记录应尽可能存储在SVN中.
我已经看过这两个git-svn并且bzr-svn似乎都没有达到工作 - 基本上,鉴于他们可以从SVN存储库导出的修订历史,他们似乎没有比SVN更好地处理合并工作.例如,用克隆库后git,我的分支修订历史记录显示原分公司关闭行李箱,但git没有"发现"任何临时SVN的合并为"原生"合并,修订历史是一个长行.因此,任何尝试从git收益中继合并收益与SVN合并一样多的冲突.(此外,git-svn文档明确警告不要使用git分支之间的合并.)
有没有办法调整我的工作流程以git满足上述要求?也许我只需要提示或技巧(或单独的合并工具?)来帮助SVN更好地融入分支机构?