不是每个开发者都在正确使用SVN解决代码版本冲突

2019-07-19 10:37:05 浏览数 (1)

不知道从什么时候开始,我把解决svn代码冲突的问题加到初、中级面试者的题目中,主要考察编写代码量的多少、协作编写代码、SVN使用的规范等问题。只要你写的代码够多,经常与别人协作完成功能,碰到代码冲突在所难免。

很多人担心代码会冲突,担心代码会丢失,这些都是版本管理工具没有使用好的外在表现。

先不要往下看解决方案,如果当事人是你,你怎么解决这个问题处理呢?

方案一
  1. 把自己的代码复制出来
  2. 将多余的几个不规范(.mine,.r7434,*.r7436诸如此类)的文件删除
  3. 把当前文档还原到最新版本
  4. (使用Beyond Compare比较一下)将自己的代码添加进来后保存,commit
  5. 完成。

缺点:

代码语言:javascript复制
1,完全没有使用svn/git工具的特性来解决冲突
2,单文件代码量大、改动处较多时,操作不方便
3,项目代码量大、冲突多时,操作不方便
4,容易丢失代码
方案二
  1. 直接打开冲突文件,找到其中形如....mine,=====>等类似的标记;或使用工具的与资源库同步功能,双向对比代码。
  2. 需要干系人参与的,找到干系人,确保功能的唯一性;不需要干系人参与的,直接将冲突代码清除保留一份,或者删除冲突的标记,直接将代码合并。
  3. 确保文件中没有冲突的标记后,保存文件,此时还不能直接commit文件,在svn看来此文件依旧处于冲突状态(多出的三个文件还存在)
  4. 打开svn相应菜单或命令,标记该文件冲突解决,标记后你发现多出的三个文件(.mine,.r7434,*.r7436诸如此类)自动消失,文件处于被修改状态
  5. commit,完成。

你是采用方案一?还是方案二?

顺带提一句,大家很有必要掌握下版本库下不同状态的外在表现形式

svn

0 人点赞