我们可以在 Subversion 中将单个文件设置为外部文件吗?
4 回答
正如第一个答案中提到的,SVN Externals 记录在SVN Book 的第 3 章中,并且在那里给出了很多语法示例。
此外,还给出了以下说明:
“因为 svn:externals 属性有一个多行值,我们强烈建议您使用 svn propedit 而不是 svn propset。”
根据我测试 Tortoise SVN v1.9.6 和 svn.exe v1.9.5 的经验,结果如文档所示。
- 引入一个包含所有文件的外部文件夹是可行的。
- 从同一个 repo引入一个文件是可行的。
- 从不同的 repo引入单个文件失败,此限制记录在 SVN 书中。
这会导致笨拙的解决方法。如果您控制两个存储库,则可以将单个文件克隆到源存储库中自己的文件夹中(通过存储库中单个文件的外部),然后通过引入其整个文件夹将其跨存储库边界外部到目标存储库,其中仅包含一个文件。
使用 Tortoise SVN 客户端执行此操作的文档位于 tortoisesvn.net 上。
我找不到一个关于如何在外部创建 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
将在as下创建文件https://myserver/my/svn/location/my_sample_file.cfg.template。显然,我假设您已经在 svn 下的当前目录下拥有该文件夹。my_folder
my.cfg
my_folder
对于 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