如果没有,哪个系统最适合保持两个项目之间的代码同步?我的目标是尽可能保持自动化......
答案 0 :(得分:4)
几乎所有VCS都支持分支,您可以使用它来“调味”您的产品。但要注意,很多都取决于您如何在文件级别上实现更改。我个人不会用VCS来调味。 应用程序或构建级别的配置大多更容易维护。
但这里有两个关于事情可能会如何发生的例子。
易于调味的示例:
branch-full
- module 1
- module 2
- module 3
- module 4
- documentation-full
branch-lite
- module 1
- module 2
- purchase-module
- documentation-lite
在这种情况下,您提供的内容主要是在目录级别定义的。没有模块被修改但只添加或删除。这两个列表可以很容易地在构建文件中维护,也许根本不需要VCS,但这是一个不同的故事。
调制成硬的例子(反模式)(精简版中的一个源文件)
my generic code ...
...
...
my lite-specific code ...
...
...
my generic code ...
...
...
如果您遇到GENERIC代码中的错误但仅在您的精简分支中(因为错误可能以某种方式连接到您的精简版),您将不得不修复并在lite分支中提交它。您将不得不挑选合并(并与完整版兼容)您的单个错误修正或根本不将它合并回完整版。后来的选项随着时间的推移增加了精简版和完整版之间的“差距”,这反过来又使得更难从“上游” - 完整版本获得更新,以防更大的发展。
C
答案 1 :(得分:1)
您可以使用其中之一。我对svn最熟悉,但我认为他们都有能力。 你会有一个主分支和一个精简分支。
SVN非常容易合并。冲突解决很简单。
我打赌大多数人会同意这是一个很好的工具。