有没有办法忽略 Mercurial 存储库的文件权限/模式 (chmod) 更改?
我正在寻找类似于 Git 的设置:
core.filemode -> false
- 如此处所述:
更新:正确答案是 Ry4an 和我对他的回答的第二条评论。
有没有办法忽略 Mercurial 存储库的文件权限/模式 (chmod) 更改?
我正在寻找类似于 Git 的设置:
core.filemode -> false
更新:正确答案是 Ry4an 和我对他的回答的第二条评论。
Mercurial 仅跟踪文件的执行权限,而不是以用户/组/其他方式跟踪文件的执行权限,就像一个位一样,因此根据您要压制的内容,您可能真的需要调整umask
正在运行的用户的hg update
权限
如果是执行位吸引您,那么我认为唯一的选择是使用预提交挂钩,例如:
[hooks]
pre-commit = find $(hg root) -type f -print0 | xargs -0 chmod a-x
也就是说,在提交之前从所有文件中删除执行。
要仅对版本化文件执行相同操作,请使用Ish评论hg locate
中指出的:
[hooks]
pre-commit = hg locate --print0 | xargs -0 chmod a-x
但请注意,这在某些情况下可能会失败。例如,在重命名 ( hg rename
) 期间,重命名之前和重命名之后的文件都将使用hg locate
. 因此,钩子将无法chmod
使用文件的旧名称,并且提交将作为一个整体失败。这可以通过暂时禁用钩子或在/bin/true
钩子结束时调用来“修复”。