OrcaScript很方便

之前,我曾使用PowerBuilder OrcaScript来自动化构建PC与源代码控制的连接,获取应用程序对象的最新副本,然后构建应用程序。但这是在一个项目上,整个应用程序都由我们处理,我们拥有所有代码,OrcaScript毫无疑问地构建了整个应用程序。

但是现在我只需要获取最新的PBL子集

我现在在一个项目中,我们正在定制一个现有的第三方应用程序。因此,我需要能够引用所有专有的第三方PBD,但只能从包含包含集成到供应商应用程序框架中的自定义代码的源中刷新PBL。刷新完成后,我们只会将更新的自定义PBL移到应用程序目录中。

我已经进行了很多实验,但无法仅成功刷新所需的PBL子集。

首先,这可以在OrcaScript中完成吗?

第二,如果有可能,我想念什么?我已经成功:

  • 设置属性并连接到源代码管理
  • 对目标执行了“获取最新”操作,这似乎导致OrcaScript创建所需的空PBL
  • 从库列表
  • 中排除了专有的第三方PBD

    问题出在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对象。解决了该问题,尽管这样做花了一些钱。

    10-08 01:55