2008-10-08 194 views

回答

18

这是一个包含已更改代码文件之间差异列表的文件。它通常是通过对两个文件执行diff -u生成的格式。大多数版本控制系统允许轻松创建补丁,但通常采用相同的格式。

这允许使用补丁命令将代码更改轻松应用于其他人的源代码副本。

例如:

比方说,我有以下代码:

<?php 
    $foo = 0; 
?> 

,我又把它改成这样:

<?php 
    $bar = 0; 
?> 

补丁文件可能是这样的:

Index: test.php 
=================================================================== 
--- test.php (revision 40) 
+++ test.php (working copy) 
@@ -3,7 +3,7 @@ 
     <?php 
-   $foo = 0; 
+   $bar= 0; 
     ?> 
+1

我知道很久以前发布了这个帖子,但它刚刚出现在第一页的顶部,这是一个非常棒的答案。感谢你,我的知识库增加了一点点。 – 2010-06-17 03:03:23

+0

很高兴你发现它很有用:) – 2010-06-17 12:54:57

1

A补丁是一个文件,其中包含将维护者的源代码树转换为您自己的所有必需信息。它通常由diffsvn diffgit format-patch等工具创建。

传统上,开源项目接受来自普通学校的补丁形式的提交,所以他们不必让其他人提交对其存储库的访问权限。

+0

这是非常有用的知道各种版本控制系统的不同命令。 – 2014-03-05 15:15:30

1

一个修补程序,通常以.patch文件的形式,是一种常见的平面文件格式,用于传输两组代码文件之间的差异。因此,如果您正在开发一个开源项目,并对代码进行文件更改,并希望将其提交给项目所有者进行签入(通常是因为您没有签入权限),则可以通过修补程序。

WinMerge内置了此功能,像TortoiseSVN等许多其他工具一样。

0

我一直认为这个术语意味着一个错误修复,就像妈妈用来穿上你穿孔的牛仔裤的膝盖补丁。

1

补丁文件表示您修改的现有源和源之间的差异。这是在许多项目中添加功能或修复错误的主要手段。

您可以使用diff命令(例如)创建一个修补程序。

然后,您可以将此补丁提交到开发邮件列表,如果收到的确实很好,则提交者将应用此补丁(从而自动应用您的更改)并提交代码。

使用patch命令应用修补程序。

1

一般而言,它意味着提交一个统一的差异文件和一个特征的集合变更集。你可以read more about patches on Wikipedia。几个版本控制系统(svn,git等)将根据变更集为您创建补丁文件。

1
1. n. A temporary addition to a piece of code, usually as a quick-and-dirty 

补救现有的错误或misfeature。补丁程序可能会或可能不会工作,并且最终可能会或可能不会永久并入程序中。区别于diff 或mod,其原因在于补丁是由比程序的其余 更原始的手段生成的;经典示例是通过使用前面的 面板开关修改的指令,并且直接对最初写在HLL中的程序 的二进制可执行文件进行更改。比较单行修正。

查看提交代码来打开覆盖制作和提交补丁代码项目的行话文件here

4

补丁通常是一个文件,其中包含如何更改某些信息(通常用于修复错误,但也可以是增强功能)。有不同类型的补丁。

源代码补丁包含如何修改一个或多个源代码文件的信息。您可以使用命令diff命令轻松生成它们,并且可以使用补丁程序命令(在Linux/UNIX系统上,这些命令是标准的)应用它们。

但是,也有二进制补丁。二进制补丁包含一个二进制文件中某些字节需要如何改变的信息。当然,二进制补丁在OpenSource世界很少见,但在计算机的早期,我看到他们修改运行的二进制文件(通常是为了解决一个bug)。

提交补丁意味着您已经在本地修复了某些内容,现在您可以将该文件发送给某人,以便他可以将此补丁应用于本地副本或网上的公共副本,因此其他用户可以从中获益。

如果您有一些源代码几乎可以在某个平台上编译,那么通常也会使用修补程序,但需要进行一些细微的更改才能真正将其编译。当然,你可以获取源代码,修改它并提供修改后的代码进行下载。但是如果原始资源再次发生变化(例如,bug被固定或者增加了小的增强)呢?然后,您必须重新下载源代码,再次应用更改并提供新的修改版本。保持修改后的源代码是最新的,这是很多工作。原始文件和修改后的副本之间创建一个diff并将其存储在您的服务器上,而不是修改。如果现在用户想要从源代码下载和编译应用程序,他可以先下载最新版本的最新源代码,然后应用您的补丁程序(以便它将编译)并始终具有最新版本,而无需更改该补丁。只有在您的修补程序修改的某个位置原始来源完全更改时才会出现问题。在这种情况下,系统将拒绝应用该补丁并需要创建一个新的补丁。

1

修补程序也用于更新系统二进制文件的行为。微软始终发送补丁,但它们不是源代码。它们是安装改进的二进制文件的.msp文件。与所有计算机科学术语一样,修补程序过载。