Subversion客户端(svn)可以将符号链接视为文件吗?

Rya*_*nch 10 svn symlink dereference

我在Linux系统上有一个目录,主要包含不同文件系统上文件的符号链接.我想将目录添加到Subversion存储库,解除引用过程中的符号链接(将它们视为它们指向的文件,而不是链接).通常,我希望能够使用此行为处理任何工作副本操作,但我认为'svn add'命令是它启动的地方.

SVN客户端实用程序似乎没有与工作副本中的符号链接解除引用相关的任何选项.我也没有在手册(http://svnbook.red-bean.com/en/1.5/index.html)中找到任何引用.

我在SVN用户邮件列表上发现了一张海报,他提出了同样的问题,但从未收到过答案,这里:

(那张海报最后使用的是硬链接而不是符号链接.在我的情况下,这种技术不是一种选择,因为真正的底层文件驻留在一个单独的文件系统上.)

我在Fedora 11上使用Subversion v1.6.1.

对于它的价值,我知道有其他工具/技术可以帮助估算这种行为,但由于各种原因我不得不放弃.我已经考虑过这些可能性了: - 一个"联合"安装,合并包含真实文件的所有目录,并将SVN工作副本目录作为联合中的"顶层"; - 将真实文件复制/移动到与SVN工作副本相同的文件系统,并使用硬链接而不是符号链接; - 非SVN版本控制系统.这些都是巧妙的想法,我相信它们是解决其他问题的好方法,但鉴于这种环境和情况的限制,它们不会起作用.

Dig*_*oss 1

你有很多限制,但有一件事总是有效的:破解源代码。

你可以轻松地为 Linux 构建你自己的 svn,尽管制作这个 mod 可能会也可能不会“容易”。不管怎样,如果你没有任何托管符号链接,你可以进行一个粗略的修改,让 svn 始终跟随它们,就好像它们是硬链接一样。

如果您的存储库确实包含版本化链接,并且您需要检查它的这一部分,那么您将需要更复杂的黑客,例如,使用控制每个文件或每个层次结构或其他内容的属性。

可能还有另一种选择:版本化链接出现在 1.1.0 中,如果之前的行为是遵循符号链接,那么也许您可以只运行旧客户端。