Version control 保持代码分歧分支的最佳实践

Version control 保持代码分歧分支的最佳实践,version-control,open-source,Version Control,Open Source,我所处的情况是,我提交给开源项目的一些小补丁被忽略或明确不被接受。 我认为它们是有用的,但更重要的是,我需要< /强>它们实现的功能。 我不想再把我的想法和建议推给主要的贡献者,因为我不想把这变成一个自我问题。我已经决定,我最好的办法就是把我写的东西用于我自己的目的。我不想把整个源代码树都翻出来,因为我喜欢事情的总体工作方式,只是对细节不满意 但我确实意识到这个项目将不断发展,我希望使用最终将出现的新功能。我知道我必须将所有新事物合并到我自己的源代码树中。对于这个场景有什么最佳实践吗?如果您正在

我所处的情况是,我提交给开源项目的一些小补丁被忽略或明确不被接受。 我认为它们是有用的,但更重要的是,我<强>需要< /强>它们实现的功能。

我不想再把我的想法和建议推给主要的贡献者,因为我不想把这变成一个自我问题。我已经决定,我最好的办法就是把我写的东西用于我自己的目的。我不想把整个源代码树都翻出来,因为我喜欢事情的总体工作方式,只是对细节不满意

但我确实意识到这个项目将不断发展,我希望使用最终将出现的新功能。我知道我必须将所有新事物合并到我自己的源代码树中。对于这个场景有什么最佳实践吗?

如果您正在使用或可能习惯使用它,也许您应该看看或


它们是Git之上的层,用于跟踪补丁。

通常,您会在存储库中创建项目的一个分支。在您的特定情况下,如果可能的话,我将创建包含代码的目录的分支。许多像subversion这样的存储库将允许您沿着主干检查分支。这将允许您维护修补程序,并确保它们与将来对主干所做的更改一起工作。

标准方法是在存储库中维护供应商分支。其思想是将原始源的原始副本(称为供应商放置)导入本地存储库,并将其存储在分支上。这是应用mods之前的代码版本。用版本标记它,然后将其复制到主干并应用补丁程序

当供应商代码的后续新版本发布时,您将签出供应商分支(不带mods),并将新版本覆盖在顶部。最后,您将新分支与您的MOD合并,检查它们是否仍然适用/相关,然后您就可以重新开始了

可能会有一些复杂情况,例如文件被重命名、删除等。Subversion附带的脚本
svn_load_dirs.pl
,可以帮助您识别已更改名称的文件,并自动化一些官僚机构


Subversion一书中的小节详细讨论了这种方法(而且更为清晰)。这只在git方面有用。我们其他人呢?