Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 创建和应用svn修补程序的过程_Php_Svn - Fatal编程技术网

Php 创建和应用svn修补程序的过程

Php 创建和应用svn修补程序的过程,php,svn,Php,Svn,我使用第三方库作为代码库的一部分。它有一个bug,我有两个选择: 创建并重写类以提供大的自由行为 为bug创建一个svn补丁 我更喜欢2,因为从逻辑上讲它更有意义,但我不确定如何做到这一点 我是否要执行以下操作: 修改第三方库代码 创建补丁文件 还原我的存储库 应用补丁文件 将修补程序文件添加到存储库 提交我的更改 ? 如果我应该使用修补程序,它将存储在存储库中的什么位置?检查: 但有时您希望在自己的版本控制系统中维护对第三方代码的自定义修改。[…]这些修改可能包括新功能或错误修复[…] 现在你

我使用第三方库作为代码库的一部分。它有一个bug,我有两个选择:

  • 创建并重写类以提供大的自由行为
  • 为bug创建一个svn补丁
  • 我更喜欢2,因为从逻辑上讲它更有意义,但我不确定如何做到这一点

    我是否要执行以下操作:

  • 修改第三方库代码
  • 创建补丁文件
  • 还原我的存储库
  • 应用补丁文件
  • 将修补程序文件添加到存储库
  • 提交我的更改
  • ?

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

    检查:

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

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

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


    请记住使用merge命令上的--ignore conserouse选项否则您将替换更改的文件,而不应用diff

    选项3。向第三方供应商报告错误(如果您愿意,请提供修复程序),让他们修复代码,这样当您将来获得更新时,您就不会再收到错误。理想情况下是这样,但从他们那里获得更新的代码需要很长时间。我需要尽快把这个修好,所以恐怕我不能选择那个