欢 迎 光 临
's BLog
这就是我
最新公告
站点日历
最新日志
最新回复
最新留言
 日志搜索

友情链接
其他信息
·软件版本管理之Starteam HowTo --1     -|liurm 发表于 2008/2/2 14:51:00
针对Starteam,写了如下HowTo。原因是图形界面的操作固然有其方便性,但也随处埋藏着地雷。
    例如:权限设置不当,任何人可以选择工程的根目录,按一下DEL键,只有一次确认机会,便会在不到一秒种的时间,删除整个工程所有文件。如果这时不知所措,重新再次重建整个工程,比如重新 checkin整个工程的5000 个文件,则服务器中的文件个数翻倍。这些文件作为新文件,不但让你为找不回Commit LOG而头大,管理员总有一天也会为服务器存储空间头大。

1. Server Configuration

    1.1 用户角度
    在使用Starteam客户端连接服务器前,首先要设置服务器的IP地址、端口号等参数,以建立连接Starteam服务器的Profile。这可以称为用户眼中的Server Configuration。
    用图形界面的Starteam客户端,按如下方式设置:
    (1)Project->Open->Add Server
    (2)设置服务器名、IP地址、协议(TCP/IP Sockets)、端口(49201)、加密(选择任意一种加密方式)。
    命令行Starteam,请用我们自己封装的Wrapper: "st"。
obsd99:/home/jiangxin/work/src/project/main>st config
StarTeam Configuration
Original starteam server is 10.1.1.60
new server:[10.1.1.60]
Original starteam server port is 49201
new server port:[49201]
original username is jiangxin
new username:[jiangxin]
Password:[********]
Original checkout project is project
Project you want to checkout:[project]
Original checkout view is  ("/" means root view)
View you want to checkout:[]
Original checkout folder is Development ("/" means root folder)
Folder you want to checkout:[Development]
Working dir is /usr/home/jiangxin/work/src/project/main
Your working directory:[/usr/home/jiangxin/work/src/project/main]
Sticky tag base on date :  ("/" means not exist)
Date:[]
Sticky tag base on label :  ("/" means not exist)
Label:[]
Sticky tag base on promotion-state :  ("/" means not exist)
Promotion-state:[]

    Server Configuration的配置保存在工作目录中;用户口令加密保存在用户主目录的文件.stpass中。

    1.2 管理员角度
    (1)一个服务器配置(Server Configuration),作为一个独立的服务运行,有独立的用户数据库,独立的版本控制文件仓库(Repository),独立的一个数据库来支持。
    (2)一台服务器上可以运行多个不同的Starteam服务器配置,不同的Server Configuration需要分配不同的端口设置。
    (3)一个服务器配置内可以运行多个工程(Project),一个Project中可以有多个视图(View),视图中有目录、文件、Change Request等元素组成。
    (4)一个服务器配置中的文件等元素可以在工程之间,视图之间共享(类似于拷贝的动作);但是元素不能跨服务器配置共享。
    (5)配置文件
    Configuration\server.scg
    Configuration\server.cph
    (6)数据库文件
    Database\StarTeamDB.mdb (Assuming Access database)
    (7)数据仓库
    版本控制文件仓库(Repository):Vault/Archive/;版本控制文件存储在该目录中,其中没有子目录,文件名以流水号依次排列;每个文件控制一个分支的所有版本文件的控制,类似于CVS的版本控制文件,但不同之处是该文件包含二进制的头尾,如果文件分支,CVS仍由一个文件来控制,而Starteam则形成一个新的文件;CVS的Tag包含在文件上,即如果对文件加Tag,文件被更新,而Starteam的Label(相当于CVS的Tag)不包含在文件中,而是存储在数据库中。
    (8)Cache
    Cache文件夹是为了加速文件Checkout。当一个文件被Checkout,便在该目录建立Cache,文件名结构为:文件名.版本号。
    (9)其他
    包括Log、Attachments(Change Request、Topic等的附件文件)

2. Project

    2.1 用户角度
    选择Server Configuration列表,输入正确的用户名和密码,即打开该Server Configuration下你有权限的工程列表,选择某一工程。

    2.2 管理员角度
    (1)在Server Configuration下,列表显示的工程列表,即代表了一个个工程。
    (2)工程是由一系列视图组成,根视图通常作为工程的缺省视图,直接选择某工程,和选择缺省视图的效果一致;
    创建工程,即创建工程的根视图。尽量在设置权限时,按照工程、视图、文件夹的方式来设置权限。
    (3)设置权限时,一定设置工程和视图不能被任何人删除!因为一旦删除无法找回。

3. View

    (1)通过Project->Open来打开某一工程,会显示视图列表。视图间的关系通过一个树图表示出来。根视图通常作为工程的缺省视图,直接选择某工程,和选择缺省视图的效果一致;
    (2)根视图通常表示目前正在开发的版本;而分支视图表示维护的旧代码分支,或者功能独立的代码分支;
    (3)视图是主要用途是管理分支,即将一个分支作为一个独立的视图;当然也可以对不同用户建立视图,但是通过对目录的权限控制来实现不同用户使用同一个视图更好;
    (4)如果对视图中不同目录分别设置权限,则用户查看该视图,只能看到具有权限的目录。
    (5)Label只在同一个视图中起作用,且View Label、Build Label、Promotion State作用于一个视图中所有文件;
    (6)由于Change Request需要用到Build Label,测试人员用到Promotion State,因此需要在同一个视图内存放程序目录、Change Request目录、测试人员目录等;但文档具有相对独立性,建议单独建立工程,再共享到其他工程和视图中。

 

 

[阅读全文 | 回复(0) | 引用通告 | 编辑 | 收藏该日志]

发表评论:

    昵称:
    密码:
    主页:
    标题: