OrcaScript很方便
之前,我曾使用PowerBuilder OrcaScript来自动化构建PC与源代码控制的连接,获取应用程序对象的最新副本,然后构建应用程序。但这是在一个项目上,整个应用程序都由我们处理,我们拥有所有代码,OrcaScript毫无疑问地构建了整个应用程序。
但是现在我只需要获取最新的PBL子集
我现在在一个项目中,我们正在定制一个现有的第三方应用程序。因此,我需要能够引用所有专有的第三方PBD,但只能从包含包含集成到供应商应用程序框架中的自定义代码的源中刷新PBL。刷新完成后,我们只会将更新的自定义PBL移到应用程序目录中。
我已经进行了很多实验,但无法仅成功刷新所需的PBL子集。
首先,这可以在OrcaScript中完成吗?
第二,如果有可能,我想念什么?我已经成功:
问题出在
scc refresh target
命令上。日志显示进程由于写访问问题而失败,但是未指定问题对象或库。我尝试从列表中的对象中删除只读状态,但这似乎不是问题。我已经尝试了各种刷新类型和构建选项,但似乎无法超越刷新。
-附录-
Orcascript:
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刷新目标”中的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.
最佳答案
感谢休·布雷克特(Hugh Brackett)尽力帮助我。使用本机OrcaScript时,我无法克服读取错误。因此,很遗憾,我没有书面问题的实际答案,只是说,根据我的经验,“不,当PBD是库列表的一部分时,PB 9不支持从源代码管理刷新PBL的子集。 ”
我确实有一个解决方法,尽管它并不便宜。除了PowerGen(用于PowerBuilder构建和部署的第三方工具)的好消息外,我什么都听不到。我试用了试用版应用程序,必须说它非常出色。它似乎能够执行您需要的任何操作。
我测试了构建自动化脚本。 PowerGen通知我无法打开PBD文件,但继续刷新我要加载的自定义PBL对象。解决了该问题,尽管这样做花了一些钱。