一大早踩着点,开发甲、乙到了办公室。他们都更新(svn update )了最新的代码到本地,开始了一天的工作。他们今天都会修复几个bug。

在修复的过程中,很可能不同的人修复了同一个文件。甚至修改了同一行。那么我们开发如何合并修改呢?

下面我们来实操,看看怎么合并修改。

为了让同学们一人分饰两角,能模拟出2人版本冲突的情况:

请创建2个文件夹demo1、demo2,分别checkout出最新的代码。

demo1就可以模拟甲的环境进行操作。

demo2就可以模拟乙的环境进行操作。

1.甲、乙修改的同一个文件的不同行

当甲乙修改的不是同一个代码,那么大家井水不犯河水,可以正常修改提交。

但是,当他们都修改了同一个文件,

甲先提交了修改文件到版本库。他的操作可以顺利完成。

之后乙也完成了修改,尝试提交代码到版本库时,svn会提示乙先进行更新,更新后,甲的代码会更新到本地,之后乙就可以正常提交了。

下面我们来看看乙是怎么操作的吧!

svn会提示乙先进行更新

更新之后,乙如果去查看001.txt,发现文件内容已经将甲的修改合并过来了

这是,在弹出的提交窗口,输入日志后,点击【ok】按钮就可以成功将修改提交到版本库了。

2.甲、乙修改了文件的同一行

有时,甲和乙会同时修改了某一行。甲提交后,乙提交时就会有冲突,需要解决冲突。

我们来看看乙是如何解决冲突,成功提交的吧!

如下所示,乙提交时,输入提交日志,点击【ok】按钮

系统提示提交失败,需要先更新

在下面的提示中,我们选择 “Update”

update之后,会多出和冲突文件同名的三个文件,分别表示乙刚才要提交的文件、乙修改之前的版本、版本库最新的版本

进入如下窗口,双击冲突文件,可以进入合并窗口,合并窗口可以在冲突行上选择要保留甲的、还是使用乙的、还是两者兼用

合并窗口分为三个区域,左上角 显示 甲和父版本的差异。

右上角 显示 乙和父版本之间的差异

下方 合并区域显示 合并结果。

红色表示冲突航

橙色表示父版本的信息

白色表示相同的行

在下方的合并窗口中,在红色冲突行上点击右键擦弹 “use the block from “mine””

所有冲突解决后,点击按钮“mark as resolved”,关闭合并窗口。

再次进入到提交窗口,点击【ok】

此时成功提交了

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