1

我正在做一个使用Orchard CMS的项目。

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

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

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

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

我们可以在这个项目中使用其他一些常见的做法吗?

注意:目前我正在为我正在处理的项目提出这个问题,但我想知道一般情况下如何使用 OSS 项目,您需要更改项目的源并仍然想获得最新版本偶尔。

4

1 回答 1

2

只要您克隆了 Orchard 存储库,您就可以随时从中提取更改。您可能必须使用比较工具解决一些冲突,在该工具中,您更改了一个文件,该文件在您最近一次合并后在果园存储库中也发生了更改。虽然它相对无痛。

我在 bitbucket 上保留了我的 repo 的副本,并在他们发布新版本时从 orchard repo 中提取。通常我需要解决解决方案文件的冲突,以及这里和那里的一些事情。一旦解决了这些冲突,您就无需在每次更新时再次处理它们。这只会发生在您和 Orchard 都在更改文件的情况下。(如解决方案文件)

于 2012-11-25T16:59:19.367 回答