关于代码管理(十一假期后结贴)

baobao28 2012-09-28 04:17:44
跟大家讨论一个问题,觉得分少可以再加
我们在开发一个产品的时候怎么管理源代码才会更安全,维护工作量更小?
比方我们这个开发的产品被客户A定制,进行了特定功能的开发。而过段时间又销售给了客户B,并且客户B也有定制开发部分。如果以后还有客户C、D、E、F呢,怎么管理这些代码?
每个都建立一个分支然后管理分支?可如果觉得客户C提出的定制开发非常好,而且可以推广给其他客户以及后续客户,怎么将代码同步到其他分支呢?一个个工程对比,认为匹配?工作量增加了太多太多。不知道大家在平时遇到这样的问题怎么处理的。
...全文
270 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangtu 2012-10-10
  • 打赏
  • 举报
回复
用SVN吧。
kk_lucky 2012-10-10
  • 打赏
  • 举报
回复
对,SVN
zqfddqr 2012-10-10
  • 打赏
  • 举报
回复
就是低耦合 全体模块化 小内核 实现积木一样
baobao28 2012-10-10
  • 打赏
  • 举报
回复
受益,但项目是后介入的,已经开发完的项目又不能推翻设计模式,所以想听听大家的意见,看看有什么更好的后期维护方案
这里谢谢大家的每一句中肯的建议
dracularking 2012-10-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

如果想将C中已有的feature用到其他的分支可以生成一个patch,然后再在想使用这些feature的分支里apply这个patch
[/Quote]
是什么保证了patch的可兼容性呢?是代码管理工具还是人为设计或其它?
wei2253498 2012-10-08
  • 打赏
  • 举报
回复
CVS VSS 想节约成本 的就找个人专门管。。不过问题会很多
NewMoons 2012-10-07
  • 打赏
  • 举报
回复
12楼和13楼说的都不错。
  • 打赏
  • 举报
回复
版本管理工具只是一方面,是在业务模型设计合理的前提下。
对于楼主说的“尤其是牵扯到公共模块的个性定制更是头疼”,这其实是业务模型的设计问题。
所以说,与其是问代码管理,不如说是系统设计模型的问题。
虽然还是存在一些共性经验,但脱离具体实际谈还是不太靠谱。
LogicTeamLeader 2012-10-04
  • 打赏
  • 举报
回复
千万不要去试验SVN的所谓分支、合并等等无用的技术。
唯一的办法就是抽取共性的包,不停的重构代码,为每个客户实现一个定制的版本。
记住,代码管理没有捷径,只能不停的重构。
NewMoons 2012-10-01
  • 打赏
  • 举报
回复
我基本同意【yktd26】的说法。
如果已经用了svn的分支管理,那么其实你现在的问题不是技术问题,而是需求控制和管理的问题。
需求和版本一定要做好同步控制。
我的经验一般控制好2点:
1、需求范围
如果确定要发布一个版本,不管是主线还是分支,一定要确定这个版本的需求范围,某个需求做就一定做,不做就一定不做。
2、发布时间
确定好某个版本的发布时间,不要轻易改,提前还好,如果到时需求做不完,宁可减少需求。如果需求不能减少,宁可延迟也不能轻易发布。
可能我上面说的似乎和楼主的要求关系不大,其实,关于版本合并本身没有什么好办法,就是抽取共性,舍弃个性!
yktd26 2012-10-01
  • 打赏
  • 举报
回复
如果想将C中已有的feature用到其他的分支可以生成一个patch,然后再在想使用这些feature的分支里apply这个patch
yktd26 2012-10-01
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
可如果觉得客户C提出的定制开发非常好,而且可以推广给其他客户以及后续客户,怎么将代码同步到其他分支呢?一个个工程对比,认为匹配?工作量增加了太多太多。不知道大家在平时遇到这样的问题怎么处理的。
[/Quote]
这种需要最好在开发之前已经决定要用到其他版本上,这样,对于这个特性的开发分支从common上建立,然后开发完成后merge到其他分支,包括c分支
yktd26 2012-10-01
  • 打赏
  • 举报
回复
没用svn用的git,像你的需求肯定是不同的分支,
可以有个common分支是大家都需要有的功能,比如可以用master,其他每个version一个分支,如果是大家都需要的功能要在common里完成然后merge到各个分支
zxhcloth 2012-09-29
  • 打赏
  • 举报
回复
像你说的这种情况最好就是分支管理,同时将比较稳定或者说各分支间差异不大的部分抽离出来单独管理(或则组件化),这样个性化又得到保证,同时想在分支间整合一部分功能也相对容易。
jackpay 2012-09-29
  • 打赏
  • 举报
回复
过来学习的,没用过,听听大牛的意见
baobao28 2012-09-29
  • 打赏
  • 举报
回复
svn倒是在用,可是代码同步实在是个很费时费力的事情,尤其是牵扯到公共模块的个性定制更是头疼
zhumin726 2012-09-28
  • 打赏
  • 举报
回复
你说的是持续集成,有很多自动化工具,当然自动化工具需要人去搭建,需要有过程培训。如果做得好可以做的很好,如果做的 不好也会做的很糟。 你想问的不会是简单的SVN分支管理吧
见习老狼 2012-09-28
  • 打赏
  • 举报
回复
我记得svn上可以进行分支开发和合并的,不知道对你有没有帮助
  • 打赏
  • 举报
回复
我觉得模块能够做到非常高内聚低耦合,那可能就是改改工作流和UI方面的了。

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