0

我正在使用 3rd 方库作为我的代码库的一部分。它有一个错误,我有两个选择:

  1. 创建和覆盖类以提供大的自由行为。
  2. 为该错误创建一个 svn 补丁

我更喜欢 2 因为从逻辑上讲它更有意义,但是我不确定如何做到这一点,

我是否执行以下操作:

  1. 修改第三方库代码
  2. 创建补丁文件
  3. 还原我的存储库
  4. 应用补丁文件
  5. 将补丁文件添加到存储库
  6. 提交我的更改

??

如果我应该使用补丁,它将存储在存储库中的什么位置?

4

1 回答 1

1

检查供应商分支机构

但有时您希望在自己的版本控制系统中维护对第三方代码的自定义修改。[...] 这些修改可能包括新功能或错误修复,[...]。

现在你面临一个有趣的情况。您的项目可以以某种不连贯的方式容纳其对第三方数据的自定义修改,例如使用补丁文件或文件和目录的完整替代版本。但是这些很快成为维护难题,需要一些机制来将您的自定义更改应用到第三方代码,并且需要在您跟踪的每个后续版本的第三方代码中重新生成这些更改。

供应商分支基本上是一个目录(我们称之为 A),其中包含未修改版本的源代码。您将此目录分支到您的项目(或任何其他位置,我们称之为 X)并将您的路径应用于此分支。如果供应商更新了他的组件,您将把它导入到一个目录中(我们称之为 B)。要更新您自己修改过的库,您将在 B 和 A 之间进行合并并将其应用于 X。这样,您可以保留您的修改,但也可以获得供应商软件版本之间的所有更改。

请记住在合并命令上使用 --ignore-ancestry 选项,否则您将替换更改的文件而不应用差异

于 2013-02-01T00:40:47.427 回答