使用Subversion协同工作
问题
1)沿用练习一,通过svn工具,对subversion版本库进行多人协同工作测试,要求如下:
2)使用subversion管理公司的shell脚本
3)脚本包括/etc/rc.d/init.d/目录下的启动脚本
4)以及任何用户自己编写的脚本
5)创建脚本版本库
6)该版本库支持多个账户同时协作编辑脚本
7)测试演示多人协作编辑的具体操作
8)手动解决版本冲突问题
9)备份版本库数据
方案
使用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
-
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 .
-
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: § 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.