本文是为开发人员撰写的,因此如果你对此一窍不通也没有关系,请不要担心!
许多软件项目(包括WordPress)都使用了版本控制系统来记录其源代码,后台的修改及周期性为公共使用发布的软件新版本。WordPress 1.5版本之前,WordPress源代码都存储在Sourceforge下的CVS版本控制系统。但从1.5版本开始,WordPress就开始使用其自己安装的Subversion来进行版本控制。多数WordPress用户并不需要使用Subversion,因为他们只安装WordPress已发布的版本。但是,插件和主题开发者则希望使用Subversion来测试他们的开发软件是否和WordPress最新开发版本兼容,想通过测试或修复bug来协助开发WordPress的用户也需要查看这些正在开发中的代码。
开发中的代码可通过Subversion获取。本文将介绍如何访问WordPress Subversion库及多数WordPress用户可运行的命令。
此外,”不使用Subversion“还介绍了如何在不使用Subversion的情况下下载软件各个版本。本文还涵盖了关于库,分支,主干和标签的基本常识。
除”不使用Subversion“之外,本文假设你已安装Subversion(或至少拥有一个Subversion客户端),且只讨论这方面的基本常识。关于Subversion安装说明,其它可用客户端和更多详细信息,请参考以下资源:
- Subversion 网站
- Subversion FAQ
- Subclipse – Eclipse 开发环境下使用的Subversion插件
- Tortoise SVN -较受欢迎的Windows Subversion客户端
- Subversion图书-可在线免费获得
若使用Tortoise, Subclipse,或其它图解式客户端,以下命令将都通过菜单选项显示,但是所使用的原理是相同的。了解如何连接到库并执行相应命令,可查看所用客户端的帮助文件。
库,分支,主干和标签
Subversion的基本理念就是把源代码和已作修改保存在服务器的库中。用户使用客户端程序连接库以checkout(将代码拷贝下来),浏览,编辑,修改并把更改提交到源代码文件(由客户端的权限级别来定。在WordPress下,只有一小部分人可以把改动提交到库中)。
WordPress库网址为http://svn.automattic.com/wordpress/,其中有三部分内容:
- trunk(主干): http://svn.automattic.com/wordpress/trunk/包含了最新开发的代码
- tags(标签):新版本发布时,源代码就会被“标上”版本号。例如,WordPress 2.0.7可通过http://svn.automattic.com/wordpress/tags/2.0.7/ 获取。
- branches(分支):当WordPress重大版本创建时,WordPress开发团队就会维护上个版本的bug修复(通常为重要bug和安全问题方面的bug)。如,WordPress 2.0分支的最新开发代码可通过 http://svn.automattic.com/wordpress/branches/2.0/ 获取。
不使用Subversion
有些测试WordPress的用户或许并不想使用Subversion,对于此类人群,可通过以下方式下载WordPress开发中的版本:
- http://wordpress.org/nightly-builds/wordpress-latest.zip – 开发中的最新版本,每夜构建
- http://trac.wordpress.org/browser – Trac源代码浏览器 – 会导航到所需的branch/tag。在页面底端,显示有一个可供下载的checkin中最新更改的压缩归档的链接。
- Release Archive(发布存档) (http://wordpress.org/download/release-archive/)—可下载以往的官方发布版本和beta测试版本
Checkout代码
安装Subversion后,首先就要checkout代码,即从库中下载版本代码到本地机中。要做到这一点,首先要为代码备份创建一个新目录,打开新建目录后,执行所需的trunk,branch, 或tag的checkout command ,如:checkout trunk(最新开发版本),请输入:
svn co http://svn.automattic.com/wordpress/trunk/
稍后(根据网络连接速度而定),所建目录就充满了WordPress文件,及包含Subversion 信息的原来隐藏的.svn子目录。
更新代码备份
完成以上操作后,若要更新代码至最新版本,可使用update command,在切换到以上checkout代码的目录后,请输入:
svn update
导出代码
如果无意编辑,更新,改进代码或修复bug,只是想下载最新版本下并安装到其它区域,可使用export 命令(首先应该创建保存导出结果的目录,然后切换到这个目录):
svn export http://svn.automattic.com/wordpress/trunk/
它产生的代码和使用svn co所生成的相同,但不包括原本隐藏的.svn目录。其它Subversion命令在导出后也不会运行,若要使用其它Subversion命令,需要执行checkout。
浏览代码
若在库中列出所有文件,但并不更新或下载到本地等,可使用list命令:
svn list http://svn.automattic.com/wordpress/trunk/
若显示子目录中的文件,如wp-includes,要使用:
svn list http://svn.automattic.com/wordpress/trunk/wp-includes/
也可使用在线浏览器访问WordPress Subversion库。
开发人员使用的命令
若要修复WordPress中的bug,请在目录文件中编辑已下载到本地的代码。若要提交已修复的bug并希望其添加到将要发布的WordPress版本中,请首先阅读bug报告以了解如何在 Trac(WordPress的bug跟踪系统)创建bug ticket,然后使用以下命令:
你或许需要切换到子目录(如trunk)来执行以下命令:
- 获取已更改的文件列表,应使用status command:
svn status
- 若要在逐行补丁格式中显示已作更改,要使用diff command,它将以统一格式显示源代码中所有改动:
svn diff
- 若显示单个源文件中的改动,请使用:
svn diff path/to/file
- 把diff中的输入保存到文件中(以和Trac报告中的补丁相结合),要使用redirection:
svn diff > my-patch-file.diff
- 把工作副本重设为已下载到本地的代码(即撤消所有更改),可使用:
svn revert . -R
- 也可使用以下命令恢复单一文件:
svn revert path/to/file
- 如果已拥有trunk工作副本,但是仍想返回查看已发布版本,可使用'svn switch'命令来使工作副本显示已发布版本,如,回复到2.0版本,可使用以下命令:
svn switch http://svn.automattic.com/wordpress/tags/2.0
参考
- Mark Jaquith在2007年四月对与标签相关的代码问题所作回复
- Mark Jaquith对Linux/Mac命令行的注释说明
- Westi撰写的博文:如何在Windows环境下使用Tortise SVN
- wp-hacker邮件列表中:如何在Windows下创建SVN服务器
分类:中文手册