版本控制-将自定义代码mods迁移到新的主要开源软件版本的建议



我有一个简单机器论坛(SMF 1.1.13)的(脏的)生产安装。它是一个干净的安装,曾经。。。大约五年前,20次更新,40次mod。更不用说直接修补到代码库中的自定义代码了。这是一个有趣的附带项目,一开始没有任何代码管理实践。

现在SMF2即将上线,我想升级。但不留下自定义功能。

继续阅读,这是一个通用软件管理问题,而不是SMF支持问题

我正试图找出将自定义特性移植到新代码分支中的最佳方法。

  • 在某些情况下,2.0中已经存在自定义1.1.x功能。耶,我没有工作
  • 在某些情况下,会有2.0版本的mod包,我可以直接将它们安装在干净的SMF2构建上。耶,我的工作量很小
  • 在某些情况下,代码端口在两个版本之间会相当简单(例如,查询或全局变量构造中的一些小更改)。(我已经将一些功能/mods从2.0移植到1.1.x,所以我开始熟悉它了。)
  • 在某些情况下,我将不得不重新开发这些功能,主要是从头开始

最后两个选项将很难管理。

关于如何将大量更改从一个分支移植到另一个分支,有什么建议吗如果不是我自己的内部代码,那就是。这是我的初步计划:

  • 1.1.x的干净版本和我的"脏"生产代码之间的差异
  • 将每一行的差异映射到一个功能("代码更新是自定义标记功能,必须逐行移植,那边的那个就是库,我可能可以安装一个更新的模块。")谷歌和SO搜索没有找到这样的工具——有吗
  • 安装一个干净的2.0分支
  • 安装可用的更新MOD
  • 卷起袖子,逐个查看我的diffs功能(这就是为什么我需要合并的diff报告。如果一页一页地做,那就太糟糕了。)然后重新构建它们

有更好的主意吗?(欢迎发布管理信息的指针,当然需要注意的是这实际上不是我的代码,所以我的控制有限。)

否则呢?我担心我的选择是放弃自定义功能(实际上不可行)或保留旧的分支。两者都很糟糕。帮助

tl;dr:向我介绍一个diff工具,该工具将对整个目录进行逐文件合并的diff报告。和/或帮助我找到一种更简单的方法来迁移我的自定义代码。

您的计划通常是最实用的方法,尽管我想说您在寻找代码级别差异时正朝着错误的方向前进。在项目生命周期内没有版本控制,也没有应用更改的简明记录的情况下,在检查代码级别的差异时,您正在寻找一个可能无法为您提供将相同更改应用于新实现所需信息的详细级别。

不再考虑代码级别的更改,而是考虑应用程序级别的特性和行为更改。您的更改引入了哪些功能?由于您的更改,您的应用程序现在在哪些方面表现不同?

您说在很长一段时间内发生了许多未经验证的更改-无论您拥有什么工具,您都无法找到所有更改您仍然需要考虑现有的功能和行为更改,以在任何升级的实施中完全代表相同的功能和行为。

你很了解你的应用程序,你使用它,你确实很欣赏你引入的功能变化,即使你可能没有意识到这一点。

  • 安装香草2.0版本
  • 应用所有适当的MOD
  • 应用相关样式
  • 使用新系统,注意行为上的差异,并由此开发出一套所需的功能

你的功能集不需要完整——不要在试图找出所有需要的更改的阶段停滞不前,这将花费太长时间。

  • 应用从最新反馈中收集的功能(最好是通过可恢复的MOD)
  • 注意行为上的差异,从中开发一组所需的功能
  • 重复

相关内容

  • 没有找到相关文章

最新更新