如何跟踪对外部维护的大型代码库的小更改

时间:2008-12-08 03:41:26

标签: version-control open-source

在处理一些开源项目时(在我的案例中是Joomla和Moodle),我经常不得不深入研究核心代码进行一些修改,但问题是跟踪这些变化,所以我知道哪些文件要在生产服务器上进行更新,以及在升级到新版本时要特别注意哪些文件,以便不会覆盖我的更改。

显而易见的答案是将整个代码库加载到版本控制中,然后您可以轻松地将版本0(未触发的版本代码)与当前版本或工作副本进行比较以查找已更改的文件,但它似乎有点像当你只改变一个或两个文件并且项目有超过5000个文件时(例如Moodle会这样做),这就太过分了。

光谱的一端是版本控制存储库,另一端是使用记事本手动跟踪更改......两者之间是否存在任何内容?

2 个答案:

答案 0 :(得分:7)

我不确定为什么你对版本控制有抵抗力;您的情况正是版本控制旨在处理的内容!

事实上,对外部驱动的大型代码库进行几次小的局部更改,使得使用适当的源代码控制变得更加重要。使用具有智能差异和合并引擎的源控制系统可确保在从上游更新时简单的更改很容易合并,并且复杂的更改有可能被跟踪。

鉴于高质量,零成本的源控制系统的广泛可用性,没有理由不使用它们。

答案 1 :(得分:0)

最终,听起来你所做的就是你已经分叉了代码。这真的是你的意图吗?将您的更改合并到原始源中,然后您不必为将来的更新继续进行这些更改。

如果您的更改不适合项目的任何其他使用者,那么您可以改为引入允许稍后加载自定义的更改。也就是说,即使您的具体更改并非适合所有人,但您更改的代码部分也可能是其他人希望为其安装进行自定义的部分。向程序添加一项功能,该功能将从单独的文件加载自定义项。然后代码不再需要更改,您可以更新配置文件,而无需跟踪与外部代码相关的更改。