3

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.
4

1 回答 1

1

感谢 Hugh Brackett,他试图帮助我。使用本机 OrcaScript 时,我无法克服读取错误。所以不幸的是,对于所写的问题,我没有一个实际的答案,除了说根据我的经验,“不,当 PBD 是库列表的一部分时,PB 9 不支持从源代码控制刷新 PBL 的子集。 "

我确实有一个解决方法,尽管它并不便宜。我只听说过关于 PowerGen 的好消息,PowerGen 是用于 PowerBuilder 构建和部署的第三方工具。我试用了试用版应用程序,我必须说它非常出色。它似乎可以做任何你需要的事情。

我测试了一个构建自动化脚本。PowerGen 通知我它无法打开 PBD 文件,但继续刷新我想要加载的自定义 PBL 对象。问题解决了,尽管它需要一些现金。

于 2011-06-29T01:14:41.893 回答