使用SVN和Delphi Visual Component软件包的最佳实践?

Dar*_*ler 7 svn delphi version-control

由于希望能够重现使用第三方可视化组件包的项目的给定修订版,SVN中的内容以及实现/构建SVN回购的最佳方式是什么?

对于非可视组件,规则似乎很简单,以确保不依赖于外部回购 - "没有svn-externals引用允许的任何外部回购".我有一个我控制的共享仓库,这是唯一允许的'svn-externals'参考.这使得在不同的SVN项目中使用源代码实现和共享这些类型的运行时项目变得容易.任何对此内部共享仓库的引用都是使用特定修订号的'svn-externals'.

视觉包似乎与能够轻松控制版本相反,因为它们可能必须在每个版本重新安装.如何最好地创建一个能够在以后以特定版本号重新创建的SVN项目...是否有推荐的解决方案?

以前我们并不担心第三方组件,因为它们不经常更改,我们从来没有真正好的解决方案.我想知道其他人是否已找出解决这个问题的最佳方法,因为我正在进行春季大扫除/内部重组,并希望比以前做得更好.

从技术上讲,RTL/VCL源也应该在SVN仓库中(如果发布了Delphi修补程序/服务包).

我的解决方案可能是创建一个虚拟机,其中包含特定版本的Delphi环境,并安装了所有可视控件.在我们添加/更新可视控件或使用修补程序/服务包更新Delphi时,我们会创建一个新版本的虚拟机.然后,我们将此VM版本的映像存储在某个架子上.这是你做的吗?在这种情况下,Delphi激活/许可是否运行良好(或根本没有)?

谢谢,

达里安

too*_*too 7

您可以为项目准备"启动IDE"(可能还有"构建")脚本,并在项目库中进行维护时对其进行维护.

无论您决定将组件保存在单独的存储库中还是使用外部组件,或将它们包含在具有可能分支的单个存储库中,您还应该为每个组件构建和为特定Delphi版本准备的每个分支包含已编译的bpl文件.

您绝对应该尝试保持大多数(如果不是全部)路径相对,在最坏的情况下使用环境变量指向您的根项目目录.

启动IDE脚本允许您在单个Windows安装上保持每个项目和Delphi版本环境的特定配置.

它应包括项目和Delphi所需的注册表项:

Windows Registry Editor Version 5.00

[-${DelphiRegKey}\Disabled Packages]
[-${DelphiRegKey}\Known Packages]
[-${DelphiRegKey}\Library]

[${DelphiRegKey}\Known Packages]
"$(BDS)\\Bin\\dclstd${CompilerVersion}.bpl"="Borland Standard Components"
"$(BDS)\\Bin\\dclie${CompilerVersion}.bpl"="Internet Explorer Components"
"$(BDS)\\Bin\\dcldb${CompilerVersion}.bpl"="Borland Database Components"
(...)
"${CustomComponentPack}"="Custom Components"

[${DelphiRegKey}\Library]
"Search Path"="${YourLibrarySourceFolder1};${YourLibrarySourceFolder2}"
(...)
Run Code Online (Sandbox Code Playgroud)

然后,您可以准备批处理文件:

regedit /s project.reg
%DelphiPath%\bin\bds -rProjectRegKey Project.dpr
Run Code Online (Sandbox Code Playgroud)

哪里${DelphiRegKey}HKEY_CURRENT_USER\Software\Borland(or CodeGear in newer versions)\ProjectRegKey.

基本上,当您从注册表转储当前工作配置,从不必要的键中删除它,将路径更改为相对,然后适应以使其适用于您的项目时,它会更容易.

在这样的配置中,在具有不同组件集(和/或可能使用不同Delphi版本)的项目及其分支之间切换是仅检出存储库并运行脚本的问题.