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

时间:2009-08-31 05:40:58

标签: file svn svn-externals

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

4 个答案:

答案 0 :(得分:24)

是的,svn 1.6可以实现。这是svn书的每晚构建版本中的documented

但即使文件外部有效,你也应该只使用文本文件(现在),因为二进制文件won't work correctly作为文件外部。

答案 1 :(得分:4)

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

此外,本说明给出了:

  

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

根据我测试Tortoise SVN v1.9.6和svn.exe v1.9.5的经验,结果已记录在案。

  • 引入外部文件夹及其所有文件。
  • 相同的repo 中引入单个文件。
  • 不同的回购邮件中单个文件失败,SVN一书中记录了此限制。

这导致了一种笨拙的解决方法。如果你控制两个repos,你可以将一个单独的文件克隆到源仓库中的自己的文件夹中(通过repo中的单个文件的外部),然后通过引入整个文件夹将它跨越repo边界外部到目标仓库中,它只包含一个文件。

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

答案 2 :(得分:2)

我无法找到关于如何在外部创建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。显然,我假设你当前目录下的文件夹my_folder位于svn下。

答案 3 :(得分:1)

对于SVN 1.9.4,语法就像文件夹一样:

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

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

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