您的位置主页 > SVN配置

windows下SVN版本管理服务器配置

前一阵子项目开发的时候用到版本管理,以前用的是VSS,现在准备用一下SVN,摸索了一阵子,大概搞清了怎么配置和使用。与VSS相比,我个人觉得SVN使用起来方便些。
首先是软件的安装,我们这里要用到两个软件,一个是服务器端软件subversion,一个是客户端TortoiseSVN。两个都是免费软件。下载的地址在网上有很多地方介绍,但对可怜的教育网或没有上国际网的同胞来说,那是一个比较困难的问题。因为网上给出的地址绝大部分是软件的官方网址,是国际网。而在国内,本人几乎很难搜到顺利下载的地址。直到利用迅雷搜索,才顺利解决软件下载问题。服务器端和客户端版本理论上应该配套,但客户端版本比服务器端新也是没问题的。
服务器软件可能是不需要安装的,直接复制过来就能使用,那就更好。客户端最好选择安装版。如果不懂无需安装的软件要进行一系列烦琐的命令配置,最好是下载那些安装版客户端的,这样,它会在安装过程中自动进行一些必须的配置。服务器端和客户端安装的顺序无关紧要。
服务器上最好服务器端和客户端都安装。事实上,服务器机不安装服务器端软件也行,客户端TortoiseSVN 也自带有服务器,但是在本人使用的过程中,远程客户端不方便访问,并且提交的速度慢得难以忍受。如果进行单机版本管理的话,无需安装服务端,也没有问题。
服务器端:服务器端软件subversion是属于命令行式的,没有图形化操作界面,这对于生手来说有点麻烦,不过所幸的是,我们只需记住一条命令即可。其余的都可以通过客户端软件的图形界面来控制。这条命令是:
svnserve -d -r 版本存放地址
在这之前,使用右键的方式(之前必须安装好服务端和客户端TortoiseSVN),创建一个版本存放仓库等等,进行一些必要的操作(这里不再说明,这完全得用客户端软件进行的,网上有很多说明,搜索TortoiseSVN的使用方法就可以得到完整说明,如:[url=http://hi.baidu.com/wangzhe1945/blog/item/25fdc5b439665a718ad4b271.html]http://hi.baidu.com/wangzhe1945/blog/item/25fdc5b439665a718ad4b271.html[/url])。虽然利用客户端软件,但进行地却是与服务器命令操作同样的效果。不妨假设先在E盘创建文件夹:E:\svnServer\projects。并在此文件夹( 保证为空文件夹)创建一版本存放仓库。此时开始-运行-cmd,在出现的窗口中,利用上面提到的命令:
svnserve -d -r E:\svnServer\projects
注意命令中后面的路径中不能含有空格,有空格需要特别处理。这样就启动了版本服务器了,表面上没有什么反应,但在任务管理器中可以看到多了一个svnserve.exe的进程。注意不能关闭此命令窗口,否则版本服务器也随之关闭。如果你使用的不是安装型的客户端软件,那么这条命令会报错。因为没有进行环境变量的设置。
这样配置SVN的结果是,服务端机器每次重启的时候都必须手动输入前面提到的命令来启动SVN服务器。这样极为不便,而且启动之后命令窗口不能关闭,让人难以忍受。最好的办法是把SVN服务注册为系统服务。命令如下:
sc create svnservice binPath= "\"C:\Program Files\Subversion\bin\svnserve.exe\" --service -r E:\svnServer" start= auto
注意,上述命令均在一行中。sc.exe是Windows 2000以后系统自带的一个工具,2000下没有,可以从XP上拷过来。svnservice为服务名称,后面的参数格式有严格要求,等号前面没有空格而后面有。binPath本身带有多个参数,因此用引号括起来,而由于路径里面又有空格,因此又加上了一层引号。 --service和-r均为svnserve.exe的参数,前者要求它作为服务运行,后者指明了仓库的根路径(多仓库为仓库的父目录)。 带安装包的SVN会自动注册服务,这时我们可能需要修改-r参数(用于指明仓库路径),命令如下:
sc config svnservice binPath= "\"C:\Program Files\Subversion\bin\svnserve.exe\" --service -r E:\svnServer"
注册完后,通过运行命令sc start svnservice或者服务管理器(service.msc)启动服务。接下来,我们就可以通过下面的命令来测试系统是否工作正常:
svn info svn ://localhost/projects
如果正确的显示出仓库的相关信息,那么就大功告成了,否则请检查服务的参数是否配置正确。如果安装了TortoiseSVN,则可以直接在浏览器中输入svn ://localhost/projects,这样会调出TortoiseSVN的Repos-Browser。
客户端:对客户端的操作不准备多说,网上随处可见。只是在checkout或commit ,update等操作的时候,在URL of repository(版本仓库地址)中输入格式为svn://服务器ip/文件夹名。如svn://245.38.100.245/projects。这里是建在服务器文件夹e:\svnServer\projects上。因为e:\svnServer是一个仓库的父目录,里面可新建、管理多个仓库。每个仓库可以设置不能的用户。不同仓库之间用户不可见。每个仓库可以管理多个项目(在仓库里新建多个文件夹,不同的项目存放不同的文件夹)。至于用户密码管理等等,这些网上都有很多说明。可以自己去找找。
最后附上SVN在linux下的注意事项和常用的命令
发生冲突时: svn revert 扔掉自己的修改,使用仓库中的文件版本如果保留自己的改动,丢掉其它人的改动,则: cp number.txt.mine number.txt svn resolved number.txt 如果想用另外方式修改一下用svn resolved number.txt
svn log [-r 16:24] clock.java [|more]查看日志 svn blame number.txt 显示一个或多个文件的内容。对于每个文件的每一行,显示改动了那行的最后版本以及作出改动的人。
svn diff [-r 27:26] number.txt 查看(版本27与版本26之间)的差异 svn merge -r 27:26 number.txt 移除版本27中对number.txt的改动 svn merge -r 27:26 . 撤销版本27对当前目录的所有改动,点表示当前目录 svn status [--show-updates] 查看工作版本的状态(与服务器对照)
当锁住文件的用户对文件进行提交后,文件即被解锁
svn add number.txt , svn commit 添加文件
svn co 签出文件co即为checkout
svn info number.txt查看文件number.txt信息
svn move 移动文件或重命名
创建分支(发布或修正BUG): svn mkdir -m "msg" svn://ip/sesame/branches 可以同时创建多个目录,用空格分开即可 svn copy -m "msg" svn://ip//sesame/trunks svn://ip/sesame/branches/RB-1.0 svn commit
访问发布分支,从分支签出即可。
签出到当前目录的rb1.0文件夹 svn co svn://ip/ rb1.0
如果仍有不明之处,可以参考:[url=http://hi.baidu.com/wangzhe1945/blog/item/25fdc5b439665a718ad4b271.html]http://hi.baidu.com/wangzhe1945/blog/item/25fdc5b439665a718ad4b271.html[/url]

本文来自CSDN博客,转载请标明出处:[url=http://blog.csdn.net/gooddasenlin/archive/2008/07/08/2624160.aspx]http://blog.csdn.net/gooddasenlin/archive/2008/07/08/2624160.aspx[/url]