版本控制之svn上的冲突的解决

1.
1. 1.1解决冲突

①什么情况下会发生冲突

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

<2>Harry修改之后,A变成了A',Sally修改之后,A变成了A''。

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

<4>Sally本地的文件A''已经过时了,此时她已无法提交文件,服务器会要求她先进行一次更新操作。

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

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

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

<6>发生冲突后,本地工作副本会发生如下变化

(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!"); } |
| — |

    其中,从&lt;&lt;&lt;&lt;&lt;&lt;&lt; .mine到=======之间是发生冲突时本地副本的内容。从=======到&gt;&gt;&gt;&gt;&gt;&gt;&gt; .r14是发生冲突时服务器端的最新内容。注意这里r后面的数字是发生冲突时服务器端的版本号,有可能是任何整数值,r14只是一个例子。

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

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

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

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

②解决冲突

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

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值