等同于git的CVS和模块

等同于git的CVS和模块,git,cvs,Git,Cvs,我正在尝试将我的cvs存储库转换为git,并且已经在最后一个问题上停留了一段时间 我目前使用CVS和模块在projets之间共享代码。基本上,您可以将不同的存储库“别名”为项目中的子目录,这样您就可以更新/提交整个项目及其包含的远程存储库,就像它是一个存储库一样 我见过一些线程建议使用子树合并或子模块来实现这一点,参考(svn:externals)。这不起作用,因为: 子树合并显然不允许您轻松地推回/更新外部回购 子模块仍然需要手动推/拉每个子模块。我有大量的子模块,深入到每一个子模块来推动我

我正在尝试将我的cvs存储库转换为git,并且已经在最后一个问题上停留了一段时间

我目前使用CVS和模块在projets之间共享代码。基本上,您可以将不同的存储库“别名”为项目中的子目录,这样您就可以更新/提交整个项目及其包含的远程存储库,就像它是一个存储库一样

我见过一些线程建议使用子树合并或子模块来实现这一点,参考(svn:externals)。这不起作用,因为:

  • 子树合并显然不允许您轻松地推回/更新外部回购

  • 子模块仍然需要手动推/拉每个子模块。我有大量的子模块,深入到每一个子模块来推动我的更改将是乏味的,并可能导致遗漏,因为更改将忘记提交


需要明确的是,我希望有一个包含其他git存储库作为子目录的git存储库,并且能够通过一个命令同时提交/推送/拉取所有git存储库

那太没意思了。如果它们是单独的项目,则属于单独的存储库

但是,Android等项目使用该工具在git上提供一个层,该层包含大量可能来自不同位置的依赖项目,并允许您通过修订控制(可能会按项目转到不同位置)从所有项目的本地分支获得工作流


这是一个层次上,如果你期待确切的git体验,你不会得到。您可以在任何子项目中使用标准git工具,但在顶层,您使用的是不同的工具进行协调。

如果我正确理解了您的问题,那么您需要。

我的项目可以在进行子树合并后重新提取更改。许多人认为这是git子模块和子树合并的最佳选择。

子模块正朝着更接近您想要的方向发展-
git fetch现在可以识别子模块,我相信还会有更多子模块。不过,在子模块中进行提交与它们的预期目的有一点距离。看来你是对的,子模块是我要寻找的,但它们还没有完全实现。我感到很惊讶,因为我觉得这个工作流相当普遍,git已经存在了一段时间了。@paulsc:我认为稍微不同的东西更常见:独立于超级项目处理子项目,然后时不时地将超级项目更新为子项目的更新版本。哦,还有一个相关的问题:。是的,就是这样。模块是高度耦合的,因此我同时在所有模块中进行了大量更改,并且需要能够轻松地推/拉更改。我们的工作流似乎并不罕见,这就是为什么我对其他人如何处理这一问题感到困惑的原因。它们是独立的项目,但共享大量代码。因此,每个项目都被细分为“组件”,理想情况下,每个组件都会映射到一个git存储库。需要以原子方式提交内容(即一次提交多个组件/git repo)源于不想错过对任何不同组件的任何更改。此外,repo似乎很有趣,尽管目前特定于android。现在完成这个工作流程的方法似乎是在git上运行自己的工作流程,这不是Android特有的。我现在正在另一个项目中使用它。这些项目是独立的,容器本身可以将不同分支上的相关版本绑定在一起。如果不这样做,当两个项目对其共享项目引入冲突更改时,您将遇到麻烦。