【发布时间】:2011-03-24 16:03:59
【问题描述】:
希望能够重现使用 3rd 方可视化组件包的项目的给定修订版,SVN 中有哪些内容以及实施/构建 SVN 存储库的最佳方式是什么?
对于非可视组件,规则似乎很简单,可以确保不依赖外部存储库 - “不允许 svn-externals 引用任何外部存储库”。我有一个我控制的共享存储库,这是唯一允许的“svn-externals”引用。这使得在不同的 SVN 项目中使用源代码实现和共享这些类型的运行时项目变得容易。此内部共享存储库的任何引用都是由 'svn-externals' 使用特定修订号。
可视化包似乎与易于进行版本控制背道而驰,因为它们可能必须在每个修订版中重新安装。如何最好地创建一个能够在以后以特定修订号重新创建的 SVN 项目......有推荐的解决方案吗?
以前我们不担心第 3 方组件,因为它们不会经常更改,而且我们从来没有真正好的解决方案。我想知道其他人是否已经找到了解决这个问题的最佳方法,因为我正在进行春季大扫除/内部重组,并希望比以前做得“更好”。
从技术上讲,RTL/VCL 源代码也应该在 SVN 存储库中(如果发布了 Delphi 修补程序/服务包。)
我的解决方案可能是创建一个具有特定版本的 Delphi 环境并安装了所有可视控件的虚拟机。当我们添加/更新可视化控件,或使用修补程序/服务包更新 Delphi 时,我们会创建一个新版本的虚拟机。然后,我们将这个 VM 修订版的映像存储在某个架子上。这是你做的吗?在这种情况下,Delphi 激活/许可是否运行良好(或根本无法运行)?
谢谢,
达里安
【问题讨论】:
-
恕我直言,第三。派对组件包,无论是否可视,都是一样的,因为它们必须安装在 IDE 中才能工作。例如 INDY 或 JCL 甚至 JVCL(视觉和非视觉的混合)就是这种情况,仅举几个流行的非视觉。
-
如果你没有使用运行时包构建并且有源代码,那么指向源代码是一个简单的路径问题。所以在这种情况下,运行时包(带有源)更容易处理。
-
这并不能解决从 svn(或任何版本管理)检索特定版本的问题,包括第三方组件。
-
我的想法与 jachguate 类似。也许更合适的区别是设计时与纯粹的运行时包。
-
@Leonardo,如果您将 VM 称为不是从 SVN 检索特定版本的解决方案,那么您是正确的。在这一点上,我只是没有另一个可行的想法。它比我们目前拥有的要好,但肯定不是“理想的” 理想的可能是 VMWare LabManager,但这很高 $$
标签: delphi svn version-control