我有一个项目在工作,我想通过使用git为我的本地源代码控制使不必要地复杂更容易。我们在工作中使用TFS,但我还必须将源推送到客户端的SVN服务器以获取生产版本。 TFS需要成为官方的记录来源[直到我能说出令人信服的情况才能切换:-)],SVN只是里程碑,我喜欢git成为日常的工作环境。
我一直在使用git-svn作为第二部分,基本上只是承诺对里程碑进行git,然后推送到svn。
我想转而使用git而不是TFS来进行更积极的开发,但是我不确定如何同时设置两个映射。我在git-tfs和git-svn看到的所有示例都以克隆存储库开始,这需要存储库为空。是否有某种元数据我可以添加而不是克隆来设置TFS映射?
映射也有点奇怪(它是一个CMS站点,所以我们不将核心文件存储在源代码控制中,只存储我们的自定义项):
git是否能够处理在根位置映射的SVN存储库以及进一步映射到的TFS存储库?
是否可以删除TFS中映射的文件夹,然后从git-tfs克隆它们?
答案 0 :(得分:1)
您可以将git-svn
移植到任何存储库,方法是将适当的节添加到.git/config
(检查任何正常工作的git-svn
存储库以查看其外观),然后git-svn fetch
填充它。 git-svn
和git-tfs
不太可能为相同的树生成相同的SHA(例如,由于诸如用户名映射或日期之类的微不足道的事情,或者像提交消息中的元数据git-svn
那样不那么琐碎的事情默认情况下)但合并应该是微不足道的。您可以使用svn.noMetadata
禁用将SVN修订映射到git提交的每个提交中的额外行。唯一的缺点是rev_map将是该信息的唯一来源,如果它被删除(或者如果您克隆工作副本),git-svn
连接将被破坏。
答案 1 :(得分:0)