SVN解决冲突

1.1     解决冲突java

①什么状况下会发生冲突? 服务器


<1>两个开发人员,Harry和Sally,分别从服务器端下载了文件A。人工智能

<2>Harry修改以后,A变成了A’,Sally修改以后,A变成了A’’。spa

<3>Harry先一步提交,使服务器端文件的版本也变成了A’blog

<4>Sally本地的文件A’’已通过时了,此时她已没法提交文件,服务器会要求她先进行一次更新操做。ip

<5>此时Sally的更新操做有两种可能ci

   (1)Sally所作的修改与Harry不是同一个位置,更新操做尝试合并文件成功。开发

   (2)Sally所作的修改与Harry刚好是同一个位置,更新操做尝试合并文件失败,发生冲突。it

<6>发生冲突后,本地工做副本会发生以下变化table

      (1)文件A中的内容发生以下改变

public static void main(String[] args) {

        System.out.println("Edit By Command!");

        System.out.println("Edit By Command!");

<<<<<<< .mine

        System.out.println("Edit By Eclipse!");

=======

        System.out.println("Edit By Command!New Edit");

>>>>>>> .r14

        System.out.println("Edit By Command!");

        System.out.println("Edit By Command!");

    }

其中,

<<<<<<<.mine=======之间是发生冲突时本地副本的内容。

=======>>>>>>> .r14是发生冲突时服务器端的最新内容。

注意:这里r后面的数字是发生冲突时服务器端的版本号,有多是任何整数值,r14只是一个例子。

  同时文件图标变成一个“黄色的!”。

      (2)与冲突文件同目录下新增文件,扩展名为.mine,其内容是发生冲突时本地副本的文件内容。

      (3)与冲突文件同目录下新增文件,扩展名为.r小版本号,例如MyCRM.java.r13,其内容是冲突发生以前,服务器端的文件内容,能够做为解决冲突的参照。

      (4)与冲突文件同目录下新增文件,扩展名为.r大版本号,例如MyCRM.java.r14,其内容是冲突发生时,服务器端的文件内容。

②解决冲突

      (1)在冲突文件上点右键→Team→编辑冲突...→出现以下界面

 

      以对比的方式将本地内容与冲突内容显示出来,其中左侧为本地内容,右侧为冲突内容。其中本地内容是能够修改的。

      (2)根据须要和实际状况将本地内容更正——这个过程极可能须要牵涉冲突的两位开发人员进行必要的沟通——机器与程序目前还不能彻底取代人工智能。更正后文件图标会变成一个“四角形”,同时冲突文件内的<<<<<<<.mine=======以及>>>>>>> .r14等标记都会被去掉

      (3)在冲突文件上点右键→Team→标记为解决

 

      此时.mine文件和.r版本号文件都会被自动删除,冲突文件的图标变为“*”,表示能够提交。

      (4)提交文件,文件图标变为“金色圆柱体”。