[技术讨论]多人并发开发中的问题

这里面涉及到多人并发同时开发一个类的问题,涉及到配置库管理,代码规范化,协调配合开发方面的问题,更多的这里就不展开了,下面来自水木社区中一个问题的对话中已经说明了很多这方面的问题了。


下面的问题虽然提到分布式版本管理,但其实不是分布式版本管理的问题,而是开发过程中的代码管理和开发配合的问题。


发信人: hyperLee (冬瓜de征途~~风雨无阻), 信区: SoftEng
标  题: 请问一个用分布式版本管理软件的一个难题
发信站: 水木社区 (Sat Dec 26 11:43:45 2009), 站内

用分布式版本控制软件,好处是每个人有一个仓库,不需要依赖服务器。但是现在有个问题。

如果两个人同时更改了一个源代码中的同一个函数,这样在merge的时候,会出现冲突,这时候就需要手工处理冲突了。

我想问一下,手工处理这样的冲突,是软件开发的标准环节吗?还是说所有需要手工处理的冲突,都是可以避免的?


--
 
     昨日的一缕英魂,今日的万里长城。


※ 来源:·水木社区 newsmth.net·[FROM: 159.226.230.*]

[本篇全文] [回复文章] [本篇作者:Dieken] [回信给作者] [进入讨论区] [返回顶部]
2
发信人: Dieken (风催草低 - 明月何尝不照人), 信区: SoftEng
标  题: Re: 请问一个用分布式版本管理软件的一个难题
发信站: 水木社区 (Sat Dec 26 11:55:44 2009), 站内

冲突是难免的,尽快、频繁的提交、更新就是了。

【 在 hyperLee (冬瓜de征途~~风雨无阻) 的大作中提到: 】
: 用分布式版本控制软件,好处是每个人有一个仓库,不需要依赖服务器。但是现在有个问题。
: 如果两个人同时更改了一个源代码中的同一个函数,这样在merge的时候,会出现冲突,这时候就需要手工处理冲突了。
: 我想问一下,手工处理这样的冲突,是软件开发的标准环节吗?还是说所有需要手工处理的冲突,都是可以避免的?
: ...................

--

※ 修改:·Dieken 于 Dec 26 11:55:54 2009 修改本文·[FROM: 123.123.2.*]
※ 来源:·水木社区 newsmth.net·[FROM: 123.123.2.*]

[本篇全文] [回复文章] [本篇作者:dinny] [回信给作者] [进入讨论区] [返回顶部]
3
发信人: dinny (mumble is a penguiner), 信区: SoftEng
标  题: Re: 请问一个用分布式版本管理软件的一个难题
发信站: 水木社区 (Sat Dec 26 11:59:27 2009), 站内



【 在 hyperLee (冬瓜de征途~~风雨无阻) 的大作中提到: 】
: 用分布式版本控制软件,好处是每个人有一个仓库,不需要依赖服务器。但是现在有个问题。
: 如果两个人同时更改了一个源代码中的同一个函数,这样在merge的时候,会出现冲突,这时候就需要手工处理冲突了。
: 我想问一下,手工处理这样的冲突,是软件开发的标准环节吗?还是说所有需要手工处理的冲突,都是可以避免的?

merge是版本控制/配置管理中的重要环节,但并不是说它就是软件开发的某个环节,不是一个层面的内容。

两个功能模块共享同一文件(如头文件)并且在某一开发环节都需要改动这个文件,那么出现冲突再所难免。一般来说,在本地改动之前针对repo做个pull,然后对branch进行rebase,可以减少merge时的冲突。

同时经常提交更改,尽量减少每次提交的更改代码量也有用处。

: ...................

--
农夫,山泉,有点田。


※ 修改:·dinny 于 Dec 26 12:02:03 2009 修改本文·[FROM: 61.148.56.*]
※ 来源:·水木社区 newsmth.net·[FROM: 61.148.56.*]

