SVN版本冲突解决详解

一、前言 解决版本冲突的命令。在冲突解决之后,需要使用svnresolved来告诉subversion冲突解决,这样才能提交更新。冲突发生时,subversion会在WorkCopy中保存所有的目标文件版本(上次更新版本、当前获取的版本,即别人提交的版本、自己更新的版本、目标文件。 开发人员都知道代码管理工具是开发中一个必不可少的工具,这里也不废话详细介绍了。不管你个人喜欢git还是svn还是其他,但还有一大部分公司在使用svn做代码管理工具。这里详细介绍下SVN提交文件时冲突问题的解决方式。 二、问题现象 假设A、B两个用户,他们分别从svn服务器中检出了test1.txt文件,此时A、B、服务器三个地方的test1.txt的版本都是13(我测试环境的当前svn赋予的版本号)。A、B文件的内容如下图(左A右B): 接下来,B用户添加一句话并提交,内容如下: 此时B用户和服务器的test1.txt的版本都变为14,只有A用户的test1.txt的版本还为13。接下来A用户添加一句“aa”,然后提交 由于A用户是在13版本上做的修改,而服务器已经是14版本了,所以会提交失败: 接下来就是我们要解决的问题了,解决方法分为以下两种方式。第一种方式:提交失败后直接选择revert,省去了解决冲突问题;第二种方式:提交失败后选择更新文件,这时会有冲突问题。详细介绍如下。 三、解决方案 1、第一种方式 A放弃自己修改的内容,进行Revert操作,使其test1.txt成为13版本的最初内容。然后update使其test1.txt成为14版本,再在14版本上修改提交。操作如下图: 2、第二种方式 因为版本过时,提交失败后。A用户直接选择更新操作,结果如下图所见 这里详细说一下产生冲突后的这几个文件,: test1.txt.mine—这个文件是A用户在13版本中做了修改要提交的文件。它的内容是:13版本内容+A用户的修改 test1.txt.r13—-这个文件是A用户最初的13版本的test1.txt。它的内容是:13版本内容 test1.txt.r14—-这个文件时svn服务器中test1.txt的最新版本,这里既是B用户提交后的14版本。它的内容是:13版本内容+B用户的修改 test1.txt——–由于A用户选择了直接更新,此文件就是svn将 最新版本14…

Continue Reading →

Posted in: SVN

SVN中检出(check out)和导出(export)的区别

一、check out跟check in对应,export跟import对应。 二、check out导出获得文件后,导出的文件仍处于SVN版本控制中,与版本库保持关联,比如你可以进行Svn Update或者Svn Commit操作。同时导出文件夹下有一个.svn的隐藏文件夹,存储着一些版本的元数据信息。 三、export 简单导出一个版本的数据,导出的文件脱离SVN版本控制,修改后无进行Update和Commit操作。导出文件夹下没有.svn目录。

Continue Reading →

Posted in: SVN

SVN执行clean up报错的解决方法

svn执行clean up后出现提示:svn cleanup failed–previous operation has not finished; run cleanup if it was interrupted,svn提交遇到恶心的问题,可能是因为上次cleanup中断后,进入死循环了。错误如下: 解决方法:清空svn的队列 1.下载sqlite3.exe。 2.找到你项目的.svn文件(隐藏文件夹),查看是否存在wc.db(数据库文件)。 3.将sqlite3.exe放到.svn的同级目录。 4.启动cmd执行sqlite3 .svn/wc.db…

Continue Reading →

Posted in: SVN

Windows下搭建SVN服务器

一、所需资源 VisualSVN Server:http://www.visualsvn.com/server/download/ 二、操作步骤 1、安装界面,各种下一步 2、安装完成后,打开VisualSVN Server Manager 3、Repositories右键创建SVN资源库 4、User下创建用户,在Repositories的Properties可控制全部用户/指定用户使用 5、右键项目Copy URL to Clipboard,可在本地的TortoiseSVN里面进行项目导入

Continue Reading →

Posted in: SVN