我们团队的一部分发现git非常酷,并开始将其用作svn客户端.所以每个开发人员都有一个本地git存储库,并通过git-svn与svn同步.
然后我们想要对提交进行代码审查,并将补丁发送给同事进行审核.这种方法不是很直观,因为svn中SAME Revision 的校验和对于每个本地git存储库都是不同的.不知道为什么,因为内容应该是相同的.也许这是一个错误svn rebase?
所以我们尝试在scm服务器上安装一个中央git存储库.现在每个使用git的开发人员都可以将他的更改推送到这个中央存储库,而另一个进行审查的开发人员可以将这些更改引入他的repo.不幸的是,因为每个开发人员都同时遇到svn rebase了校验和问题.
在阅读了很多帖子后,我认为管理具有subversion和git客户端的团队的最佳方法是:
现在我们需要一个中心工作来同步svn和git在服务器上的中央git工作副本上执行这样的常规脚本.
# First transfer the commits from git to svn
git checkout svnmaster
git pull origin svnmaster
git svn dcommit
# Now from svn to git
git svn rebase
git push origin svnmaster
Run Code Online (Sandbox Code Playgroud)
我现在的问题是:
谢谢你的每一个答案!
编辑 我最近发现了一个看起来非常有希望的项目:
您的解决方案存在问题.我建议你不要直接在svnmaster中提交.你应该为svn(svn-dev)和svn跟踪分支(svn-master)提供一个纯git分支.按照以下步骤提交svn:
git checkout svn-master
git merge --no-ff svn-dev
git svn dcommit
git checkout svn-dev
git merge svn-master
Run Code Online (Sandbox Code Playgroud)
此序列允许您保留所有存储库的提交哈希值.