- 浏览: 2510049 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (676)
- linux运维 (157)
- php (65)
- mysql (78)
- nginx (27)
- apche (18)
- framework (6)
- windows (9)
- IDE工具 (23)
- struts2 (7)
- java (13)
- 移动互联网 (14)
- memcache redis (23)
- shell基础/命令/语法 (37)
- shell (50)
- puppet (4)
- C (11)
- python (9)
- 产品经理 (27)
- Sphinx (4)
- svn (12)
- 设计构建 (12)
- 项目管理 (44)
- SEO (1)
- 网站架构 (26)
- 审时度势 (42)
- 网络 (14)
- 激发事业[书&视频] (81)
- 其它 (12)
- 摄影 (8)
- android (21)
最新评论
-
zhongmin2012:
原文的书在哪里
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
renzhengzhi:
你好,请问个问题,从master同步数据到slave的时候,s ...
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
ibc789:
你好,看了你的文章,我想请教个问题, 我在用 redis的时候 ...
redis 的两种持久化方式及原理 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器 -
iijjll:
写得非常好
数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器
版本冲突原因:
假设 A 、 B 两个用户都在版本号为 100 的时候,更新了 kingtuns.txt 这个文件, A 用户在修改完成之后提交 kingtuns.txt 到服务器,这个时候提交成功,这个时候 kingtuns.txt 文件的版本号已经变成 101 了。同时 B 用户在版本号为 100 的 kingtuns.txt 文件上作修改,修改完成之后提交到服务器时,由于不是在当前最新的 101 版本上作的修改,所以导致提交失败。
版本冲突现象:
冲突发生时, subversion 会在当前工作目录中保存所有的目标文件版本 [ 上次更新版本、当前获取的版本 ( 即别人提交的版本 ) 、自己更新的版本、目标文件 ] 。
假设文件名是 kingtuns.txt
对应的文件名分别是:
kingtuns.txt.r101
kingtuns.txt.r102
kingtuns.txt.mine
kingtuns.txt 。同时在目标文件中标记来自不同用户的更改。
版本冲突解决:
场景:
1 、现在 A 、 B 两个用户都更新 kingtuns.txt 文件到本地。
2 、文档中原始文件内容如下:
3 、 A 用户修改文件,添加内容“ A 用户修改内容”完成后提交到服务器
4 、 B 用户修改文件,添加内容“ B 用户修改内容”完成后提交到服务器
B 用户提交更新至服务器时提示如下:
B 用户将文件提交至服务器时,提示版本过期:首先应该从版本库更新版本,然后去解决冲突,冲突解决后要执行 svn resolved (解决),然后在签入到版本库。在冲突解决之后,需要使用 svn resolved (解决)来告诉 subversion 冲突解决,这样才能提交更新。
解决冲突有三种选择:
A 、放弃自己的更新,使用 svn revert (回滚),然后提交。在这种方式下不需要使用 svn resolved (解决)
B 、放弃自己的更新,使用别人的更新。使用最新获取的版本覆盖目标文件,执行 resolved filename 并提交 ( 选择文件 — 右键 — 解决 ) 。
C 、手动解决:冲突发生时,通过和其他用户沟通之后,手动更新目标文件。然后执行 resolved filename 来解除冲突,最后提交。
解决步骤如下:
1、 在当前目录下执行“ update ”(更新)操作
2、 在冲突的文件上(选中文件 -- 右键菜单 —TortoiseSVN—Edit conflicts (解决冲突)),出现如下窗口
Theirs 窗口为服务器上当前最新版本
Mine 窗口为本地修改后的版本
Merged 窗口为合并后的文件内容显示
3、 如果要使用服务器版本,在 Theirs 窗口选中差异内容,右键,选择 Use this text block (使用这段文本块)。
同理如果要使用本地版本,在协商后,在 Mine 窗口右键,选择 Use this text block (使用这段文本块)。
4、 修改完成后,保存 kingtuns.txt 文件内容。
5、 在 B 用户的冲突目录下,选中文件 -- 右键菜单 —TortoiseSVN—Resolved (解决)。会列出冲突的文件列表,如果确认已经解决,点 OK 。
6、 冲突解决
7 、提交解决冲突后的文件。
如何降低冲突解决的复杂度:
1 、当文档编辑完成后,尽快提交,频繁的提交 / 更新可以降低在冲突发生的概率,以及发生时解决冲突的复杂度。
2 、在提交时,写上明确的 message ,方便以后查找用户更新的原因,毕竟随着时间的推移,对当初更新的原因有可能会遗忘
3 、养成良好的使用习惯,使用 SVN 时每次都是先提交,后更新。每天早上打开后,首先要从版本库获取最新版本。每天下班前必须将已经编辑过的文档都提交到版本库。
评论
[/img]引用[u][i][b][/b][/i][/u]
[/img]引用[u][i][b][/b][/i][/u]
[/img]引用[u][i][b][/b][/i][/u]
发表评论
-
svnchanged_export.py 导出svn版本之间的变更文件
2012-06-18 17:03 3810===================== ... -
svn手册摘录
2012-06-13 15:15 1676一、版本库访问URL 模式 访问方法 file:/// ... -
【汇总】svn
2011-12-22 13:13 1470========================回 ... -
shell之同步svn代码到os
2011-11-23 11:37 3198#!/bin/sh #SVN路径 svn_path_ ... -
批量删除版本库中的.svn文件夹(win客户端)
2011-10-17 15:40 1806安装:建立一个文本文件,随意起个名字,例如aaa.reg ... -
从SVN导出指定版本号之间修改的文件
2011-08-21 14:15 3582当一个网站项目进入运营维护阶段以后,不会再频繁地更新全部源文件 ... -
TortoiseSVN 汉化版安装
2009-10-31 10:36 4832http://tortoisesvn.net/download ... -
[已测试]centos安装配置svn,并更新源代码
2009-09-10 13:28 3741安装完lamp以后,通过查看/etc/passwd /etc ... -
svn利用TortoiseSVN忽略文件或文件夹(目录)
2009-08-07 11:01 3070如果文件已经存在于版本库,你需要做以下步骤: To ... -
ubuntu安装配置svn,并更新源代码
2009-07-23 22:03 5806=============================== ... -
windows下搭建svn (一)
2009-06-15 21:37 17251 svn 下载页面:http://subversion.ti ...
相关推荐
SVN版本冲突解决详解
项目开发代码管理,svn版本冲突解决,有效提高团队效率。
SVN解决冲突(合并别人的修改) 详细讲解了svn冲突合并的方法 非常适合初学者学习
svn版本冲突是怎么解决(最重要).txt
SVN冲突处理解决方法 1.SVN冲突产生的原因 2. 解决冲突的方式 3.注意事项 不同版本的同一个位置出现了不同的东西
Tortoise SVN 版本冲突处理介绍
用例子简述svn版本库布局,更好的管理版本控制
SVN版本控制安装详解(内含客户端,word 文档详解)
svn的合并和冲突的解决一直以来困扰着很多人,该文档以图解的形式举例介绍svn的merge与冲突。
EclipseSVN冲突详细解决方案.docx
Subversion(简称SVN)是近年来崛起的版本管理软件系统,是CVS的接班人。全面的svn使用手册,通俗易懂。
怎样解决svn冲突呢,来看一下吧,不错的,好不容易搜到的...
svn 解决冲突 confict svn 解决冲突 confict svn 解决冲突 confict
SVN冲突解决方案.docx
SVN版本控制原理SVN版本控制原SVN版本控制SVN版本控制原理原理理SVN版本控制原理
在前面文章有提到,但是博客文章不能粘贴资源,所以在这里添加
linux centos操作系统下的SVN服务器安装和配置详细介绍
最新SVN版本控制