svn (八) work flow 中的5 解决任何冲突

冲突包括文件内容冲突 和 树冲突
svn resolved 不被建议使用了,建议使用svn resolve
文件内容冲突
  • /root/learn_svn/svn_protocol/svn_project1
[root@YUM svn_project1]# svn status -vu
                 6        6  ?           file
                 6        4  ?           dir1/file2
                 6        4  ?           dir1
                 6        5  ?           dir2/file
                 6        5  ?           dir2
                 6        6 root         .
版本的      6 状态
[root@YUM svn_project1]# cat file 
20200315日 星期日 22:48:48 CST
20200316日 星期一 00:18:53 CST
20200316日 星期一 00:58:43 CST
[root@YUM svn_project1]# echo `date` >> file 
[root@YUM svn_project1]# cat file 
20200315日 星期日 22:48:48 CST
20200316日 星期一 00:18:53 CST
20200316日 星期一 00:58:43 CST
20200316日 星期一 03:17:33 CST
[root@YUM svn_project1]# svn status -vu      
M                6        6  ?           file
                 6        4  ?           dir1/file2
                 6        4  ?           dir1
                 6        5  ?           dir2/file
                 6        5  ?           dir2
                 6        6 root         .
版本的      6 状态
[root@YUM svn_project1]# svn commit -m "conflict 1"
正在发送       file
传输文件数据.
提交后的版本为 7[root@YUM svn_project1]# svn update
版本 7
  • /root/learn_svn/file_protocol/svn_project1
[root@YUM svn_project1]# export SVN_EDITOR=vim
[root@YUM svn_project1]# which vim
/usr/bin/vim
[root@YUM svn_project1]# svn status -vu
        *        6        6  ?           file
                 6        4  ?           dir1/file2
                 6        4  ?           dir1
                 6        5  ?           dir2/file
                 6        5  ?           dir2
                 6        6 root         .
版本的      7 状态
[root@YUM svn_project1]# cat file 
20200315日 星期日 22:48:48 CST
20200316日 星期一 00:18:53 CST
20200316日 星期一 00:58:43 CST
[root@YUM svn_project1]# echo `date` >> file 
[root@YUM svn_project1]# cat file            
20200315日 星期日 22:48:48 CST
20200316日 星期一 00:18:53 CST
20200316日 星期一 00:58:43 CST
20200316日 星期一 03:19:31 CST     
[root@YUM svn_project1]# svn status -vu
M       *        6        6  ?           file
                 6        4  ?           dir1/file2
                 6        4  ?           dir1
                 6        5  ?           dir2/file
                 6        5  ?           dir2
                 6        6 root         .
版本的      7 状态
[root@YUM svn_project1]# svn commit -m "conflict 2"
正在发送       file
svn: 提交失败(细节如下): 
svn: 文件 “/svn_project1/file” 已经过时
[root@YUM svn_project1]# svn update
在 “file” 中发现冲突。
选择: (p) 推迟,(df) 显示全部差异,(e) 编辑,
        (mc) 我的版本, (tc) 他人的版本,
        (s) 显示全部选项: 
        --------------------------------------选择了df
--- .svn/text-base/file.svn-base        一 316 02:57:53 2020
+++ .svn/tmp/file.tmp   一 316 03:21:14 2020
@@ -1,3 +1,8 @@
 20200315日 星期日 22:48:48 CST
 20200316日 星期一 00:18:53 CST
 20200316日 星期一 00:58:43 CST
+<<<<<<< .mine
+20200316日 星期一 03:19:31 CST
+=======
+20200316日 星期一 03:17:33 CST
+>>>>>>> .r7
选择: (p) 推迟,(df) 显示全部差异,(e) 编辑,(r) 已解决,
        (mc) 我的版本, (tc) 他人的版本,
        (s) 显示全部选项:
        --------------------------------------选择了e
会进入vim,让你编辑,文件名为file.tmp
20200315日 星期日 22:48:48 CST
20200316日 星期一 00:18:53 CST
20200316日 星期一 00:58:43 CST
<<<<<<< .mine
20200316日 星期一 03:19:31 CST
=======
20200316日 星期一 03:17:33 CST
>>>>>>> .r7
然后你可以编辑,编辑好的内容如下
20200315日 星期日 22:48:48 CST
20200316日 星期一 00:18:53 CST
20200316日 星期一 00:58:43 CST
20200316日 星期一 03:19:31 CST
然后用:wq退出vim,然后又进入
选择: (p) 推迟,(df) 显示全部差异,(e) 编辑,(r) 已解决,
        (mc) 我的版本, (tc) 他人的版本,
        (s) 显示全部选项:
        --------------------------------------选择了r
