`

[转]svn命令使用(冲突)

 
阅读更多

转自:http://blog.csdn.net/windone0109/article/details/4857044

 

版本冲突原因:

假设AB两个用户都在版本号为100的时候,更新了kingtuns.txt这个文件,A用户在修改完成之后提交kingtuns.txt到服务器,这个时候提交成功,这个时候kingtuns.txt文件的版本号已经变成101了。同时B用户在版本号为100kingtuns.txt文件上作修改,修改完成之后提交到服务器时,由于不是在当前最新的101版本上作的修改,所以导致提交失败。

 

版本冲突现象:

冲突发生时,subversion会在当前工作目录中保存所有的目标文件版本[上次更新版本、当前获取的版本(即别人提交的版本)、自己更新的版本、目标文件]

假设文件名是kingtuns.txt

对应的文件名分别是:

kingtuns.txt.r101

kingtuns.txt.r102

kingtuns.txt.mine

kingtuns.txt。同时在目标文件中标记来自不同用户的更改。

 

版本冲突解决:

场景:

1、现在AB两个用户都更新kingtuns.txt文件到本地。

1

 

 

2、文档中原始文件内容如下:

2

 

 

3A用户修改文件,添加内容“A用户修改内容”完成后提交到服务器

3

4

 

 

 

4B用户修改文件,添加内容“B用户修改内容”完成后提交到服务器

5

 

B用户提交更新至服务器时提示如下:

6

 

B用户将文件提交至服务器时,提示版本过期:首先应该从版本库更新版本,然后去解决冲突,冲突解决后要执行svn resolved(解决),然后在签入到版本库。在冲突解决之后,需要使用svn resolved(解决)来告诉subversion冲突解决,这样才能提交更新。

 

解决冲突有三种选择:

 

A、放弃自己的更新,使用svn revert(回滚),然后提交。在这种方式下不需要使用svn resolved(解决)

 

B、放弃自己的更新,使用别人的更新。使用最新获取的版本覆盖目标文件,执行resolved filename并提交(选择文件右键解决)

 

C、手动解决:冲突发生时,通过和其他用户沟通之后,手动更新目标文件。然后执行resolved filename来解除冲突,最后提交。

 

解决步骤如下:

1、  在当前目录下执行“update”(更新)操作

 

 7

2、  在冲突的文件上(选中文件--右键菜单—TortoiseSVN—Edit conflicts(解决冲突)),出现如下窗口

 

Theirs窗口为服务器上当前最新版本

Mine窗口为本地修改后的版本

Merged窗口为合并后的文件内容显示

     8

3、  如果要使用服务器版本,在Theirs窗口选中差异内容,右键,选择Use this text block(使用这段文本块)。

同理如果要使用本地版本,在协商后,在Mine窗口右键,选择Use this text block(使用这段文本块)。

 

    9

4、  修改完成后,保存kingtuns.txt文件内容。

 

5、  B用户的冲突目录下,选中文件--右键菜单—TortoiseSVN—Resolved(解决)。会列出冲突的文件列表,如果确认已经解决,点OK

10

 

6、  冲突解决

 

      11

7、提交解决冲突后的文件。

 

 12

 

 

如何降低冲突解决的复杂度:

1、当文档编辑完成后,尽快提交,频繁的提交/更新可以降低在冲突发生的概率,以及发生时解决冲突的复杂度。

2、在提交时,写上明确的message,方便以后查找用户更新的原因,毕竟随着时间的推移,对当初更新的原因有可能会遗忘

3、养成良好的使用习惯,使用SVN时每次都是先提交,后更新。每天早上打开后,首先要从版本库获取最新版本。每天下班前必须将已经编辑过的文档都提交到版本库。

分享到:
评论

相关推荐

    SVN使用手册中文版快速入门

    下注:使用svn revert 提交你得修改 检验历史 svn log svn diff 比较本地修改 比较工作拷贝和版本库 比较版本库与版本库 svn cat svn list 关于历史的最后一个词 其他有用的命令 svn cleanup svn import 摘要 4. ...

    SVN使用手册中文版.chm

    为什么svn revert命令要有一个明确的目标?为什么缺省不是递归的?它的行为方式与大多数其它子命令不同。 当我启动Apache,mod_dav_svn抱怨说发现一个“bad database version”,它发现了db-3.X而不是db-4.X。 我...

    Python处理svn状态脚本

    使用python调用svn命令行,完成对svn工作目录的自动清理,自动完成解决冲突和恢复版本。使用subprocess,适用于windows和mac os。 使用方法:python jtcleansvn.py workingspacepath

    使用SVN进行版本控制

    文档目录 1. SVN是什么? 2. 为甚使用SVN? 3. SVN的基本概念 4. SVN文件共享问题 5. SVN常用客户端命令 6. SVN冲突解决途径 7. SVN的使用原则 8. 参考资料 9. 致谢

    smartsvn for mac

    SmartSVN是一个功能多且易于使用的Subversion 客户端,可运行在Linux、Mac OS X、OS/2、Unix以及Windows。...使用者无需安装额外的工具来处理SVN working copies,SmartSVN用起来类似命令列SVN client或档案比对工具

    SmartSVN含注册机

    Syntevo.SmartSVN.Enterprise.v6.0.1.Incl.KeyfileMaker-DVT.rar SmartSVN是一个功能完备的Subversion客户端,可以运行在Linux, Mac OS X, OS/2, Unix... -支持所有的svn命令。  -支持标签操作。  -智能化程度高。

    smartsvn-windows-setup-11_0_4.zip

    SmartSVN是一个功能多且易于使用的Subversion 客户端,可运行在Linux、Mac OS X、OS/2、Unix以及Windows。...使用者无需安装额外的工具来处理SVN working copies,SmartSVN用起来类似命令列SVN client或档案比对工具

    smartsvn安装包

    SmartSVN是一个功能多且易于使用的Subversion 客户端,可运行在Linux、Mac OS X、OS/2、Unix以及Windows。...使用者无需安装额外的工具来处理SVN working copies,SmartSVN用起来类似命令列SVN client或档案比对工具

    详解Linux上svn命令行批量操作

     我们直接安装svn就好,然后文件修改之后使用命令 svn status  查看文件的跟踪信息,这里会使用一些代号,对应的大概是 “ ” 无修改 “A” 新增 “C” 冲突 “D” 删除 “G” 合并 “I” 忽略 “M” 改变 “R”...

    Smartsvn9.2.2 MAC破解版

    除了基本的Subversion命令如checkout, update, commit, merge以外,它也支持标签和分支处理(无需处理URL),有内置的比较和冲突解决工具,无需安装其他工具就可以处理SVN工作拷贝。 其最大的优势就是操作非常简单和...

    Smartsvn8 part1

    除了基本的Subversion命令如checkout, update, commit, merge以外,它也支持标签和分支处理(无需处理URL),有内置的比较和冲突解决工具,无需安装其他工具就可以处理SVN工作拷贝。 其最大的优势就是操作非常简单和...

    SVN操作手册中文版网页格式

    3.6.6. 使用 svn+ssh 认证 3.6.7. svnserve 基于路径的授权 3.7. 基于 Apache 的服务器 3.7.1. 简介 3.7.2. 安装 Apache 3.7.3. 安装 Subversion 3.7.4. 配置 3.7.5. 多版本库 3.7.6. 路径为基础的授权 ...

    smartsvn6.6.9

    使用者无需安装额外的工具来处理SVN working copies,SmartSVN用起来类似命令列SVN client或档案比对工具 版本管理是软件配置管理的基础,它管理并保护开发者的软件资源。它的主要功能有:(1) 集中管理档案,安全...

    使用Subversion进行版本控制(针对 Subversion 1.4)

    脚注:使用svn revert 提交你的修改 检验历史 产生历史修改列表 检查历史修改的详情 比较本地修改 比较工作拷贝和版本库 比较版本库与版本库 浏览版本库 svn cat svn list 获得旧的版本库快照 有时你只需要清理 ...

    SmartSVN-reference

    SmartSVN是一个功能多且易于使用的Subversion 客户端.除了标准的SVN指令(例如checkout、update、commit、...使用者无需安装额外的工具来处理SVN working copies,SmartSVN用起来类似命令列SVN client或档案比对工具

    SVN入门文档教程汇总

    教程名称:SVN入门文档教程汇总 ... 【】03_svn_03svn的冲突问题(没有讲好) 【】04_svn_04svn的权限设置 【】05_svn_05和eclipse整合 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    Smartsvn8 part2

    除了基本的Subversion命令如checkout, update, commit, merge以外,它也支持标签和分支处理(无需处理URL),有内置的比较和冲突解决工具,无需安装其他工具就可以处理SVN工作拷贝。 其最大的优势就是操作非常简单和...

    SVN培训教程.pptx

    如果选中了这个复选框,更新的时候要使用命令"更新至版本Update to Revision..." SVN培训教程全文共43页,当前为第11页。 Update(更新) 作用:更新工作副本使其成为版本库中的最新版本 SVN将显示出更新的文件和更新...

    smartsvn11

    smartsvn11 mac版本,除了基本的Subversion命令如checkout, update, commit, merge以外,它也支持标签和分支处理(无需处理URL),有内置的比较和冲突解决工具,无需安装其他工具就可以处理SVN工作拷贝。

    Smartsvn For Mac_v11.0.4

    除了基本的Subversion命令如checkout, update, commit, merge以外,它也支持标签和分支处理(无需处理URL),有内置的比较和冲突解决工具,无需安装其他工具就可以处理SVN工作拷贝。 其最大的优势就是操作非常简单和...

Global site tag (gtag.js) - Google Analytics