欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

svn 分支上新增文件合并发生冲突_SVN使用:分支合并及解决冲突详解

发布时间:2023/12/31 编程问答 54 豆豆
生活随笔 收集整理的这篇文章主要介绍了 svn 分支上新增文件合并发生冲突_SVN使用:分支合并及解决冲突详解 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

一、什么是SVN

SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。

二、SVN的下载安装

安装完不要忘记重启电脑

安装完成后,按下鼠标右键,会看到如下界面:

说明SVN已经安装成功了。

三、SVN的常用操作

1、迁出配置库内容(SVN Checkout)

1)新建或进入目录下(比如E盘),右键 →SVN Checkout

2)URL of repository 填写仓库路径即可

3)Revision处,“HEAD revision”是指最新版,也可以指定Revision为任意一个版本。

4)点击“OK”按钮后,在弹出的对话框中输入用户名和密码,验证成功后,项目文件开始从远程服务器下载到本地工作目录中:

5)点击“确定”按钮后,即可获取完成,出现如下下载界面:

6)下载完成后,服务器上所有内容会出现在本地文件夹下

2、更新文件(SVN Update)

1)当从配置库迁出相应目录后,他人对服务器上此目录内容进行了修改,则需要再次获取改动内容到本地目录的过程称为更新。更新可以针对一个文件、几个选中的文件或者整个文件目录。

选中要被更新的文件,右键选择“SVN Update”项,如下:

2)点击“SVN Update”后会弹出窗口显示更新的进度,如下:

若上述框中的有文件出现亮红,说明来自配置库的内容与你本地修改内容合并时出现了冲突

3、提交更新(SVN Commit)

1)本地文件修改后,若是需要更新到服务器上,则需要提交(Commit)最新的更新。

Commit的作用是将本地最新修改的文件同步到SVN服务端,供其他人来参考或者使用,当然使用之前,要先Update一下,来确保是最新的,在修改文件上击右键,出现菜单,选择“SVN Commit…”,如下:

2)然后填写关于本次更新的日志(log message),这是必填项,否则commit会失败,如下:

3)当出现下图所示提示框,则表明刚刚的修改已成功提交,并且当前的SVN版本号加1。

4、增加文件(Add)

1)将需要增加的新文件放入到本地迁出的文件夹TestManger目录的相应位置中,鼠标选中新文件右键选择“Tortoise SVN”的“Add”项,如下图所示:

2)鼠标选中TestManger文件夹右键选择“SVN Commit…”,将新文件上传配置库对应文件夹中(若只上传单个文件,只需点中单个文件上传即可)。

5、检查更新(Check for modifications)

1)此功能可以显示本地对文件所做的修改有哪些还没有提交。不光能看到对文件的修改变化,还包括增加文件或目录,删除文件或目录,移动文件或目录等。当他人提交了哪些文件的改动,也可通过此项来进行查询。

6、删除文件(Delete)

1)选中要被删除的文件,右键选择“Tortoise SVN”的“Delete”项,如下:

2)删除文件后,鼠标选中TestManger文件夹右键选择“SVN Commit…”项进行提交,提交方式同增加文件的提交方式,提交后则将新文件从配置库中删除。

7、撤销更改(Revert)

在修改了某些文件后(文件未上传到配置库),需要返回到修改前的状态,则选中文件夹右键选择“Tortoise SVN”的“Revert...”项进行撤销,本地硬盘上的文件将恢复到修改前的内容,修改的内容将被删除。

8、锁定和解锁(Get lock and Release lock)

当项目需要时可以在本地硬盘中将迁出的内容进行锁定,选中要被锁定的文件右键选择“Tortoise SVN”的“Get lock...”项进行锁定(锁定后他人将无法修改此文件),系统弹出锁定信息框。   当文本文件锁定后,需要通过解锁他人才能继续对文件进行修改。

选中被锁定的文件右键选择“Tortoise SVN”的“Release lock…”项进行解锁。

9、重命名文件(Rename)

