从0.9.4开始,当添加符号链接时,Mercurial会跟踪链接本身,而不是它指向的文件或目录。但是,有时需要跟踪符号链接指向的文件。
如何强制Mercurial将目录的符号链接视为常规目录?
答案 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
只需确保在安装源代码后放置它。