Web 我应该继续分叉,还是维护一组补丁和一个Makefile

Web 我应该继续分叉,还是维护一组补丁和一个Makefile,web,makefile,fork,patch,code-organization,Web,Makefile,Fork,Patch,Code Organization,我编写并维护了一个拥有约1K活跃用户的中型网站 我使用诸如Ubuntu、Python、Django、jQuery、Less、twitter引导等技术,以及它们带来的所有依赖性。我有半吨的外部组件,比如我从互联网下载的JS库,还有一些我在GitHub上分叉的项目,因为我需要改变。我用pip安装的一些Python项目 我还对在线下载的JS库进行了更改,现在所有内容都在我的存储库中。分叉项目在我的存储库中作为git子模块提供 经过1.5年的发展,我意识到这是一个糟糕的方法。升级任何组件都可能非常麻烦。

我编写并维护了一个拥有约1K活跃用户的中型网站

我使用诸如Ubuntu、Python、Django、jQuery、Less、twitter引导等技术,以及它们带来的所有依赖性。我有半吨的外部组件,比如我从互联网下载的JS库,还有一些我在GitHub上分叉的项目,因为我需要改变。我用pip安装的一些Python项目

我还对在线下载的JS库进行了更改,现在所有内容都在我的存储库中。分叉项目在我的存储库中作为git子模块提供

经过1.5年的发展,我意识到这是一个糟糕的方法。升级任何组件都可能非常麻烦。我很难跟踪版本,而且我害怕升级单个组件,不管是我用pip安装的python包,还是javascript库,或者其他什么,因为这可能会导致回归

昨晚我开始想,我应该维护一组补丁,通过Makefile应用,而不是像“没有明天”这样分叉

我会过得更好吗?你的想法是什么


提前谢谢。

我最近对此有一些经验。我一直在修改我们实验室使用的文件集,以便将文件移植到他们使用的语言的较新版本,但与此同时,其他人也在定制他们自己的文件版本以满足他们的需要。因此,我需要的是一种在自定义版本的基础上修补我的更改的方法

我这样做的方式不是使用git,也不是让我每天都使用这两种工具,而是使用OSX的可视化文件合并工具。我假设我的定制代码和他们的代码之间的所有差异最初都默认为他们的代码,然后我继续进行所有更改,如果有任何更改属于我的定制代码,我将它们修补到他们的代码

它是手动的,但OSX的可视化文件合并实用程序使它相对快速、轻松。我说的相对无痛是指我可以用右手完成整个合并,永远不离开四个箭头键,也不使用鼠标。老实说,我不确定这种修补是否可以自动化。在进行合并时,我不得不做出一些决定,我不确定这些决定是否可以轻易地交给某种自动修补系统

也就是说,git的合并算法成功地合并了一些东西,我对此感到惊讶

这是一个很好的问题。谢谢你的来信。我知道这不是一个确定的答案,但这些是我目前对这个问题的想法,因为它们是值得的