hsy75的个人空间 https://blog.eetop.cn/vivilife [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

深入开源版本控制:(by WuWei)

已有 935 次阅读| 2011-5-19 16:35 |个人分类:linux


版本控制:为什么做版本控制,版本控制历史,如何避免版本冲突


1 why use version control:
1.1 合作:
1.2 代码维护:
其实主要的目的是:同步,分享;
还有个好处是历史坚持:
坚持写SVN - LOG,好的svn log有标准的规范写法:例如: [BUG-001][ByGroup][Who][Date]

2 常用的版本软件发展过程:
2.1 服务器:
cvs,svn,svk

2.2 分布式,或者说没有服务器版本:
gc×t,mercurial/hg,hazar
不同点:
svn等必须要有一个服务器端:
分布式的好处是,当支持客户的时候,能够在没有网络的时候进行版本控制:
分布式代码最后总是合在一处的,所以和开发者人员多少无关:

如何避免版本冲突?
1 软件版本主干是其他组做的怎么办?
|
|----------------|
|                     |
Patch            Branch
|                     |
|                     |


首先:做好版本标号
然后:当发现一个bug,你准备做版本更新时候
如果,改动不是全局全面的话,你可以用打Patch的方式,保留修改前的状态,
从而减少主干改动带来的冲突

2 如何在代码里面避免冲突:
目标减小主干和自己修改冲突:
2.1 make 的改动:
新建经常修改的文件名,作为原有的copy:
比如我要加一下新的模块,如果要修改makefile,我们最好不要直接在原有的makefile上修改:
最好是建立一个新的build.makefile.xxx
这样,在版本工具更新的时候,这样就不会覆盖原有的makefile.

2.2 代码里的冲突避免方式:
原则:少动主干的东西,新建自己的改动文件,放在一起

比如:我们的branch开发团队的组名是:FSS
枚举,头文件:
头文件 -
比如:
原来: --/inc/sys_api.h
新建:--/inc-fss/sys_api.h

对于枚举:
可以在枚举元素里加前缀:fss-
如此一目了然:

对于switch case:
    Fss_case_function(); // 先于原有的case做处理:

switch()
{
case ....
    break:
   ....
case ....
    break:
   ....
default:
    Fss_case_function();
    break:
}
    Fss_case_function(); //也是一个switch case ,只不过是原有的switch case的扩展,并先于原有的switch case 执行:


C 语言的面向对象设计:

Struct A
{
    data
    function
    close //虚函数和析构函数
}

如果不想别人析构,那么你的虚函数不要变成实函数

Struct B
{
    Struct A
}

function
fun (A* )
fun (B* )
函数指针必须转换,那么在GDK里面会定义一个宏


单元测试:
Cunit
敏捷编程,极限编程:
基本设计思路:规范设计,需求分析,概略设计,详细设计。。。。
但,客户需求并不是不变的,
如何保证,需求变化后,我改动了一些代码,不会影响到其他代码呢?


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 2

    粉丝
  • 1

    好友
  • 2

    获赞
  • 14

    评论
  • 3241

    访问数
关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-20 21:36 , Processed in 0.026960 second(s), 14 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部