如何将符号链接视为Mercurial中的目录?

时间:2009-12-25 11:27:16

标签: mercurial symlink

从0.9.4开始,当添加符号链接时,Mercurial会跟踪链接本身,而不是它指向的文件或目录。但是,有时需要跟踪符号链接指向的文件。

如何强制Mercurial将目录的符号链接视为常规目录?

4 个答案:

答案 0 :(得分:24)

在linux下你可以使用

mount --bind sourcepath targetpath

而不是符号链接,mercurial会将目标视为常规目录(在使用Mercurial 1.3.1和RHEL6的openSUSE 11.2上测试)。

可以包含在/etc/fstab中的替代语法是

mount -o bind sourcepath targetpath

fstab条目是

sourcepath targetpath none defaults,bind 0 0

答案 1 :(得分:5)

当你使用目录时,我认为没有办法做到这一点。

如果你正在使用mercurial 1.3或更高版本,你可以尝试使用新的subrepo支持,这将让你在本地磁盘上有一个repo track的东西,但它不像链接那样无缝

答案 2 :(得分:5)

当我发现这一点时,我感到很惊讶,但它似乎是Mercurial team don't want to change for security reasons的一个特征。

我打算通过使用rsync在我的makefile提交之前更新目录的本地副本来绕过它。这不是一个很好的解决方案,但我的目录很小,所以应该没问题。

答案 3 :(得分:2)

关注Rage Steel的优秀答案(mount -bind):

要在启动时准备好挂载(因为挂载不能重新启动),在/ etc / fstabs中放置:

  

/ paht / to / source / path / to / target bind defaults,bind 0 0

只需确保在安装源代码后放置它。