SVN补丁的方式,在不能连接服务器或者没有修改的权限,但是迫于形势,你又必须对这个文件进行修改,这时你就可以用Create patch创建补丁,然后把你创建的补丁发给项目人,或对此目录有写权限的工作人员,他执行Apply patch后,你所做的修改就会被提交到服务器上。步骤如下:

1、在本地修改目录,右键创建补丁:

  SVN 打补丁 Apply Patch ***-LMLPHP

2、选择差异文件:

  SVN 打补丁 Apply Patch ***-LMLPHP

3、保存.patch的补丁文件

  SVN 打补丁 Apply Patch ***-LMLPHP

  SVN 打补丁 Apply Patch ***-LMLPHP

4、可以看到目录下已经生成了补丁文件,此时补丁可以发给相关人打上补丁。

  SVN 打补丁 Apply Patch ***-LMLPHP

5、打补丁,即补丁文件使用:

  使用人COPY到相同目录,右键->Apply patch

  SVN 打补丁 Apply Patch ***-LMLPHP

  点击应用补丁后,弹出需要Patch的文件

  SVN 打补丁 Apply Patch ***-LMLPHP

  至此完成补丁应用。

带来的问题

一个较早的patch,在经过多轮提交后,如果想再要应用,需要严格的diff 
如果两个patch分别改了同一行代码,应用第一个patch后要再应用第二个patch时,仍然需要diff。如果在linux下,会产生冲突,生成.orig和.rej两个文件(此时仍然需要手动进行比较合并) 
第3部分提到的连续性,要准确的预见到,比较困难 
第3部分提到的多个连续的功能,后做的功能的某个文件更新了先做的功能的内容,但先做的功能可能还涉及到其他文件,容易造成漏更新文件的情况

05-18 18:13