我维护两个不同的git repos,需要共享一些文件,我希望一个repo中的提交显示在另一个repo中.在每个回购中进行持续维护的好方法是什么?
我一直是perlfaq(Github)的维护者之一,最近我担任维护Perl核心文档的角色,这也是git.
早在我开始维护perlfaq之前,它就住在一个单独的源代码控制库中.我最近将其转换为git.perl5-porters中的一个会定期同步perlfaq repo和perl repo中的共享文件.既然我们已经切换到git,我们就会有点懒惰转换工具,现在我就是这样做的人.目前,两个回购将保持分开.
目前,为了同步perl的新(每月)版本的FAQ,我几乎惭愧地说我只是复制perlfaq repo中的perlfaq*.pod文件并将它们覆盖在perl repo中.这会丢失历史等.另外,有时有人会对perl repo中的那些文件进行更改,最后我会覆盖它(是的,请检查git diff你这个白痴!).这些文件在repo中没有相同的路径,但我认为这是我可以改变的.
我想做的事情,在彩虹和小马的神奇世界中,是从perlfaq仓库中取出物品并将它们应用于perl仓库,反之亦然,因此历史和提交ID各自对应.
管理这个的好方法是什么?
子树合并策略与脚本git subtree 相结合可能会有所帮助。
它适用于推和拉。
它仍然存在一些合并问题,尽管 Git1.7.0 会使用 ' -Xsubtree' 选项修复这个问题,但它仍然值得研究。