你该怎样用svn才能避免冲突? (内附逻辑图和详细解释)
2014-05-08 00:19
330 查看
很多年前, 我在某公司实习, 做手机应用开发, 大家更新提交代码的模式如下:
这种模式有一个缺点, 那就是容易冲突。 最开始, 三个程序员user1, user2, user3从配置库拿到了最新的代码, 如果user1改动, 然后提交, 而user2或者user3又在本地改动, 然后提交, 那么就很容易引入冲突(当然不是一定)。 实习那会儿, 几乎每天都有冲突的事情发生, 有时候覆盖了别人的代码, 有时候自己的代码被干掉, 有时候, 配置库上的代码甚至不能工作, 这样不好啊。
我们看看改进措施:
如上图, user1搞两个文件夹, 在这里, 我们用D盘和E盘表示。 首先user1进行步骤1和4, 这样D盘和E盘中就存放了配置库中最新的代码, 然后user1在E盘中进行开发, 写程序, 改呀改。 程序完成了, 就准备提交了。 这个时候, user2或者user3很可能早就更新了配置库, 所以user1在提交代码前, 需要经历步骤2, 把最新代码拉下来, 由于user1并没有改动过D盘中的代码, 所以在拉下来的时候, 永远不会存在冲突。 这个时候D盘中的代码和配置库的代码完全一致,
此时, user1利用BeyondCompare将E盘中的代码合入到D盘中, 这就是步骤3。 然后, user1完成步骤2提交即可, 本次提交代码算是成功了。 接着进行第二次开发, 为了保证E盘是最新代码, 我们仍要进行一下4步骤, 这就是基本的模式。
当然, 如果你做嵌入式开发, 很可能要在服务器上进行编译,那么, 建议按照如下图进行操作, 多的我就不讲了, 以下图结束本文:
好了, 睡觉, 晚安。
这种模式有一个缺点, 那就是容易冲突。 最开始, 三个程序员user1, user2, user3从配置库拿到了最新的代码, 如果user1改动, 然后提交, 而user2或者user3又在本地改动, 然后提交, 那么就很容易引入冲突(当然不是一定)。 实习那会儿, 几乎每天都有冲突的事情发生, 有时候覆盖了别人的代码, 有时候自己的代码被干掉, 有时候, 配置库上的代码甚至不能工作, 这样不好啊。
我们看看改进措施:
如上图, user1搞两个文件夹, 在这里, 我们用D盘和E盘表示。 首先user1进行步骤1和4, 这样D盘和E盘中就存放了配置库中最新的代码, 然后user1在E盘中进行开发, 写程序, 改呀改。 程序完成了, 就准备提交了。 这个时候, user2或者user3很可能早就更新了配置库, 所以user1在提交代码前, 需要经历步骤2, 把最新代码拉下来, 由于user1并没有改动过D盘中的代码, 所以在拉下来的时候, 永远不会存在冲突。 这个时候D盘中的代码和配置库的代码完全一致,
此时, user1利用BeyondCompare将E盘中的代码合入到D盘中, 这就是步骤3。 然后, user1完成步骤2提交即可, 本次提交代码算是成功了。 接着进行第二次开发, 为了保证E盘是最新代码, 我们仍要进行一下4步骤, 这就是基本的模式。
当然, 如果你做嵌入式开发, 很可能要在服务器上进行编译,那么, 建议按照如下图进行操作, 多的我就不讲了, 以下图结束本文:
好了, 睡觉, 晚安。
相关文章推荐
- SVN更新冲突解释
- myeclipse 中 svn 更新 提交 同步资源库 详细解释下他们的功能
- SVN(TortoiseSVN)详细教程(三)--SVN更新及如何解决冲突文件
- myeclipse 中 svn 更新 提交 同步资源库 详细解释下他们的功能
- myeclipse 中 svn 更新 提交 同步资源库 详细解释下他们的功能
- 【转】Eclipse SVN冲突详细解决方案
- SVN 的使用:用两次就会了,很简单.注意总结【①做完自己代码,首先右键项目>team >“与资源库同步”,把队友的代码更新下来(而不是直接提交),②整合完设置"冲突已解决",才能提交】===
- Eclipse SVN冲突详细解决方案
- Eclipse+SVN操作详细解释
- myeclipse 中 svn 更新 提交 同步资源库 详细解释下他们的功能
- Eclipse SVN冲突详细解决方案
- eclipse 中 svn 更新 提交 同步资源库 详细解释下他们的功能
- myeclipse 中 svn 更新 提交 同步资源库 详细解释下他们的功能
- 随机生成验证码和算术逻辑运算的实现以及详细解释
- SVN如何避免冲突
- Eclipse SVN冲突详细解决方案
- Eclipse SVN冲突详细解决方案
- Eclipse SVN冲突详细解决方案
- myeclipse 中 svn 更新 提交 同步资源库 详细解释下他们的功能
- Eclipse+SVN操作详细解释