OrcaScript 很方便
我之前使用过 PowerBuilder OrcaScript 来自动化构建 PC 连接到源代码控制,获取应用程序对象的最新副本,然后构建应用程序。但那是在一个项目中,整个应用程序都由我们支配,我们拥有所有代码,而 OrcaScript 构建整个应用程序没有问题。
但现在我只需要获取 PBL 子集的最新信息
我现在正在做一个项目,我们正在定制一个现有的第三方应用程序。因此,我需要能够引用所有专有的第三方 PBD,但仅从包含集成到供应商应用程序框架中的自定义代码的源中刷新 PBL。我们只会在刷新完成后将更新的自定义 PBL 移动到应用程序目录。
我已经做了很多试验,但未能成功刷新我想要的 PBL 子集。
首先,这可以在 OrcaScript 中实现吗?
其次,如果可能的话,我错过了什么?我已经成功:
- 设置属性并连接到源代码管理
- 在目标上执行“获取最新”,这似乎导致 OrcaScript 创建所需的空 PBL
- 从 lib 列表中排除专有的第三方 PBD
问题出在scc refresh target
命令上。日志显示进程因写入访问问题而失败,但未指定问题对象或库。我尝试从列表中的对象中删除只读状态,但这似乎不是问题。
我已经尝试了各种刷新类型和构建选项,但似乎无法通过刷新。
--- 附录 ---
甲骨文:
start session
scc get connect properties "Y:\Project\Release\PBWorkspace.pbw"
scc connect
scc set target "Y:\Project\Release\Starboard.pbt" "outofdate exclude_checkout"
scc get latest version "Y:\Project\Release\Starboard.pbt"
scc exclude liblist “Many proprietary PBDs excluded here”
scc refresh target "migrate"
scc close
;File copies to happen here
end session
运行 orcascr9.exe 最终会在刷新时产生此错误:“scc refresh target”中的 Orca 错误。结果代码-22。
日志如下。
6/16/2011 17:15 Source Management Initialization...
Scc Provider: PushOk SVNSCC
Connection to source control established
PBORCA_SccSetTarget: y:\project\release\Starboard.pbt
Target settings: REFRESH OUT OF DATE | EXCLUDE CHECKOUT
PushOk SVNSCC Status: Fetching file list for: Y:/Project/Release/
App Name: Starboard App Lib: y:\Files\StarboardPB\application.pbl
Library List: Many PBLs and PBDs identified
Successfully created library: c:\projects\Starboard scripts\powerbuilderobjects\custom.pbl
Successfully created library: c:\projects\Starboard scripts\powerbuilderobjects\custom_maps.pbl
PBORCA_SccGetLatestVer
PBORCA_SccExcludeLibraryList:
Much excluding going on here
PBORCA_SccRefreshTarget. Migrate and Full Rebuild
PushOk SVNSCC Status: Fetching file list for: C:/Projects/Starboard Scripts/PowerBuilderObjects
PushOk SVNSCC Status: Fetching status for : C:/Projects/Starboard Scripts/PowerBuilderObjects
如果我从目录中删除 PBL,刷新时会出现以下错误
DIFF2002 SccDiff error. Unable to read PBL source for c:\projects\Starboard scripts\powerbuilderobjects\custom.pbl(d_nautical.srd)
Calling cm_rebuild_application(CM_REBUILD_MIGRATE).
(0002): Error C0193: One or more of the files in your library list could not be opened for write.
Errors encountered during import/compile. Check SMS log.
PBORCA_SccClose
6/16/2011 17:16 Source control terminated
如果我将 PBL 留在原处,我会得到这个
Calling cm_rebuild_application(CM_REBUILD_MIGRATE).
(0001): Error C0193: One or more of the files in your library list could not be opened for write.