|
来源: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. |