3

这个问题可能是因为我对SVN和版本控制相对较新,所以缺乏理解,所以请在理解的任何基本问题上给我打电话!:)

我们最近购买了 Delphi XE4,我们正在尝试找出一些用于原生 SVN 集成的用例。所以这里是这个问题的场景。

假设我们有一个“项目”目录,在该目录中我们有两个测试项目

测试SVNA.dproj 测试SVNB.dproj

目录中还有一个不属于任何一个项目的单元,我们将其称为 CommonU.pas。TestSVNA 和 TestSVNB 都使用 CommonU.pas,因此在其中任何一个项目下对文件进行版本控制都是不合逻辑的,但它确实经常更改,因此版本控制是必要的。我正在尝试学习如何在 SVN 中对该文件进行版本控制。为该文件创建一个全新的项目似乎很愚蠢

4

1 回答 1

3

为共享文件创建一个单独的项目,并将其添加external到每个使用它的项目中。SVN Book在主题中有关于这样做的信息Advanced Topics - Externals Definitions。(该页面还有一个为项目设置外部的示例;它使用命令行版本,但使用 TortoiseSVN 或 IDE 集成很容易解决。)

Subversion 提供对外部定义的支持。外部定义是本地目录到版本目录的 URL(理想情况下是特定修订版)的映射。在 Subversion 中,您使用 svn:externals 属性在组中声明外部定义。您可以使用 svn propset 或 svn propedit 创建或修改此属性(请参阅“操作属性”一节)。它可以在任何版本控制的目录上设置,它的值描述了外部存储库位置和该位置应检出到的客户端目录。

svn:externals 属性的方便之处在于,一旦在版本化目录上设置了它,使用该目录签出工作副本的每个人也可以从外部定义中受益。换句话说,一旦有人努力定义了嵌套的工作副本结构,其他人就不必费心了——Subversion 会在检出原始工作副本后,自动也检出外部工作副本。

如果您还没有这样做,您应该按照那里的基础和高级主题中的教程类型说明进行操作(或者您可以下载 PDF 版本,以便在本地拥有它)。这本书写得很好,并且由实际从事 SVN 本身工作的人更新。

于 2013-05-28T21:52:02.480 回答