`
hyw520110
  • 浏览: 212200 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

配置管理

阅读更多

这两天不清闲,前后比较了VSS,CVS以及SVN三个源代码管理工具。之前的.NET项目一直是使用VSS来进行管理,只是现在需要向VSS服务器添加大量的文件和文件夹,但是没有找到任何有效的方式能够让我们快速添加,要知道,要添加的文件数量在三万个,通过VSS添加实在是太慢。通过VS2005将项目添加到VSS中去,也是一样,添加几个文件夹,VS2005就死掉了。不知道有其它更好的添加方式。
       不过,据说VSS已经被VSTS淘汰了。但是,VSTS实在是太大了,因此,去除了VSS的打算。
       之后,打算使用CVS来进行管理。使用CVSNT以及TortoriseCVS,使用Pserver协议,可能是由于我的笔记本问题,其它人访问CVSNT速度很慢,主要是通过验证的时候很慢。上网查,发现确实如果文件个数很多的话,CVSNT的特点就显现了,速度慢。因此,将CVS放弃。可惜了,我对CVS的概念还是相当熟悉的,没有用上。
       之后,就是打算使用SVN来管理了。SVN相对CVS有一些改进,主要的改进在于提供更多的权限访问控制,访问速度也有提高。另外,配置上也要简单一些。因此,就使用SVN了。SVN1.4.5 + TortoriseSVN就好了。
       权限管理的问题,在SVN1.2之后已经有一个比较好的解决方法。通过passwd定义用户名和密码;通过authz定义文件级别的访问控制。网上有一篇文章讲这个,比较清楚,但是换到我这边,总是不能使用[Repository:/path/to/file]的方式,未果,只能使用[path/to/file]的方式,搞定了权限的问题。
       但是,最关键的问题,是要支持不同权限用户的编译。之前采用Firefly配置库进行管理,需要管理classes,classes所有人都有。编译文件通过classes生成所需要的lib文件。这种方式需要我们既edit src又要edit classes,增加了程序员的负担。
       因此,我需要找到一种方法:只需要edit src就能够编译。方法也很简单,但是由于以前的代码目录实在是比较复杂,一时要完全改掉换成新的结构,没有问题,但是怕有其他暂时没有想到的问题,因此决定先保留原来的目录结构,改变编译方式。
经过一个下午的奋战,搞清楚了。将以前classes生成的JAR直接放在common lib下,然后改变编译的classpath,让从现在的lib中找,而不是从classes文件中找。此外,当用户还有源代码的时候,编译生成jar包需要替换common lib下的JAR包,这样才能保证JAR包总是最新的,能够被所有人访问,这样就解决了权限和编译的问题。
       目前测试已经通过,当然按照敏捷的思想,我认为代码集体所有还是一个趋势,以后不需要在开发人员内部做权限控制是最好的。慢慢来吧。

 

  Label和Branch在配置管理过程中是很重要的两个概念。
       Label:用于对文件进行标记特定的版本,对一堆文件标记之后,可以将具有同样标记的文件给取出来。
       Branch:分支。建立分支,形成可以物理独立的空间,这样每个Branch就可以单独演化,如果有需要的话又可以融合。
        为什么需要Branch呢?这个得回答配置管理的根本问题,是为了让团队成员中共享。但是,有些时候又必须在小的团队中共享,在大的团队中反而不能共享。比如说:为了客户A定制的兄弟和为了客户B定制的兄弟可能代码都是基于某一个主干版本。因为客户A,B所以有了BranchA,BranchB,当然还有岿然不动的主干版本。由于有三波人马为了不同的目标而工作,都需要改动很多共同的代码。如果都放在同一个版本中是无论如何也做不了这件事情的。

       所以,Branch是为了解决共享冲突的问题,让各个分支团队能够更好的并行工作。在vss中,branch支持得很不好,在CVS中对于Branch支持得还是不错的。

       在实际情况,我们可能更多的是需要Label,而不是Branch。我们需要标记,用于检出我们发布的某个版本的代码。这样当我们前行的时候,不至于找不到之前的版本:)

分享到:
评论

相关推荐

    软件配置管理规范

    1 配置管理规范 1.1 概要 1.1.1 内容 本文用来规范配置管理活动,确保配置项正确地唯一标识并易于存取,保证基准配置项的更改受控,明确基线状态,在整个软件生命周期中建立和维护项目产品的完整性和可追溯性。 ...

    配置管理系统/配置管理系统

    配置管理系统提供系统参数配置管理,例如数据库的配置信息等,配置参数修改以后可以实时推送到客户端(基于netty4), 方便系统动态修改运行参数。 可以建多个项目,每个项目分为三种profile(development、test、...

    软件配置管理.ppt

    软件配置管理的概念 软件配置管理计划 软件配置标识 变更管理 版本管理 配置审核 配置状态报告 软件配置管理工具

    配置管理论文模板.docx

    配置管理论文模板

    产品开发部配置管理制度

    第二章 配置管理范围 11 第三章 配置库建立 11 第四章 配置管理流程 12 1. 配置管理流程 12 2. 基线建立流程 14 3. 变更控制流程 15 4. 产品发布流程 16 第五章 配置库权限变更管理 17 第六章 配置库备份 17 第七章 ...

    软件配置管理详细规定.docx

    软件配置管理详细规定.docx

    配置管理工程师面试题目

    配置管理工程师面试题目,有助于志向于配置管理工程师席位的同仁们共勉!

    java配置管理系统源码

    配置管理系统提供系统参数配置管理,例如数据库的配置信息等,配置参数修改以后可以实时推送到客户端(基于netty4), 方便系统动态修改运行参数。 可以建多个项目,每个项目分为三种profile(development、test、...

    配置管理基础知识

    配置管理

    Juniper SRX 系列防火墙配置管理手册 资料汇总

    Juniper SRX 系列防火墙配置管理手册 资料汇总: Juniper SRX Branch系列防火墙配置管理手册.pdf Juniper_SRX3600_产品配置维护培训.pdf Juniper_SRX低端系列防火墙配置手册.pdf Juniper_SRX基本配置手册.pdf ...

    配置管理说明配置管理说明

    配置管理说明配置管理说明配置管理说明配置管理说明

    配置管理计划-模板

    软件开发配置管理模板 1 项目介绍 5 1.1 目的 5 1.2 范围 5 1.3 假设和有待解决的问题 5 1.3.1 假设 5 1.3.2 存在的问题 5 2 定义和缩略语 5 3 引用文件和参考资料 5 4 角色和职责 5 4.1 组织 5 4.2 职责 5 4.3 应用...

    未雨绸缪_理解软件配置管理

    软件配置管理为软件开发提供了基础性的支持环境,它与软件开发中的所有角色都有联系,因此本书是写给所有与软件开发有关的人士看的,而不仅是给软件配置管理人员。  本书分为两部分,第一部分详细介绍了软件配置...

    java配置管理系统.rar

    配置管理系统提供系统参数配置管理,例如数据库的配置信息等,配置参数修改以后可以实时推送到客户端(基于netty4), 方便系统动态修改运行参数。 可以建多个项目,每个项目分为三种profile(development、test、...

    某客户配置管理流程指南 v1.0

    本文档,配置管理流程设计书,是中国某公司公司和中国某客户信息科技部安全运行处共同制定的配置管理流程设计文档,通过制定该流程,可以帮助中国某客户信息科技部安全运行处对所管理的IT环境有一个更清晰的了解和...

    软件配置管理计划示例

    本计划的目的在于对所开发的CADCSC软件规定各种必要的配置管理条款,以保证所交付的CADCSC软件能够满足项目委托书中规定的各种原则需求,能够满足本项目总体组制定的且经领导小组批准的软件系统需求规格说明书中规定...

    软件配置管理计划-模版拿来修改即用

    软件配置管理计划(Software Configuration Management Plan,SCMP)是软件开发计划的一部分,旨在规定各种必要的配置管理条款,以保证所交付的软件能够满足项目需求和软件系统需求规格说明书中的各项具体规定。...

    配置管理计划模板 配置管理计划模板

    配置管理计划模板 配置管理计划 配置管理计划模板

    项目配置管理计划项目配置管理计划

    项目配置管理计划

    VSS配置管理总结VSS配置管理总结

    VSS配置管理总结VSS配置管理总结VSS配置管理总结

Global site tag (gtag.js) - Google Analytics