每个程序员都应该参与团队合作项目,我想您也会参加的,如果参加过你是否遇到过这样的情况:当你正在修改一个文件,却出现另一个人作了同样的事情。你是否曾因为这种巧合而导致了你的修改付之东流?
你是否曾经在文件保存之后,又想恢复到文件保存之前?你是否想过要去查看一个文件几天前的内容?
当你发现一个项目中的bug,你是否想知道它是何时出现在你的代码中?
如果你对上面任何一个问题回答“Yes”,那么TortoiseSVN就是你所需要的!
SVN简介
SVN是一种版本管理系统,前身是CVS,是开源软件的基石。即使在沟通充分的情况下,多人维护同一份源代码的一定也会出现混乱的情况,版本管理系统就是为了解决这些问题。
SVN中的一些概念
a. repository(源代码库)
源代码统一存放的地方
b. Checkout
当你手上没有源代码的时候,你需要从repository checkout一份
c. Commit
当你已经修改了代码,你就需要Commit到repository
d. Update (更新)
当你已经Checkout了一份源代码,
TortoiseSVN简介
TortoiseSVN
SVN的配置
1,配置好yum,检查subversion安装包
[root@svn ~]# yum list |grep subversion
subversion.i386
subversion-devel.i386
subversion-javahl.i386
subversion-perl.i386
subversion-ruby.i386
[root@svn ~]# yum -y install subversion
测试安装是否成功:
#svnserve
[root@svn ~]# netstat –nat
2,创建svn版本库
[root@svn /]# mkdir -p /data/svndata
[root@svn /]# svnadmin create /data/svndata/winne
3,svnserve配置文件概述
svnserve.conf
passwd
authz
conf/svnserve.conf
配置项分为以下5项:
anon-access
auth-access
password-db
authz-db
realm
anon-access = read时
客户端Checkout(提取)的时候会有Not authorized to open root of edit operation"错误,改为none参数正常,
conf /Passwd
user1 = user1
user2 = user2
conf /authz
[groups]
admin = user1
[/]
user1 = rw
user2 = r
@admin = rw
[svndata:/winne]
user1 = rw
user2 = r
…以此类推
4,启动和停止SVN服务
启动SVN服务:
[root@svn ~]# svnserve -d -r /data/svndata/
-d表示后台运行
-r
停止SVN服务:
ps -aux |grep svn
kill -9
客户端使用
Windows客户端TortoiseSVN的使用
1,
测试选择的是TortoiseSVN 1.6.5客户端
2,客户端的文件更新至服务器(user1操作)
新建一个空目录,右键Checkout
svn://192.168.103.26/winne
输入passwd文件中的授权用户帐号就可以了
在目录中加入一些文件测试.
在版本库浏览器中就可以看到刚才提交的文件了,此时提交的版本为1.
3,客户端在服务器上拉读取数据(user2操作)
User2
填入地址: svn://192.168.103.26/winne
增加一个new.txt的文件,然后Commit
Linux客户端的使用
客户端操作流程一般是:
用户A:
用户B:
1,SVN的安装
yun –y install subversion
2,Linux
()内为命令简写.
checkout (co)
commit (ci)
update (up)
list (ls)
3, checkout (co)
(user1)操作流程
[root@TEST ~]# svn co svn://192.168.103.26/winne
Authentication realm: <svn://192.168.103.26:3690> My First Repository
Password for 'root':
Authentication realm: <svn://192.168.103.26:3690> My First Repository
Username: user1
Password for 'user1':
A
A
A
revision 1.
注:可以使用带用户名和密码的访问:
svn co --username user1 --password user1 svn://192.168.103.26/winne
[root@TEST ~]# ll
drwxr-xr-x 3 root root
drwxr-xr-x 2 root root
[root@TEST ~]# cd winne
[root@TEST winne]# ll
total 2868
-rw-r--r-- 1 root root 1566968 Sep 23 08:53 20070716171657126.pdf
-rw-r--r-- 1 root root
-rw-r--r-- 1 root root 1354300 Sep 23 08:53 svnbook.pdf
4,user1修改文件并提交
[root@TEST winne]# vi testsvn.txt
[root@TEST winne]# svn add testsvn.txt
A
[root@TEST winne]# svn commit
Adding
Transmitting file data .
Committed revision 2.
5,user2回window客户端更新版本
回到Windows的客户端看日志,
6, Windows客户端的版本回滚
选中菜单中的update to verisiom ,选择版本1即可.
7,Linux版本回滚操作:
[root@TEST winne]# svn up -r 1