美文网首页
再也不怕SVN冲突:轻松解决SVN冲突

再也不怕SVN冲突:轻松解决SVN冲突

作者: 唐人不自醉 | 来源:发表于2019-05-09 22:25 被阅读0次

    什么时候容易出现冲突?

    多个人同时修改了同个文件中的同一行代码

    无法进行对比的二进制文件,比如图片等

    如何解决冲突?

    如上图,test_conflict.py文件发生了冲突,并且多出了几个文件,其中.mine是我本地修改了还没提交的版本,.r2文件是上一个版本的文件,.r1是上上个版本的文件。

    发生冲突时不用慌,我们可以轻松解决,选中冲突文件,右键如下操作

    有几个选项我们来看下:

    Edit confilicts:修改冲突,可以对冲突的行进行内容选择,后面我们详细说。

    Mark as resolved:直接标记为已解决,这样会删除.mine、.r1、.r2这些文件,但这只是标记,如果你直接标记为解决,实际上文件还是冲突的,只是状态修复了。

    Resolve conflict using 'theirs':使用他的提交覆盖我的修改来解决冲突。如果你的修改不需要提交,你可以方便的选择这个。

    Resolve conflict using 'mine':使用我本地的版本覆盖他的来解决冲突。如果对方提交的代码没什么用,你可以直接使用这个来解决。

    下面我们详细讲解下Edit confilicts这个选项。

    上图是编辑冲突的界面,如果你的界面显示了很多空白符号,你可以点击顶部的“Show Whitespaces”来隐藏。

    上图的左边.r2展示的是上个版本的变化,右边.mine是我们本地修改的版本,下面是表示合并后的效果。

    左上的第12行下面的绿色等号表示这行被删除了,13、14行前面的+号表示这两行是新增的

    右上的同样也是删除了一行,然后增加了第13行

    下面区域的13,14行显示的是红色背景的问号,表示这两行SVN不知道如何合并代码。

    假设我们需要13行保留我为我本地的修改,14行使用他人提交的。那么选中右上的第13行,右键选择“Use this text block”,表示使用这行的代码;

    选中左上的14行,右键选择“Use this text block”。这样就搞定了,下面区域会显示合并后的效果

    这样下面区域的冲突行就全部解决了,点击顶部工具栏的“Mark as resolved”标记为已解决好冲突,或者直接ctr+s保存也会提示“Mark as resolved”菜单。

    到这冲突就完美解决了。

    这里再解释下其他的一些菜单项:

    Use this text block:使用这块代码为合并后的行

    Use this whole file:使用这整个文件作为合并后的文件

    Use text block from 'mine' before 'theirs':两边的代码都保留,我的代码在前面

    Use text block from 'theirs' before 'mine':两边的代码都保留,我的代码在后面

    最后推荐大家一个非常好用的SVN源码托管站:SVNBucket

    地址: https://segmentfault.com/a/1190000014294501

    相关文章

      网友评论

          本文标题:再也不怕SVN冲突:轻松解决SVN冲突

          本文链接:https://www.haomeiwen.com/subject/bfozoqtx.html