|
作者:佚名 责任编辑:左决 点击数: 更新时间:2008-3-14 4:45:07 |
 |
Subversion(以下简称svn,官方网站为http://subversion.tigris.org)是鼎鼎大名的cvs的继任者,使用方法和cvs几乎一样,而且在管理二进制文件、目录方面比cvs更胜一筹,其作者就是cvs之父,所以完全不用担心从cvs转移到svn上会有任何困难。 正式基于以上优点,前几天我尝试了一下svn,在Windows上不仅svn client可以使用,而且svn server也非常方便,看来以后就用svn替代cvs吧。 主要参考的文章是: [1] http://www.nedbatchelder.com/text/quicksvn.html [2] http://excastle.com/blog/archive/2005/05/31/1048.aspx
step1: 首先从http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91 下载最新的subversion的windows setup安装文件,按照提示一路next下去就可以了。这个安装包就包含了client和server的全部文件,安装后就可以在命令行下使用svn, svnadmin, svnserve等程序了。 step2: 设置注释编辑器。在系统变量里添加SVN_EDITOR变量,值为任意一个文本编辑器的名字,比如notepad.exe。 step3: 创建svn reposITory。比如选择c:\svn_repo作为我们的目录,那就先创建这个文件夹,然后再命令行下输入: svnadmin create c:\svn_repo 注意,这个reposITory只是一个仓库而已,你可以在里面创建“虚拟文件夹”,每个文件夹下就可以存放不同的module了。 下面介绍如何从网络上访问你的reposITory。 svn的地址采用url的方式,如果通过svnserve(后面会介绍)创建网络可访问的服务器,那url地址就是svn://your_ip/module_dir。如果你只想在本地文件系统上访问你的svn reposITory,那url地址就是file:///c:/svn_repo/module_dir(按照上面例子)。以后不管你import还是checkout,都只需要这个url作为地址,而且登陆一次后,只需要输入一次url地址,svn会自动记住你的url地址,简单吧。下面就只介绍如何设置一个svn网络服务器。 step4: 设置网络服务器的权限。进入到刚才创建的c:\svn_repo,打开conf\svnserve.conf,去掉[general]前的#,去掉auth-access = wrITe前的#,如果你希望匿名用户访问,那就去掉anon-access前的#。去掉password-db前的#。 step5: 设置用户名和密码。还是在那个目录下,打开passwd文件,去掉[user]前的#。按照已有的例子,添加可访问的用户名及其密码,去掉前面的#。这和cvsnt的做法很不一样,cvsnt要求可访问用户在cvs reposITory所在机器上必须有windows帐户,这实在太苛刻了……,还是svn的做法更简单,虽然明文密码不是很安全……。 step6: 启动网络服务svnserve。在命令行下输入 svnserve --daemon --root "C:\svn_repo" 然后就可以通过ip地址来访问你的服务器了,假设服务器IP地址是192.168.2.168,那你的服务器地址(也即c:\svn_repo的svn地址)就是svn://192.168.2.168。 不过svnserve会一直block在命令行上,如果要把它做成一个真正的后台服务程序,还需要一个第三方程序SVNService,可以在http://dark.clansoft.dk/~mbn/svnservice/ 下载。 step7: 创建module的虚拟文件夹。新开一个命令行窗口,输入 svn mkdir svn://192.168.2.168/proj1 如果你是第一次登陆服务器,则会提示你输入用户名和密码。 step8: import你的工程。进入到c:\proj文件夹,在命令行下输入: svn import . svn://192.168.2.168/proj1 表示把当前目录下的所有文件(及其子目录)都import到url地址所指定的位置上。
step9: checkout你的工程。进入到任意一个文件夹下,输入: svn checkout svn://192.168.2.168/proj1 testdir proj1模块就下载到testdir下了。之后的项目管理方式就和cvs一样了。
后续问题: 一台机器上只能跑一个svnserve,也即同一时刻,一台机器只能提供一个repository。当然,你可以通过给svnserve指定不同端口,让一台机器提供多个repository,但是这显然没有cvs那样灵活。不过也许有多reposITory的功能,但是还没发现。 如果喜欢gui的操作方式,有TortoiseSVN这个强大的工具。它可以在Windows资源管理器的右建中加入svn的功能。 |
|
|
|
|
 |
最进更新 |
|
|
|
 |
推荐文章 |
|
|
|
|