使用svn客户端工具连接subversion服务器并测试多人协同工作以及如何手动解决冲突问题,账户名称分别为harry和tom,最后使用svnadmin dump指令对版本库进行备份工作。
步骤实现此案例需要按照如下步骤进行。
步骤一:多人协同工作
1)开启两个终端,每个人下载本地副本
[root@srv5 ~]# rm –rf /var/tmp/*
[root@srv5 ~]# cd /var/tmp
[root@srv5 ~]# useradd user1
[root@srv5 ~]# useradd user2
[root@srv5 ~]# su – user1
[root@srv5 ~]# su – user2
[user1@srv5 ~]# svn --username harry --password pass co svn://127.0.0.1/project harry
[user2@srv5 ~]# svn --username toom --password pass co svn://127.0.0.1/project tom
[user1@srv5 ~]# ls harry
[user2@srv5 ~]# ls tom
2) harry和tom修改不同的文件
[user1@srv5 ~]# cd harry
[user1@srv5 harry]# sed -i "3a###harry\'s modify#####" svnserve
[user1@srv5 harry]# svn commit -m "svnserve has modified"
[user2@srv5 ~]# cd tom
[user2@srv5 tom]# sed -i "3a###tom\'s modify#####" sshd
[user2@srv5 tom]# svn commit -m "sshd has modified"
[user1@srv5 harry]# svn update
[user2@srv5 tom]# svn update
3)harry和tom修改相同文件的不同行
[user1@srv5 ~]# cd harry
[user1@srv5 harry]# sed -i "10a###harry\'s modify#####" svnserve
[user1@srv5 harry]# svn commit -m "svnserve has modified"
[user2@srv5 ~]# cd tom
[user2@srv5 tom]# sed -i "20a###tom\'s modify#####" svnserve
[user2@srv5 tom]# svn commit -m "svnserve has modified"
Sending svnserve
Transmitting file data .svn: Commit failed (details follow):
svn: File '/svnserve' is out of date
[user2@srv5 tom]# svn update //提示失败后,先更新再提交即可
[user2@srv5 tom]# svn commit -m "svnserve has modified"
Sending svnserve
Transmitting file data .
4) harry和tom修改相同文件的相同行
[user1@srv5 ~]# cd harry
[user1@srv5 harry]# sed -i "10c###harry\'s modify#####" svnserve
[user1@srv5 harry]# svn commit -m "svnserve has modified"
[user2@srv5 ~]# cd tom
[user2@srv5 tom]# sed -i "10c###tom\'s modify#####" svnserve
[user2@srv5 tom]# svn commit -m "svnserve has modified"
svn commit -m "svnserve has modified"
Sending svnserve
Transmitting file data .svn: Commit failed (details follow):
svn: File '/svnserve' is out of date
[user2@srv5 tom]# svn update //出现冲突,需要解决
Conflict discovered in 'svnserve'.
Select: (p) postpone, (df) diff-full, (e) edit,
(mc) mine-conflict, (tc) theirs-conflict,
(s) show all options:p //选择先标记,随后解决
[user2@srv5 tom]# ls
svnserve svnserve.mine svnserve.r10 svnserve.r9
[user2@srv5 tom]# cp svnserve.mine svnserve
[user2@srv5 tom]# rm svnserve.mine svnserve.r10 svnserve.r9
[user2@srv5 tom]# svn commit -m "svnserve has modified" //解决冲突
步骤二:使用dump指令备份版本库数据
[root@srv5 ~]# svnadmin dump /var/svn/project > project.bak
* Dumped revision 0.
* Dumped revision 1.
* Dumped revision 2.
* Dumped revision 3.
* Dumped revision 4.
* Dumped revision 5.
* Dumped revision 6.
* Dumped revision 7.
* Dumped revision 8.
* Dumped revision 9.
* Dumped revision 10.
* Dumped revision 11.