服务器上的svn hook 突然不管用了,手动update的时候出现了冲突,查阅资料后知道这是树冲突:
root@futongdai:~# cd /home/wwwroot/ root@futongdai:/home/wwwroot/# svn up 正在升级 '.': 已跳过 'Admin/*****.php' -- 节点处于冲突状态 版本 1312。 冲突概要: 跳过的路径:1
解决方法:
step ①
root@futongdai:/home/wwwroot/newcrm.ofim.com# svn resolve --accept working Admin/*****.php
“Admin/*****.php”的冲突状态已解决
step ②
root@futongdai:/home/wwwroot/newcrm.ofim.com# svn revert Admin/*****.php
已恢复“Admin/*****.php”
除此之外还有一种冲突:
当有多个人使用同一分支的时候,在我 update 到 commit 之间,只要有人commit 同一份文件,那么我的 commit 就会出现冲突,提示 提交不成功。
$ svn up
在 “a.txt” 中发现冲突。
选择: (p) 推迟,(df) 显示全部差异,(e) 编辑,
(mc) 我的版本, (tc) 他人的版本,
(s) 显示全部选项:
一般选择推迟(自信的话,当然可以选择mc),然后与其他开发人员协商解决
推迟之后,可以发现文件夹中存在的文件为
- test.php.mine test.php.r123 test.php test.php.r107 [html] vi
- .mine是我的修改,尚未update前的 test.php。
- .r107 是别人提交前的版本,尚未导致冲突的版本。
- .r123是别人提交后的版本,导致冲突的版本。
- test.php 包含了我和现有版本的冲突内容
在 test.php 文件中可以看到,多了一些以<<<<<<<、=======、>>>>>>>分隔符号
- <<<<<<<.mine和=======之间是我刚刚修改的内容;
- =======与>>>>>>>.r123之间是别人修改的内容
修改内容之后,执行命令
- svn resolve –-accept working test.php
此时会删除.mine 、 .r 等文件
然后再重新提交文件
- svn ci -m ’’