1、张三 修改了 people.h 添加了address属性 并提交服务器
2、李四不知道张三修改了people.h 类 然后添加了phone属性 并提交服务器 这时会发生冲突
3、更新服务器代码 会提示冲突位置
4、 conflict 冲突 后面是冲突位置
5、 输入 tc 时 使用服务器代码覆盖本地代码
6、当李四再次打开 people.h 时 会发现 只要address属性 没有自己创建的phone属性
7、如果当时输入的是 mc 就会使用自己的代码 覆盖服务器的代码 最后 张三打开 people.h 时会发现 自己创建address 属性不存在 而有phone 属性
当 使用 mc 时会先 覆盖本地代码 如果想更新服务器的 话 需要重新 commit -m"" 提交
图片举例是 sex 属性
8、当李四又在 people.h 下创建了phone 属性 并提交服务器 然后张三也在 people.h 添加了height 属性 当张三准备提交服务器时 先 更新本地代码 时 会出错 如下:
9、当张三选择 p 时 本地服务器 会出现 如下图:
会多出三个文件 .mine 自己的
.r10 服务器版本10的 没有李四phone 属性的
r11 服务器版本11的 有李四phone 属性的
10、 现在的 people.h 如图
11、说明如下
12、删掉不需要的文件 保留需要的文件 如图
13、用svn 删除 生成的那三个文件
输入 svn resolves people, h 回车
此时的本地仓库 那三个文件 就删除了
14、最后提交服务器
15、查看历史版本 输入 svn log
16、版本回退 输入 svn update -r n (n回退到哪个版本)
只是本地仓库的回退 , 服务器的还是当前版本
- 方法一 本地版本回退后,在本地新建个属性或随便增加或修改一下,然后update 就会产生冲突 ,选择mc 就会将服务器的代码替换
成本地代码 ,然后提交就行了
添加了一个新的属性 然后update
产生冲突 选择mc 然后commit 提交到服务器
- 方法二
merge合并11哪个版本到6哪个版本的 哪个文件person.h
svn merge -r 11:6 person.h
然后提交到服务器 commit - m "回退到版本6"