【问题标题】:Can we set a single file as external in Subversion?我们可以在 Subversion 中将单个文件设置为外部文件吗?
【发布时间】:2009-08-31 05:40:57
【问题描述】:

我们可以在 Subversion 中将单个文件设置为外部文件吗?

【问题讨论】:

    标签: file svn svn-externals


    【解决方案1】:

    是的,可以使用 svn 1.6。在 svn book 的 nightly build 版本中是 documented。

    但即使文件外部工作正常,您也应该只使用文本文件(目前),因为二进制文件 won't work correctly 是文件外部。

    【讨论】:

    • 修复了二进制文件 (subversion.tigris.org/issues/show_bug.cgi?id=3368) 的问题
    • 还有一点应该注意,外部文件只能包含在与保存 externals-definition 的文件夹相同的存储库中
    • Stefan,根据您链接到的文档,Janosch 是正确的。引用文档:“文件外部不能引用其他存储库中的文件。”当我尝试在另一个存储库中外部文件时收到的错误消息进一步证实了这一点:'http://my.repo.server/src/external_repo/file1.html' is not in repository 'http://my.repo.server/src/current_repo' 您能否详细说明如何从其他存储库中获取文件作为外部文件?
    • @Peter 刚刚用 1.8 尝试过,但它仍然是一个限制。最终的答案是改为外部目录并忽略其中的其他文件。
    • 有这方面的消息吗?是否有对此的功能要求,我没有找到?
    【解决方案2】:

    正如第一个答案中提到的,SVN Externals 记录在Chapter 3 of the SVN Book 中,并且在那里给出了相当多的语法示例。

    另外,给出这个注释:

    "因为 svn:externals 属性有一个多行值, 我们强烈建议您使用 svn propedit 而不是 svn propset。”

    根据我测试 Tortoise SVN v1.9.6 和 svn.exe v1.9.5 的经验,结果与文档一致。

    • 引入一个包含所有文件的外部文件夹。
    • 从同一个存储库引入一个单个文件是可行的。
    • 从不同的存储库引入单个文件失败,此限制记录在 SVN 手册中。

    这会导致一种笨拙的解决方法。如果您控制两个存储库,则可以将单个文件克隆到源存储库中自己的文件夹中(通过存储库中单个文件的外部),然后通过引入其整个文件夹将其跨存储库边界外部到目标存储库,其中仅包含一个文件。

    使用 Tortoise SVN 客户端执行此操作的文档是 on tortoisesvn.net。

    【讨论】:

      【解决方案3】:

      我找不到一个关于如何在外部创建 svn 文件的好例子。因此,我在这里提供一个示例,以便对其他人有用。

      格式是

      svn propset svn:externals "<local file> <remote svn file>" <local dir>
      

      例如下面的命令

      svn propset svn:externals "my.cfg https://myserver/my/svn/location/my_sample_file.cfg.template" my_folder
      

      将在my_folder 下创建文件https://myserver/my/svn/location/my_sample_file.cfg.template 为my.cfg。很明显,我假设您已经在 svn 下的当前目录下拥有文件夹 my_folder。

      【讨论】:

      • 奇怪,SVN 文档声称文件外部文件不可能跨存储库。
      • Nikita Bosik 的回答 blelow 是首选,因为它允许相对路径。
      【解决方案4】:

      对于 SVN 1.9.4,语法类似于文件夹的语法:

      svn propset svn:externals <remote file> <local file>
      

      例如,这将在引用file.txt的当前目录中创建文件local.txt:

      svn propset svn:externals ^/trunk/path/to/file.txt local.txt
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-11-26
        • 2016-11-11
        • 1970-01-01
        • 2021-06-13
        • 1970-01-01
        • 2023-04-03
        • 2013-04-15
        • 2017-06-20
        相关资源
        最近更新 更多