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

 

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…   设置高级属性。相当于执行菜单EntrySource ControlAdvanced 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?)。在执行版本控制的某些活动的时候,比如GetLastVersionCheck-outCheck-inRefresh 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(通过点击菜单EntrySource Control SystemGet 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的时候改写它的时候常常失败(这是PBBUG)。你需要首先去掉文件的制度属性,然后执行Get Last Version

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

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

        

 

 

第1章 窗口与控件 1.1 制作Splash窗口 -- Splash 1.2 制作美观的状态条 -- StatusBar 1.3 系统热键的实现 -- HotKey 1.4 创建图标栏应用 -- Systray 1.5 MDI窗口显示背景图片 -- MDIBmp 1.6 定制有特色的图标按钮 -- PictureButton 1.7 导航图界面的制作 -- FlowChat 1.8 制作图文并茂的菜单 -- BmpMenu 1.9 窗口内控件大小与窗口大小同步 -- Autosize 1.10 动态创建控件 -- DynamicControl 1.11 控件融合技术 -- SplitBar 1.12 窗口中控件显示 -- ToolTips 第2章 数据窗口 2.1 数据窗口组合条件查询 -- Search 2.2 数据窗口中实现增量查询 -- zlcx 2.3 数据窗口的多表更新 -- UpdateMultable 2.4 单击标题栏对数据窗口排序 -- TitleSort 2.5 数据窗口中用回车键实现Tab键切换列焦点功能 -- Tab-Enter 2.6 动态数据窗口 -- DynamicDataWindow 2.7 复合数据窗口 -- AddTitle 2.8 数据窗口打印处理 -- PrintPreview/PrintPreview3 (PrintPreview和PrintPreview3内容是相同的,但在实现上有些区别) 2.9 捕捉DropDownDataWindow列相关键事件 -- dddw 2.10 数据窗口中闪烁文字显示的实现 -- dwTimer 2.11 在GRID风格DataWindow中调整列顺序 -- ChangeColumnOrder 2.12 利用数据窗口计算表达式 -- Calculate 2.13 获取数据窗口中列在数据库中的实际域名 -- GetFieldName 2.14 数据窗口的最大/最小化显示实现 -- dwResize 第3章 PowerScript 本章所要使用的资源文件--pic 3.1 PowerBuilder8新增函数、功能使用简介 3.1.1 文件系统函数 -- FileFunction 3.1.2 打印函数 -- Printer 3.1.3 系统函数 -- SysFunction 3.2 记录系统出错信息 -- SysError 3.3 注册表函数应用 -- Regedit 3.4 连接任意ODBC数据源 -- ODBCList 3.5 在应用程序中关闭外部程序 -- CloseApp 3.6 在应用程序中启动控制面板项目 -- RunControl 3.7 判断是否处于开发模式 -- GetMode 3.8 非TAB分隔符文本文件倒入数据窗口 -- ImportFile 3.9 编译后的程序带参数运行 -- MyApp 3.10 取当月的最后一天 -- GetLastDay 3.11 限制程序运行次数 -- OnlyOnce 3.12 打印文件的打印 -- prnplt 3.13 程序中实现拨号连接 -- Dial-up 第4章 数据库与SQL 4.2 PowerBuilder + ASA7的C/S编程 -- Client-Server 4.4 动态SQL -- DynamicSQL 4.5 存取二进制大对象 -- Blob 4.6 PowerBuilder应用取服务器时间 -- GetServerTime 4.7 PowerBuilder扩展属性系统表及其应用 -- SystemTable 4.8 程序中备份Adaptive Server Anywhere 7 数据库 -- DbBackup 第5章 用户对象 5.1.1 创建定制的用户对象(创建弹压式按钮) -- ToggleButton 5.1.2 创建标准的可视用户对象(扩展的数据窗口) -- Datawindow 5.1.3 创建可视外部用户对象(状态条) -- StatusBar 5.2.2 创建通用不可视用户对象(FTP应用) -- Ftp
本书详细论述了PowerBuilder 8.0版的组成以及它们的语言、事件和函数,对构成PowerBuilder的各种对象(应用、窗口、菜单、数据窗口、数据库、事件、函数、用户对象)以及它们的用途、创建、使用和修改方法等内容做了详细描述,书中介绍了数据管道、动态数据窗口、拖放技术、API技术、分布式应用和Web应用等高级技术,最后一章给出了一个完整的实例。每章末均有习题,便于读者练习。 本书可作为大专院校学生的教材和教学参考书,也可供各种培训班使用和应用开发人员参考。 第一章 PowerBuilder 8.0概述 1.1 PowerBuilder 8.0简介 1.2 PowerBuilder 8.0开发环境 1.3 PowerBuilder 8.0应用系统的构成 1.4 本书的应用实例 习题 第二章 数据库 2.1 数据库的建立 2.2 PowerBuilder与各种数据库的连接 2.3 操作数据库表 2.4 视图操作 2.5 数据操作 2.6 数据库的管理 习题 第三章 应用对象 3.1 概述 3.2 创建新的应用对象 3.3 指定应用的属性 3.4 编写应用级的事件处理程序 习题 第四章 窗口及窗口上的控件 4.1 窗口的组成及类型 4.2 创建窗口 4.3 窗阔上放置的控件 4.4 控件的使用 4.5 窗口的继承 习题 第五章 菜单 5.1 菜单的创建和设计 5.2 预览和打印菜单 5.3 通过继承创建菜单 5.4 菜单的编程 5.5 菜单的调用 习题 第六章 事件 6.1 应用对象的事件 6.2 窗口对象的事件 6.3 窗口上控件的事件 6.4 菜单事件 6.5 PowerBuilder对象的用户自定义事件 6.6 在程序中触发事件 习题 第七章 数据窗口 7.1 概述 7.2 创建数据窗口 7.3 使用数据窗口的步骤 7.4 数据源 7.5 显示风格 7.6 数据窗阔画板 7.7 设置数据窗口对象的总体属性 7.8 设置数据窗口中对象的属性 7.9 列的编辑风格 7.10 列的显示风格 7.11 数据校验 7.12 在数据窗口中添加对象 7.13 增强数据窗口的功能 7.14 数据窗口的打印 7.15 统计图的使用 习题 第八章 PowerScript编程语言 8.1 语言初步 8.2 数据类型 8.3 变量 8.4 常量 8.5 数组 8.6 运算符和表达式 8.7 PowerScript语句 8.8 嵌入SQL语言 8.9 结构 8.10 用户函数 习题 第九章 函数 9.1 数值计算函数 9.2 日期时间函数 9.3 字符串操作函数 9.4 Blob(大二进制对象)函数 9.5 数据类型检查与转换函数 9.6 数组函数 9.7 文件操作函数 9.8 打印函数 9.9 定时操作函数 9.10 打开与关闭窗口函数 9.11 库管理函数 9.12 邮件函数 9.13 注册(Registry)函数 9.14 系统与环境函数 9.15 其他系统函数 9.16 对象函数 9.17 分布式应用函数 9.18 Internet/Intranet服务函数 第十章 应用的调试和发行 10.1 应用程序的调试 10.2 应用程序的运行 10.3 生成可执行文件 10.4 应用程序的发行 10.5 制作安装盘 习题 第十一章 用户对象 11.1 用户对象简介 11.2 用户对象的创建 11.3 使用用户对象 11.4 窗口与用户对象间的通讯 11.5 用户对象使用综合示例 习题 第十二章 PowerBuilder高级应用 12.1 动态数据窗口 12.2 应用程序接口(API) 12.3 嵌套报表 12.4 交叉表 12.5 OLE 2.0 12.6 PowerBuilder分布式应用 12.7 数据管道 12.8 拖放技术 第十三章 创建Web应用 13.1 Web应用的基本概念 13.2 PowerBuilder中主要的Web技术 13.3 Web数据窗口 13.4 PowerBuilder 8.0中Web数据窗口的使用 习题 第十四章 应用实例 14.1 实例概述 14.2 创建一个应用 14.3 数据库设计 14.4 创建表 14.5 创建窗口 14.6 创建菜单 14.7 将主菜单m_main与主窗口w_main连接 14.8 创建数据窗口
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值