分享
 
 
 

PowerBuilder 8.0 开发环境集成使用版本控制

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

1 PB开发环境集成版本控制的介绍

PB6 至 PB8集成版本控制个不相同,在这里仅以PB8为例介绍集成使用版本控制。

1.1 设置

从PB8开始,有了工作区间Workspace的概念。开发者的工作是在一个工作区间中进行的。版本控制也是在工作区间中设置的。

查看Workspace的属性,在第3页(Source Control)中,设置版本控制的使用连接。

图一:PB8设置集成使用版本控制的连接

下面对其中的各项进行说明:

Source Control System 版本控制系统。在这里选择要使用的版本控制系统。这里列出来的是操作系统中安装了的,能够集成到开发环境中的版本控制系统。

UserID 登录用户账号。是开发者在所选择的版本控制系统中所拥有的登录账号。

Project 在版本控制系统数据库中所存在的,本次开发所需要的项目。

Local Root Directory 本地的根目录。这个路径或者它的子目录要包含Workspace。

Connect 连接版本控制。注意:有的版本控制在Project中不需要填写,在连接的时候选择Project。

Advanced… 设置高级属性。相当于执行菜单Entry→Source Control→Advanced Options(在Library Painter中的菜单)。

Require Comments on Check-in

在键入的时候需要填写注释说明。如果选中该项,在Check-in的时候,OK按钮是灰色的,除非你填写了注释说明。

This project requires that I sometimes work offline

选中这一项,在每次打开这个Workspace的时候,不会主动连接,而是出现一个对话框,询问是联机还是脱机(如图二)。

图二:询问是否脱机工作

Delete PowerBuilder Generated Object Files

这一项是决定是否自动删除PB生成的对象的源文件(*.sr?)。在执行版本控制的某些活动的时候,比如GetLastVersion、Check-out、Check-in、Refresh Status等操作的时候,PB会从版本控制系统中取得对象的源代码放置到本地。如果选中该选项,PB会在执行完操作以后,自动删除这些文件。如果不选中该选项,这些临时的源文件将保留在本地。使用某些版本控制系统比如Perforce, ClearCase, or Continuus source control systems等,不可以选择该选项。

另外,有些操作,即便是选择了该选项,可能也不会完全的清除这些临时的源文件。比如执行Refresh Status操作。如果不想保留这些文件,需要你手工清除。我的办法是使用一个批处理文件(DELSR.BAT),内容是Del *.sr?来删除这些文件。

Perform Diff on Status Update

取消了该选项选择,你将看不到本地对象与版本控制系统数据库的对象是否有差别。即:Refresh Status命令将无效。

Suppress prompts to overwrite read-only files

这个选项选择时候,在某些时候(具体忘记了),提示你是否覆盖。该选项可以提醒防止使用旧的文件覆盖新的文件。

Status Refresh Rate

自动刷新状态的时间,以分钟为单位。这里所指的状态是PB的对象是否被别人锁定,或者是否被更改而与本地的不相同。

这些可以参照该对话框的联机帮助,由英文的原文说明,建议阅读一下。

1.2 使用

使用版本控制之前,首先解释一下各种状态及显示的图标。

名称

说明

加号

表示这个对象还没有加入到版本控制数据库中。

圆点

表示这个对象加入到了版本控制,并且处在常规状态。可以被检出。

绿勾

表示这个对象被当前的开发者检出/锁定。

红叉

表示这个对象被其他的开发者检出/锁定。(其他人不可以再检出。)

问号

表示这个对象的状态未知,一般是还不知道是否与服务器的对象不同。

圆圈

表示这个对象与服务器上的内容不相同。如果是本人检出,则不出现该图标。

有关这个内容可参见PB 的HTML帮助(Compiled HTML Help File)中:

PowerBuilder User’s Guide

The PowerBuilder Environment

Chapter 3 Using Source Control

Using a source control system

对此有英文原版解释。

l 添加到版本控制中

当我们刚刚使用一个Project,要将所有的对象加入到版本控制中;

当我们新建了一些对象,要将他们加入到版本控制中。我们可以选择要加入的对象,鼠标右键单击,在菜单中选择“Add to Source Control…”添加到版本控制中。

在下面的几种情况下,我们可以在Target上单击鼠标右键,选择Add to Source Control:

1、 整个项目第一次要加入版本控制;

2、 新增了许多对象,分布在不同的PBL中,寻找起来较麻烦。

注:有关版本控制的命令,大部分存在于Library Painter的菜单Entry->Source Control中。对象的右键相关菜单根据情况会选择出现。

l 检出对象进行工作

我们要对某个对象进行修改的时候,需要将对象检出。我们选择这个(些)对象,执行“Check out”命令。对象即被当前操作用户检出,并且当前用户所检出的对象被更新为服务器上最新的版本。

l 检入对象提交更新

将对象修改完毕,需要提交到服务器上,对要提交的对象执行“Check in”命令即可。这样将服务器上的对象用检入用户本地的对象所更新。多数的版本控制系统是将该对象以新的版本号来保存。

l 检查更新

我们工作了一段时间,同伴们修改了其中的某些对象并提交到了服务器中。我们要检查服务器上的那些对象与本地的不同?我们需要执行“Refresh Status”命令。可以通过两种途径来执行:

1、 我只想检查某几个指定的对象,选择这些对象,执行该命令;

2、 我要检查所有的对象,或者排除少数的对象。选择Target对象,选择对所有对象操作。然后在弹出的对话框中去掉不需要检查的对象(或者默认选择全部)执行命令。

提示:选择Target可以方便的对大量的对象执行操作,但是要小心不要覆盖自己的工作。建议对通过Target对大量对象操作的时候,采用对话框中默认选择的对象。

l 更新本地对象

在适当的时候(比如操作者执行了Refresh Status,或者PB自己更新了状态)我们知道了本地某些对象与服务器上的不一致,我们可以执行Get Last Version…命令来同步对象。

l 对Target对象执行命令

对Target执行命令的时候,常常会出现一个窗口,询问是对所有对象操作还是仅仅对Target对象执行操作。如果对所有对象执行操作,PB还会弹出一个选择窗口来供开发者选择要操作的对象。如图三

图三:选择操作的对象范围

对Target对象执行某些命令可以方便的对大量的对象执行操作。但是偶尔使用不当会覆盖掉自己的辛勤劳动。下面将对Target执行各种命令的情况作一下综合说明。

Refresh Status,刷新状态。如果对所有对象执行该命令的时候,谈出的选择窗口中列出了所有的对象,但并不一定是所有对象都选中的。只有那些状态还不明了的(也就是图标的旁边有问号的对象)。

Get Last Version,同步对象的版本。弹出的选择窗口列出了所有的对象,但是默认选中的是PB认为内容不一致的,也就是图标前面有圆圈的对象。其他的对象也可以选择,但是建议不要点击右边的“全部选中”按钮,如果你有正在检出修改的对象,这样操作会将你对他们的修改覆盖掉。

Check-out,检出对象。弹出的选择窗口列出了所有未被检出的对象,也就是你可以执行检出的对象。默认情况下所有的对象都没有选择。除非的确有必要,一般不要点击右边的“全部选择”按钮检出所有对象。

Check-in,检出对象。谈出的选窗口列出了所有被你检出的对象,并且默认的情况下全部是选中的。

总之,通过Target对大量对象执行操作是很方便的,一般情况下认同它默认选择的列表即可。尽管有时候并不能够及时的更新状态信息,但是要选中全部对象进行操作,尤其是Get Last Version操作的时候,要小心。

l Show Difference…

显示不同。这个命令是对比本地的版本和服务器上最新的版本之间的差异。如果没有差异,则显示对话框告知文件相同。如果有差异,会显示版本控制系统的对比窗口。

l Show History…

显示版本历史。选择该命令,将打开版本控制系统的显示版本历史对话框。在该对话框中如果选择了两个版本,执行Diff命令,可以比较这两个版本的差异。

1.3 Q & A

下面对常见的一些问题作一下说明。

1. 我在对所有对象执行操作的时候,常常没有执行完成就中断了。

答:的确有这样的现象。我发现往往是版本控制系统慢的情况更容易出现这样的问题。更有甚者,可能会将PB这个关掉。遇到这样的情况,只能够选择部分的对象分批分次执行操作。你可以一次操作一个PBL内的对象,或者一个PBL内一半对象执行操作。

2. 我增加了一些对象,如何让我的同伴获得。

答:只要你将他们执行Add to Source Control,就可以了。版本控制系统会记住这些对象存在于哪些PBL中。

你的同伴这样操作:在Library Painter中,选择这个PBL,对他执行Get Last Version(通过点击菜单Entry→Source Control System→Get Last Version执行。PBL的右键菜单没有这些相关的命令。新增的对象会列在选择列表中,并且默认是选中的。或者,在通过Target对整个应用执行Get Last Version,所有服务器上新增的,本地没有的对象都会出现在列表中,并且默认是选中的。PB会将这些新增的对象下载到本地并且放置到正确的PBL文件中。在中级篇会对这个问题有一个详细的解释。

3. 如何检出Target对象本身?

答:要检出Target对象本身,在选择Target执行Check out命令的时候,在弹出的窗口中选择仅对单一文件操作,这样就是对Target对象本身进行操作。

在检出Target对象的时候,PB会告知“”这时候你需要在此执行一次 Get Last Version。

4. 我增加了一个PBL,如何让我同伴获得?

答:你的同伴会在适当的时候得知,他的Target对象与服务器上的不一致,他需要同步他的Target对象。同步过后,并不会立即得知Target中新增了一个PBL。当他下次打开这个Target(或者打开当前的Workspace)的时候,PB会告诉他,缺少一个xxx.pbl文件。这时候他需要手工创建这个PBL文件。然后关闭并重新打开Target,这时新的PBL就会出现在Target列表中。然后他需要选择新增的PBL并使用Get Last Version将其中的新增的对象下载到本地。

5. 如何正确的同步Target对象?

答:不正确的同步往往不能够成功地获得服务器上的Target对象的最新内容。由于Target在常规状态下是只读的,在执行Get Last Version的时候改写它的时候常常失败(这是PB的BUG)。你需要首先去掉文件的制度属性,然后执行Get Last Version。

6. 如何删除废弃的对象?

答:首先,这需要具有管理员权限的用户才能够操作。其次,这里面涉及到的内容,将在中级篇中介绍。一般用户管理员联系。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有