然后显示
G    file
更新到版本 7----------------------------------------------------------------注意,此时还没完
[root@YUM svn_project1]# svn status . 
M       file
[root@YUM svn_project1]# svn diff file //这次的diff 已经是在版本7上的diff了,之前的diff 是在版本6上的diff
Index: file
===================================================================
--- file        (版本 7)
+++ file        (工作副本)
@@ -1,4 +1,4 @@
 20200315日 星期日 22:48:48 CST
 20200316日 星期一 00:18:53 CST
 20200316日 星期一 00:58:43 CST
-20200316日 星期一 03:17:33 CST
+20200316日 星期一 03:19:31 CST
[root@YUM svn_project1]# svn commit -m "conflict 2" // 此时再commit一次就可以了
正在发送       file
传输文件数据.
提交后的版本为 8[root@YUM svn_project1]# svn update 
版本 8// 如果存在多个文件,在显示之初只会显示一个文件有冲突, e r 之后,会出现第二个文件冲突,然后在 e r ,直到 r 之后 直接退出,就代表所有的文件已经处理完冲突

树冲突

  • /root/learn_svn/svn_protocol/svn_project1
[root@YUM svn_project1]# svn mv file file2
A         file2
D         file
[root@YUM svn_project1]# svn commit -m "remove dir to dir2"
删除           file
增加           file2

提交后的版本为 15[root@YUM svn_project1]# svn update 
版本 15[root@YUM svn_project1]# cat file2 
20200315日 星期日 22:48:48 CST
20200316日 星期一 00:18:53 CST
20200316日 星期一 00:58:43 CST
20200316日 星期一 03:19:31 CST
20200316日 星期一 03:34:50 CST
20200316日 星期一 03:43:48 CST
20200316日 星期一 03:44:59 CST
20200316日 星期一 03:47:01 CST
20200316日 星期一 03:48:44 CST
  • /root/learn_svn/file_protocol/svn_project1
[root@YUM svn_project1]# echo `date` >> file 
[root@YUM svn_project1]# cat file 
20200315日 星期日 22:48:48 CST
20200316日 星期一 00:18:53 CST
20200316日 星期一 00:58:43 CST
20200316日 星期一 03:19:31 CST
20200316日 星期一 03:34:50 CST
20200316日 星期一 03:43:48 CST
20200316日 星期一 03:44:59 CST
20200316日 星期一 03:47:01 CST
20200316日 星期一 03:48:44 CST
20200316日 星期一 05:37:30 CST
[root@YUM svn_project1]# svn commit -m "add date in file"
正在发送       file
svn: 提交失败(细节如下): 
svn: 文件 “file” 已经过时
svn: 没有找到文件: 事务“15-j”,路径 “/svn_project1/file”
[root@YUM svn_project1]# svn update
   C file
A    file2
更新到版本 15。
冲突概要:
  树冲突:1
[root@YUM svn_project1]# svn status
A  +  C file
      >   本地 编辑,动作 删除,操作 更新
M       file2
[root@YUM svn_project1]# svn diff 
Index: file
===================================================================
--- file        (版本 14)
+++ file        (工作副本)
@@ -7,3 +7,4 @@
 20200316日 星期一 03:44:59 CST
 20200316日 星期一 03:47:01 CST
 20200316日 星期一 03:48:44 CST
+20200316日 星期一 05:37:30 CST
Index: file2
===================================================================
--- file2       (版本 15)
+++ file2       (工作副本)
@@ -7,3 +7,4 @@
 20200316日 星期一 03:44:59 CST
 20200316日 星期一 03:47:01 CST
 20200316日 星期一 03:48:44 CST
+20200316日 星期一 05:37:30 CST
[root@YUM svn_project1]# svn delete --force file
D         file
[root@YUM svn_project1]# svn status         
!     C file
      >   本地 编辑,动作 删除,操作 更新
M       file2
[root@YUM svn_project1]# svn resolve --accept=working file
[root@YUM svn_project1]# svn status
M       file2
[root@YUM svn_project1]# svn commit -m "add date in file2"
正在发送       file2
传输文件数据.
提交后的版本为 16[root@YUM svn_project1]# svn update 
版本 16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值