前一阵子项目开发的时候用到版本管理,以前用的是VSS,现在准备用一下SVN,摸索了一阵子,大概搞清了怎么配置和使用。与VSS相比,我个人觉得SVN使用起来方便些。
首先是软件的安装,我们这里要用到两个软件,一个是服务器端软件subversion,一个是客户端TortoiseSVN。两个都是免费软件。下载的地址在网上有很多地方介绍,但对可怜的教育网或没有上国际网的同胞来说,那是一个比较困难的事实。因为网上给出的地址绝大部分是软件的官方网址,是国外网。而在国外,本人几乎很难搜到顺利下载的地址。直到利用迅雷搜索,才顺利解决软件下载问题。服务器端和客户端版本理论上应该配套,但客户端版本比服务器端新也是没问题的。
服务器软件可能是不需要安装的,那就更好。客户端应该是属于安装形式。如果不懂无需安装的软件要进行一系列烦琐的命令配置,最好是下载那些安装型的,这样,它会在安装过程中自动进行一些必须的配置。服务器端和客户端安装的顺序无关紧要。
服务器应该安装服务器和客户端,客户机只需要安装客户端。事实上,如果服务器机不安装服务器端软件也行,客户端TortoiseSVN自带有服务器,但是在本人使用的过程中,远程客户端不方便访问,并且提交的速度慢得难以忍受。如果进行单机版本管理的话,无需安装服务端,也没有问题。
服务器端:服务器端软件subversion是属于命令行式的,没有图形化操作界面,这对于生手来说有点麻烦,不过所幸的是,我们只需记住一条命令即可。其余的都可以通过客户端来控制。这条命令是svnserve -d -r 版本存放地址。在这之前,使用右键的方式,创建一个版本存放仓库等等,进行一些必要的操作(这里不再说明,这完全是得用客户端软件进行的,网上有很多说明,搜索TortoiseSVN的使用方法就可以得到完整说明)。虽然利用客户端软件,但进行地却服务器软件的操作同样的效果。不妨假设先在E盘创建文件夹:E:\svnServer。并在此文件夹创建一版本存放仓库。此时开始-运行-cmd,在出现的窗口中,利用上面提到的命令svnserve -d -r e:\svnServer。这样就启动了版本服务器了。注意不能关闭些窗口,否则版本服务器也随之关闭。如果你使用的不是安装型的软件,那么这条命令会报错。因为没有进行环境变量的设置。
客户端:对客户端的操作不准备多说,网上随处可见。只是在checkout或commit ,update等操作的时候,在URL of repository(版本仓库地址)中输入格式为svn://服务器ip/文件夹名。如svn://245.38.100.245/che。这里che是建在服务器文件夹e:\svnServer\che\。因为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
回复 更多评论