来源:http://trac.seagullproject.org/wiki/Code/SubmittingPatches

想要分享你的代码,很好!

对所有想为seagull项目做贡献的开发人员的政策是他们各自保留他们的原始版权,并授权给Demian Turner,也就是Seagull项目的维护者和Seagull 组,无偿使用他们的工作及其在该项目协议下的延伸工作。

所有的代码必须遵守SeagullHeader编码标准,贡献者将会被列在文件版说明底部的作者列表内。

提交补丁

浏览http://pear.php.net/manual/en/contributing.patches.php,关于创建补丁的PEAR向导.

为Seagull创建补丁,首先你必须从SVN上取得最新的代码. 从SVN上取得Seagull

开始你的修改…

然后转到Seagull根目录,即,如果Seagull安装在/var/seagull,通过以下命令转到那个目录下:

$ cd /var/seagull

然后执行:

$ svn diff > your.diff

请将所有的补丁提交到Trac站点上.如果你的补丁匹配到一个已存在的标签,请为他贴上一个标签或相应地创建一个新的标签

提示:我们建立的Trce,对匿名的用户是只读的.添加一个补丁或创建一个标签,你将需要在Seagull站点上签名并使用相同的详细资料进入Trac.

从Seagull根目录创建

记住:请在Seagull的根目录创建所有补丁.

如果你在根目录下创建补丁,补丁的头文件如下所示:

 
Index: modules/navigation/classes/CategoryMgr.php
===================================================================
RCS file: /var/cvs/seagull/modules/navigation/classes/CategoryMgr.php,v
retrieving revision 1.14
diff -u -r1.14 CategoryMgr.php
--- modules/navigation/classes/CategoryMgr.php	29 Jan 2005 10:22:28 -0000	1.14
+++ modules/navigation/classes/CategoryMgr.php	2 Feb 2005 12:44:32 -0000
@@ -252,11 +252,11 @@

(补丁的第一行由SGL的根目录取得,与第6,7行一样.如果需要,手动修改它)

比较单个文件与单个目录的异同

你只想递比较目录的差异,你可以使用

$ svn diff modules/publisher > your.diff

同理,只比较一个文件命令:

$ svn diff modules/publisher/lang/german-iso-8859–1.php > your.diff

如果你改变了一些不想区分的文件,这样做是相当容易操作的.

使用Unix风格的EOL(译者注:行结束符)

同样,请记住,特别是当你正要提交一个新文件时,Unix EOL是非常重要的,即/n 替代/r/n。如果你是在Windows下工作,而你的编辑器没有将文件保存为Unix EOL选项时,可以简单地运行以下两个命令行中的任意一行,第二行也是将制表符转换成4个空格:

 perl -pi -e 's/\r\n?/\n/g' $file

tr -d '\15\32' < dos.txt > unix.txt

或使用awk

awk '{ sub("\r$", ""); print }' dos.txt > unix.txt

或使用程序:dos2unix

用四个空格替代制表符tab

将制表符替换为四个空格:

tr '\t' ' ' < file > file.new && mv -f file.new file

(有可能不能工作,取决于你的tr版本)

sed '/\t/ /g' < file > file.new && mv -f file.new file

(取决于你的sed版本,你可能需要输入实际的制表符来代替命令行中的\t)

也可以查看

给Seagull打补丁

如果你想给你正在使用的Seagull版本应用补丁,要么使用phpEclipse中提供的应用补丁功能或简单地在你的Linux控制台中输入如下命令

$ cd your/seagull/root/directory/
$ patch -p0 --dry-run < your_patch_file.txt
(Note: on FreeBSD patch does not recognize --dry-run option. Use -C or --check as it is equivalent.)

测试完后,如果没有输出错误,删除–dry-run.

 
code/submittingpatches.txt · 最后更改: 2010/05/30 00:21 (外部编辑)
 
Except where otherwise noted, content on this wiki is licensed under the following license:GNU Free Documentation License 1.2