我们可以在Subversion中将单个文件设置为外部吗?
答案 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的经验,结果已记录在案。
这导致了一种笨拙的解决方法。如果你控制两个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