我在网上看过很多"从svn转到git"和其他"git-svn工作流程"的文章,但我认为它们经常处理过于简单的情况.它们通常针对那些只想在本地使用git和hack的人,而不是使用git的全部功能,比如在多个开发人员之间使用git-svn克隆svn存储库时的pull,fetch,merge等,然后仍然希望能够随时将他们的更改推送到(官方)svn存储库,然后回到git工作并分享他们的东西等.
每当这些文章承认你不能做你在纯git中所做的一切时,后果和可能的搞砸都没有明确解释(或者也许只是我?).即使是git-svn手册页也提到了警告,但并没有真正广泛地提及.
基于我所读到的内容,我觉得当git-svn以特定方式使用时可能会出现问题,我将在下面介绍.有人可以告诉我,我是对的吗?
这是"通缉"的做事方式:
我的问题是:我在做梦吗?我前段时间读过一本git书,我认为,git-svn-clone可以创建git存储库,当然它们是svn repo的"镜像",但是不同开发人员以这种方式创建的git存储库会有所不同" ids"和提交将有不同的哈希.所以我的理解是那些git repos不会共享任何常见的git祖先,因此无法使用共享,合并等所需的所有git命令.这是真的,我们是否会面临这个工作流程的问题?
有时我读到这可以完成,至少使用一个"官方"裸git存储库,这将是唯一一个git-svn-cloned,并且所有git用户都必须从这个开始.然后你需要一个负责这个中央git仓库的人,并在将所有东西都提交给svn repo之前收集git devs之间的变化.这将是git用户"不知道"原始git repo来自svn的唯一方法,并允许他们使用所有git命令.唯一需要精通git和svn(并且了解git-svn警告)的人将是"合并经理"(或者他称之为的任何人).
我完全误解了git-svn警告吗?有没有更简单的方法呢?