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