如何更新子项目?

时间:2014-06-22 14:51:11

标签: git svn version-control

四年多以前,我创建了一个基于现有项目的新独立项目。两者都在SVN回购。儿童项目是定制的,两个项目在未来几年都是独立发展的,但它们仍然有很多共同的代码。

去年,两个代码存储库都迁移到了Git。子项目代码具有较少的功能,并且比新项目的开发少,因此使用父代码的某些部分更新它是有意义的。

那么,这将是继续保持两个项目(部分)同步的方法吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

您有两个不同的项目。你不能真正做你想要做的版本控制。

相反,将共享的片段提取到存储在第3个repo中的,然后使用您的语言支持的任何代码重用机制(DLL,Ruby Gems,Perl模块,等等)来包含每个项目中的共享位。

同样,这根本不是版本控制的工作,并且您将尝试使用版本控制系统进行非常错误的时间。

答案 1 :(得分:1)

这取决于它是什么类型的项目。如果您能够将两个项目中的公共代码移出到单独的Git存储库(仅用于公共代码),则可以使用submodules将该公共代码集成回特定项目。这样,您只有一个(单独的)位置来处理公共代码,并且两个项目都可以决定将这些更改引入并在其上构建。

另一种选择是将两个项目都移动到一个存储库中。如果两个项目非常相似(例如,在更新子项目以使其更符合其父项目之后),则这将适用。那么你的子项目将只是一个单独的分支,可以单独引入更改。这也允许您在子项目中将更改引入父项,以防有用。

相关问题