Open source 如何通过本地更改将OSS升级到新版本?

Open source 如何通过本地更改将OSS升级到新版本?,open-source,merge,orchardcms,Open Source,Merge,Orchardcms,我正在做一个项目,我们正在使用 我们已经为CMS制作了一些模块和主题,还必须在Orchard源代码中进行一些代码更改。这当然不是一个很好的实践,因为当升级CMS或类似的东西时,这些更改将消失。然而,在当时进行这些更改是不可避免的,因为默认功能无法按照客户的要求工作 现在,所有这些更改都是在旧版本1.5.1上进行的,现在我们需要转到新版本(目前为1.6)。通过这样做,我们将失去对Orchard资源所做的所有更改 我已经将我们对默认源所做的所有更改捆绑在一个变更集中,因此将它们合并到新版本的CMS中

我正在做一个项目,我们正在使用

我们已经为CMS制作了一些模块和主题,还必须在Orchard源代码中进行一些代码更改。这当然不是一个很好的实践,因为当升级CMS或类似的东西时,这些更改将消失。然而,在当时进行这些更改是不可避免的,因为默认功能无法按照客户的要求工作

现在,所有这些更改都是在旧版本1.5.1上进行的,现在我们需要转到新版本(目前为1.6)。通过这样做,我们将失去对Orchard资源所做的所有更改

我已经将我们对默认源所做的所有更改捆绑在一个变更集中,因此将它们合并到新版本的CMS中变得更容易一些。然而,在我看来,这并不是一个很好的工作流程

我们可以选择fork项目并在fork中进行更改,但是在升级时我们会遇到同样的困难,因为在升级fork时我们仍然需要合并所有更改。 创建拉请求也不是一个真正的选项,因为很可能这些更改不会在主存储库中进行,或者不是所有用户都喜欢这些更改

在这个项目中有没有其他的常用做法


注意:目前我在为我正在从事的项目询问这个问题,但我想知道如何使用OSS项目,在这些项目中,您需要更改项目的来源,但仍然希望偶尔获得最新版本。

只要您克隆了Orchard repo,就可以随时从中获取更改。您可能需要使用比较工具来解决一些冲突,在该工具中,您更改了自上次合并以来在orchard repo中也发生了更改的文件。不过,这相对来说是无痛的


我在bitbucket上保留了我的回购协议副本,当他们发布新版本时,我只是从orchard回购协议中提取。通常,我需要解决解决解决方案文件的冲突,以及这里和那里的一些事情。一旦这些冲突得到解决,您就不需要在每次更新时再次处理它们。只有当您和Orchard都在更改文件时,才会发生这种情况。(与解决方案文件类似)

听起来是个不错的工作流程。获取回购协议的特定版本,当有新(主要)版本时,获取新版本。DVCS将确保单独完成所有提交。只有我们自己更改的文件才需要合并。谢谢