- 浏览: 2542478 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (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 3853===================== ... -
svn手册摘录
2012-06-13 15:15 1712一、版本库访问URL 模式 访问方法 file:/// ... -
【汇总】svn
2011-12-22 13:13 1522========================回 ... -
shell之同步svn代码到os
2011-11-23 11:37 3258#!/bin/sh #SVN路径 svn_path_ ... -
批量删除版本库中的.svn文件夹(win客户端)
2011-10-17 15:40 1845安装:建立一个文本文件,随意起个名字,例如aaa.reg ... -
从SVN导出指定版本号之间修改的文件
2011-08-21 14:15 3623当一个网站项目进入运营维护阶段以后,不会再频繁地更新全部源文件 ... -
TortoiseSVN 汉化版安装
2009-10-31 10:36 4883http://tortoisesvn.net/download ... -
[已测试]centos安装配置svn,并更新源代码
2009-09-10 13:28 3776安装完lamp以后,通过查看/etc/passwd /etc ... -
svn利用TortoiseSVN忽略文件或文件夹(目录)
2009-08-07 11:01 3175如果文件已经存在于版本库,你需要做以下步骤: To ... -
ubuntu安装配置svn,并更新源代码
2009-07-23 22:03 5866=============================== ... -
windows下搭建svn (一)
2009-06-15 21:37 17601 svn 下载页面:http://subversion.ti ...
相关推荐
**svn冲突** 1. **冲突产生**: 当两个或更多用户修改了同一份文件的同一部分时,svn无法确定应保留哪个更改,就会产生冲突。 2. **冲突标记**: 有冲突的文件会被svn添加特殊的冲突标记,例如`, `=======`, `>>>>>>...
【SVN客户端使用详解】 SVN(Subversion)是一种版本控制系统,用于管理多个用户对同一份文件或项目代码的修改。在开发团队中,SVN客户端是与SVN服务器交互的主要工具,它允许用户进行文件的更新、提交、查看历史...
"手把手图解,详解Jenkins,svn,maven项目持续集成SHELL脚本"这个标题表明了本文将通过图形化的解释,详细介绍如何使用Jenkins、Subversion(svn)和Maven这三个工具来实现软件项目的持续集成,并涉及到使用SHELL脚...
【MyEclipse下安装和使用SVN服务器端、客户端详解】 在软件开发过程中,版本控制系统是必不可少的工具,其中SVN(Subversion)是广泛使用的版本管理软件。本教程将详细讲解如何在MyEclipse环境下配置和使用SVN...
《Subversion、Apache与SVN服务器配置详解》 在IT领域,版本控制系统对于团队协作至关重要,Subversion(简称SVN)就是这样一款强大的工具。配合Apache服务器,我们可以搭建一个稳定且高效的SVN服务,实现代码的...
**MyEclipse 集成 SVN 教程详解** 在软件开发过程中,版本控制系统起着至关重要的作用,其中SVN(Subversion)是最为广泛使用的版本控制系统之一。它能够跟踪文件和目录的变化,使得团队成员可以协同工作,同时保持...
- 右键菜单中的SVN选项提供了丰富的功能,如查看日志、解决冲突等。 总之,SVN服务器的搭建和使用主要包括服务器软件的安装、版本库的创建、项目导入、用户管理以及客户端操作。通过这些步骤,你可以有效地管理...
【TortoiseSVN客户端命令详解】 TortoiseSVN是一款强大的Subversion(简称svn)客户端,用于管理和控制...在实际使用中,还有其他高级功能如解决冲突、忽略文件、查看日志等,这些都需要根据具体需求进行学习和实践。
** SVN 服务器搭建和使用详解 ** Subversion(简称SVN)是一款强大的版本控制系统,它允许用户管理和跟踪项目中的文件和目录的变更历史。通过在中央版本库中存储文件,SVN使得团队成员可以在不同地点协作,同时确保...