使用Subversion

1条评论

本文是为开发人员撰写的,因此如果你对此一窍不通也没有关系,请不要担心!

许多软件项目(包括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安装说明,其它可用客户端和更多详细信息,请参考以下资源:

若使用Tortoise, Subclipse,或其它图解式客户端,以下命令将都通过菜单选项显示,但是所使用的原理是相同的。了解如何连接到库并执行相应命令,可查看所用客户端的帮助文件。

库,分支,主干和标签

Subversion的基本理念就是把源代码和已作修改保存在服务器的中。用户使用客户端程序连接库以checkout(将代码拷贝下来),浏览,编辑,修改并把更改提交到源代码文件(由客户端的权限级别来定。在WordPress下,只有一小部分人可以把改动提交到库中)。

WordPress库网址为http://svn.automattic.com/wordpress/,其中有三部分内容:

不使用Subversion

有些测试WordPress的用户或许并不想使用Subversion,对于此类人群,可通过以下方式下载WordPress开发中的版本:

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报告以了解如何在 TracWordPress的bug跟踪系统)创建bug ticket,然后使用以下命令:

你或许需要切换到子目录(如trunk)来执行以下命令:

 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

参考

 

 

#1
svn原来可以这样用,学习了