我们公司使用(和支持!)SVN,但我倾向于使用git。我想尝试的是拥有git存储库--每个项目都有一个,项目开发人员将能够从这个存储库中提取(当然,如果他们愿意的话,也可以互相拉动)。但是我仍然想把所有的改变推到SVN上,因为SVN是由我们的技术支持维护的。
我正在用以下存储库测试这个场景:
我注意到,直接使用“git svn rebase”和“git svn dcommit”的唯一问题是,每次从开发人员的git存储库推到git- SVN -克隆存储库之后,一旦更改传播到SVN和重基,我就必须重新设置开发人员的存储库。我想要达到的是避免在每次推后重新立足。
请注意,我假设每个项目开发人员只使用git存储库,没有人会直接使用SVN。
我能够手动完成这一行为,方法是在推送和使用SVN客户端将这些更改提交给SVN之后,在‘git -SVN-克隆’存储库中逐个检出每个git提交。我相信'git‘也会这样做,但它也会同步从svn返回,并更改提交SHA标识符,这迫使我重新建立基础。
P.S.:--no-rebase选项git svn dcommit没有帮助,因为在第一次提交传播到SVN之后,git svn dcommit不允许我向SVN提交更多的更改,直到上一次重基。我试过一次这种行为,可能会忽略一些事情。
发布于 2011-01-10 22:14:38
其实比那更糟..。dcommit更改上传到SVN的提交(添加git-svn-id行、更改作者信息等)即使你黑了,也不要尝试重新基地。
基本上,git-svn无法在不进行重基的情况下与SVN同步。正在开发一个新的git<->SVN接口,该接口可以消除这一限制,但它还没有准备好。
我担心,如果您想要与SVN存储库保持同步,那么如果不立即进行重基,您的场景将无法工作。
https://stackoverflow.com/questions/4651402
复制相似问题