`

[转]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在linux下的使用(svn命令)

    svn 在 Linux 下的使用(svn 命令) svn 是一个版本控制系统,允许多人合作开发项目,追踪文件的变化历史记录,避免文件冲突和丢失。下面介绍 svn 在 Linux 下的使用和常用命令。 1. 将文件 checkout 到本地目录 ...

    svn 合并、冲突及常用功能详解

    完成后,使用`svn resolved`命令标记冲突已解决。 4. **冲突工具**: SVN提供了一些冲突解决工具,如`svn resolve --accept`选项,可快速选择接受某个版本的冲突解决方案。 **图解示例** 文档中的`svn merge功能...

    Linux下SVN命令使用大全

    ### Linux下SVN命令使用大全 #### 一、概述 Subversion (SVN) 是一款开源版本控制系统,广泛应用于软件开发和其他需要版本控制管理的领域。在Linux环境下使用SVN,能够有效地帮助开发者管理和协作代码。本文档将...

    SVN打基线常用命令使用介绍

    在了解了打基线的基本概念之后,接下来详细介绍一些常用的SVN命令,这些命令可以帮助我们在SVN中有效地进行打基线操作。 ##### 1. 创建标签(tag) 创建标签是一种非常简单的方式,可以用来记录项目的一个快照。...

    SVN解决冲突(合并别人的修改)

    如果文件已经被标记为已解决,但仍然存在冲突,你可以使用svn revert命令撤销所有冲突解决工作,回到冲突未解决的状态,然后重新开始冲突解决过程。 最后,总结一下解决SVN冲突的步骤: - 预测潜在冲突,使用svn ...

    SVN 命令使用手册

    ### SVN命令使用手册知识点详解 #### 一、SVN简介 Subversion (SVN) 是一种广泛使用的开源版本控制系统,用于软件开发和其他需要版本控制的领域。它支持多个用户对同一组文件进行编辑,同时还能追踪每一次修改的...

    ubuntu SVN命令大全

    - 当文件出现冲突时,通过手动解决后使用此命令来通知 SVN 该文件已解决冲突。 #### 十八、Cat (显示文件内容) **命令格式**: ``` svn cat [文件] [@版本号] ``` **示例**: ``` svn cat -r PREV filename > ...

    SVN解决文件冲突conflict的方法_类文件冲突

    然后,使用`svn resolved file1.txt`命令告诉SVN冲突已解决。 - 最后,用户A或B可以再次提交更改,确保在提交前使用`svn diff file1.txt`检查文件是否正确合并。如果一切正常,可以执行`svn commit -m "Resolved ...

    linux下svn命令大全.txt

    下面将详细解析从给定文件中提取的关键SVN命令及其功能,这将帮助你在Linux系统中更有效地管理和操作SVN仓库。 ### 1. 检出 (Checkout) `svn checkout path path` 命令用于从SVN仓库检出项目到本地目录。例如,`...

    开源版本控制SVN 树冲突、目录丢失问题及解决机制探讨

    4. 解决冲突后,使用`svn resolved`标记冲突已解决。 5. 最后,提交解决后的更改到版本库。 在处理目录丢失问题时,可以通过以下步骤恢复: 1. 执行`svn checkout`重新检出丢失的目录。 2. 如果目录下的子文件也...

    SVN分支合并到主干 冲突处理

    3. **放弃合并**:如果发现冲突无法解决,可以使用`svn revert`命令取消合并,然后再尝试其他策略。 ### 冲突预防策略 1. **频繁合并**:避免长时间不合并,尽量保持分支和主干的同步,可以减少合并时的冲突。 2. ...

    SVN简介及使用、以及对冲突的避免和解决

    `svn status -u`命令可以检查潜在的冲突,而`svn update`会显示冲突信息,如U表示文件已更新,G表示已合并更新,C表示存在冲突。 解决冲突时,Subversion会在冲突文件上标记,并提供`.mine`、`.rOLDREV`和`.rNEWREV...

    SVN常用命令(使用频率最高的)

    以下是一些使用频率最高的SVN命令,确保你能快速上手并有效地利用SVN进行项目管理。 1. **初始化仓库(Create Repository)** 使用`svnadmin create`命令创建一个新的SVN仓库。例如: ``` svnadmin create /path...

    svn常用命令介绍

    在使用SVN进行项目管理时,掌握一些常用的SVN命令是非常必要的。以下是一些核心的SVN命令及其详细解释: 1. **初始化仓库(svnadmin create)**: 在一个新的目录下创建一个SVN仓库,这将生成一个包含所有必需文件...

    svn 回退/更新/取消至某个版本命令

    #### 二、SVN命令详解 ##### 1. 取消Add/Delete 当用户在SVN仓库中对文件或目录进行了添加(add)或删除(delete)操作但还未提交(commit)时,可以通过以下命令取消这些操作: - **取消文件**:`svn revert 文件名` -...

    linux下的 svn命令

    通过svn命令,用户可以实现对代码库的多种操作,包括检出、添加、提交、更新、查看状态、删除、查看日志、比较差异、合并版本等。以下是对这些常见svn命令的详细解释: 1. **检出(Checkout)**: `svn checkout` 或 `...

    SVN常用命令集合及简单用法

    SVN常用命令集合及简单用法 SVN(Subversion)是一种版本控制系统,用于管理代码、文档、图片等文件的版本变更。下面是常用的 SVN 命令集合及简单...这些命令将帮助您更好地使用 SVN,提高工作效率和合作开发的效果。

    SVN版本冲突解决详解

    解决版本冲突需要使用 SVN resolved 命令来告诉 Subversion 冲突已经解决。解决步骤如下: 1. 在当前目录下执行“update”(更新)操作 2. 在冲突的文件上(选中文件--右键菜单—TortoiseSVN—Edit conflicts(解决...

    linix fedora svn命令大全

    以下是对标题和描述中涉及的svn命令的详细解释: 1. **Checkout(检出)** `svn checkout` 或 `svn co` 用于从远程仓库下载项目到本地工作目录,例如: ``` svn checkout svn://192.168.1.1/pro/domain ``` 2....

Global site tag (gtag.js) - Google Analytics