[本篇全文] [回复文章] [本篇作者:qingrun] [回信给作者] [进入讨论区] [返回顶部]
4
发信人: qingrun (青润), 信区: SoftEng
标  题: Re: 请问一个用分布式版本管理软件的一个难题
发信站: 水木社区 (Sat Dec 26 12:46:51 2009), 站内

如果你的团队在开发前定义好每个人的方法属性命名规则,做好区分,开发过程中对方法进行清晰的定义和区分,那么发生冲突的地方就会少很多,另外,即使出现 了冲突需要merge,也可以通过工具直接merge成功——cc就能完全做到这一点(01年使用cc的时候发现的),但是如果你前面的美定义好,那么这 个 merge就可能非常麻烦了。那就可能必须双方都配合修改代码才有可能了。呵呵。

【 在 hyperLee (冬瓜de征途~~风雨无阻) 的大作中提到: 】
: 用分布式版本控制软件,好处是每个人有一个仓库,不需要依赖服务器。但是现在有个问题。
: 如果两个人同时更改了一个源代码中的同一个函数,这样在merge的时候,会出现冲突,这时候就需要手工处理冲突了。
: 我想问一下,手工处理这样的冲突,是软件开发的标准环节吗?还是说所有需要手工处理的冲突,都是可以避免的?

--
我很傻,但是我很能干
软工类技术blog:blog.csdn.net/qingrun,等待100万访问。

※ 来源:·水木社区 http://newsmth.net·[FROM: 162.105.244.22]

[本篇全文] [回复文章] [本篇作者:canper] [回信给作者] [进入讨论区] [返回顶部]
5
发信人: canper (洗衣粉), 信区: SoftEng
标  题: Re: 请问一个用分布式版本管理软件的一个难题
发信站: 水木社区 (Sat Dec 26 13:36:22 2009), 站内


 基本上我们都调成锁定模式,要改之前先锁定吧
【 在 hyperLee (冬瓜de征途~~风雨无阻) 的大作中提到: 】
: 用分布式版本控制软件,好处是每个人有一个仓库,不需要依赖服务器。但是现在有个问题。
: 如果两个人同时更改了一个源代码中的同一个函数,这样在merge的时候,会出现冲突,这时候就需要手工处理冲突了。
: 我想问一下,手工处理这样的冲突,是软件开发的标准环节吗?还是说所有需要手工处理的冲突,都是可以避免的?
: ...................

--
     在我头上做窝的蚂蚁,你们保重


※ 来源:·水木社区 newsmth.net·[FROM: 113.96.185.95]

[本篇全文] [回复文章] [本篇作者:qingrun] [回信给作者] [进入讨论区] [返回顶部]
6
发信人: qingrun (青润), 信区: SoftEng
标  题: Re: 请问一个用分布式版本管理软件的一个难题
发信站: 水木社区 (Sat Dec 26 19:21:14 2009), 站内

更改之前先锁定的方式,在很多项目中是无法使用的,并行开发和时间的逼迫,都会出现不能锁定某一个泪来进行两个甚至更多人的并行修改和开发的。
锁定,类似于多线程的锁机制,有可能出现死锁,那时候,就是另一个技术风险引起的多种风险并发症了。呵呵

【 在 canper (洗衣粉) 的大作中提到: 】
:  基本上我们都调成锁定模式,要改之前先锁定吧

--
我很傻,但是我很能干
软工类技术blog:blog.csdn.net/qingrun,等待100万访问。

※ 来源:·水木社区 http://newsmth.net·[FROM: 162.105.244.22]

[本篇全文] [回复文章] [本篇作者:hyperLee] [回信给作者] [进入讨论区] [返回顶部]
7
发信人: hyperLee (冬瓜de征途~~风雨无阻), 信区: SoftEng
标  题: Re: 请问一个用分布式版本管理软件的一个难题
发信站: 水木社区 (Sun Dec 27 09:51:05 2009), 站内

多谢各位高人指点,受教了!

--
 
     昨日的一缕英魂,今日的万里长城。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/257598/viewspace-623691/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/257598/viewspace-623691/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值