使用Subversion协同工作

    xiaoxiao2025-06-13  36

    问题 沿用上文,通过svn工具,对subversion版本库进行多人协同工作测试,要求如下: 使用subversion管理公司的shell脚本脚本包括/etc/rc.d/init.d/目录下的启动脚本以及任何用户自己编写的脚本创建脚本版本库该版本库支持多个账户同时协作编辑脚本测试演示多人协作编辑的具体操作手动解决版本冲突问题备份版本库数据 方案

    使用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.

    最新回复(0)