【问题标题】:SVN checkout questionSVN结帐问题
【发布时间】:2008-09-17 21:28:09
【问题描述】:

我即将转向 SVN 作为我选择的 RCS(在使用 CVS 多年之后)并且有一个基本问题...

我有许多共享项目 - 我想在许多不同项目中使用的代码。是否可以将这些共享文件夹“链接”到需要它们的项目,因此签出项目也会签出共享代码?

例如,假设我的存储库如下所示:


--project1
--project2
--共享
--smtp

当我签出 project1 时,我也想签出 shared 和 smtp。

在我的 CVS 时代,我会在其中一个项目文件夹中使用 Unix 符号链接,但由于我的新 SVN 存储库不一定托管在 Unix 机器上,所以我不能这样做。

【问题讨论】:

    标签: svn


    【解决方案1】:

    SVN 外部是您想要做的。 SVN 书详细解释了它here。这是我喜欢 SVN 的一件事,精彩的文档。

    【讨论】:

      【解决方案2】:

      您正在寻找“svn:externals”属性。见this部分svnbook:

      在您要在其中使用共享项目的项目下,然后在该目录上设置一个名为“svn:externals”的属性。此属性包含包含外部存储库的目录的名称,并且可以有一些其他选项,以便您始终获得相同的修订。

      示例(来自 svnbook,这是 svn 问题的优秀参考):

      $ svn propget svn:externals calc
      third-party/sounds             http://svn.example.com/repos/sounds
      third-party/skins -r148        http://svn.example.com/skinproj
      third-party/skins/toolkit -r21 http://svn.example.com/skin-maker
      

      在本例中,第三方/声音将从http://svn.example.com/repos/sounds 中检出。 -rNNN 将结帐固定在修订版上,因此如果您正在对此进行更多开发,则可以确保您的其他项目不会随机中断。通常,我不做这个修订的事情,而是在一个拥有稳定版本的标签之外。

      【讨论】:

        【解决方案3】:

        这就是 svn "Externals" 的用途。

        【讨论】:

          【解决方案4】:

          是的,看看SVN Externals

          【讨论】:

          • jamuraa 显然有一个更好、更直接的答案。赞成那个。
          【解决方案5】:

          是的,这种机制称为“外部”。见the book

          【讨论】:

            【解决方案6】:

            SVN 有一个名为“externals”的功能,它的工作方式基本上与符号 UNIX 链接的工作方式相同(您将存储库中某个位置的某个目录指向存储库中其他位置的某个目录)。

            有关如何设置外部的更多信息,请参阅: http://svnbook.red-bean.com/en/1.0/ch07s03.html

            希望对您有所帮助。

            【讨论】:

              猜你喜欢
              • 2023-03-10
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-07-31
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多