【发布时间】:2010-11-25 16:03:10
【问题描述】:
我在 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 版本控制系统。 这些都是很好的想法,我相信它们是解决其他问题的好方法,但考虑到这种环境和情况的限制,它们不会起作用。
【问题讨论】:
-
我只是认为这是不可能的(而且我认为任何 VCS 都不能做到这一点,它要么遵循符号链接但无法跟踪它们,要么跟踪它们但不遵循) .
-
开始看起来那样。这似乎很愚蠢,因为大多数操纵路径结构(cp、mv、ln、rm、rsync)的实用程序都有指定符号链接应该被取消引用的选项,而不是按字面意思处理。我的意思是,只是我,还是没有“取消引用”选项会削弱该工具的功能? (如果我一个人在这里,我可能不会费心向 SVN 项目提交功能请求。)
-
晚了 3 年,但你并不孤单。我也需要这个。
标签: svn symlink dereference