修改文件名,选中需要重命名的文件或文件夹,然后右键“Tortoise SVN”的“Rename”,在弹出的对话框中输入新名称,点击“OK”按钮,并将修改文件名后的文件或文件夹“SVN Commit…”提交到SVN服务器上。

10、获取历史文件(Show log)

Show log顾名思义是显示日志的作用,主要是显示该文件或者该目录被执行的操作,是被谁修改了,以及修改的时间和日期。鼠标选中文件夹右键选择“Tortoise SVN”的“Show log”项,系统弹出此路径下的所有文件版本信息,如下:

四、SVN的分支合并及冲突的解决方法

1)svn多分支合并主干方法

分支a合并到本地主干后,本地主干提交代码到svn主干,这时主干版本改变,分支b再提交代码到主干会报冲突,版本不统一,这时的解决办法是:方法1.将主干代码合并到分支b,提交分支b代码到主干即可。方法2.将分支b代码合并到分支a,提交分支a代码到主干即可。总之,要避免主干提交后,主干和另一分支的版本冲突问题即可。

2)svn多分支合并主干冲突:svn Working copy and merge source not ready for reintegration

猜测原因:分支主干版本不一致,导致同一文件被认为是不同文件,所以无法合并(A,B两文件合并时也报此错)

解决方法:

分支合并主干产生冲突问题: svn Working copy and merge source not ready for reintegration

错误信息

Working copy and merge source not ready for reintegrationsvn: 'svn://xxx/TestImpl.java@4530' must be ancestrally related to'svn://xxx/TestImpl.java@4394' Merge completed abnormally. 在使用svn的merge过程中,遇到了N多的麻烦 这次遇到的麻烦的具体表现为: 在主干合并分支中的代码,报错 解决办法为: 假如需要合并的文件名为:TestImpl.java 1.在主干的文件上,右键->Team->Copy->选择分支的路径->OK. 2.到分支的文件夹中找到新copy进来的文件,就是Copy Of TestImpl.java 3.把分支的TestImpl.java改名为TestImpl2.java 4.把Copy Of TestImpl.java改名为TestImpl.java 5.把TestImpl2.java的内容全部覆盖掉TestImpl.java中的内容 6.把TestImpl.java文件名中的TestImpl2全部改为TestImpl 7.删除Copy Of TestImpl.java 8.提交分支的TestImpl.java 9.在主干的TestImpl.java上进行合并.这个时候svn就不报错了,可以正常的合并代码了 这个错误造成的原因,应该是主干与分支的文件,没有关联关系.通过以上步骤,相当于是给主干和分支建立了关联关系,他们有了主次关系,才能进行合并. 可是有一点不明白的是,我分支的TestImpl.java是新建的,并且已经通过merge给了主干,但是改了分支后,再在主干merge的时候,却报出了以上的错误。

3)分支合并主干示例 (附例)

1.主干工程右键选择 merge 合并下一步

2.选中 merge two different trees 下一步

3.from 主干版本路径,版本号选择分支分出去的版本号

to 合并的分支目录,版本号一般最新版本

下一步

4.选择属性,一般直接下一步即可

5.下一步完成。若无冲突直接主干提交代码即可。

若存在冲突解决办法,个人建议使用最后一种解决冲突

Mark as conflicted. I will deal wiht it later. --标记冲突,合并到主干解决冲突

Resolve the conflict by using my version of the file.  --直接用主干的文件覆盖,分支修改无效

Resolve the conflict by using the incoming of the file. --直接用分支修改覆盖主干,以分支为准

Let me edit the file  with conflict markers inserted. --直接编辑冲突,编辑完保存,选择yes保存。

Launch a graphical conflict  resolution editor.--直接比对文件,修改冲突,点击保存。选择yes解决冲突

欢迎来到技术之家,

如需转载,烦请保留本文链接和出处:http://www.jszja.com/contents/35/1502.html

您的支持将是我们前进的动力!如对本篇文章有疑问或建议,请通过本站下方邮箱联系我们,让技术之家每天进步一点点!(●'◡'●)

总结

以上是生活随笔为你收集整理的svn 分支上新增文件合并发生冲突_SVN使用:分支合并及解决冲突详解的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。