Mercurial:忽略文件权限/模式(chmod)更改

8 git permissions mercurial file-permissions chmod

有没有办法忽略Mercurial存储库的文件权限/模式(chmod)更改?

我正在寻找类似于Git的设置:

core.filemode -> false
Run Code Online (Sandbox Code Playgroud)
  • 如下所述:

我可以让git diff忽略权限更改

更新:正确答案是Ry4an和我对他答案的第二个评论.

Ry4*_*ase 6

Mercurial只跟踪文件的执行权限,而不是用户/组/其他方式,就像一个位一样,所以根据你想要压制的内容,你可能真的需要调整umask运行的用户hg update'

如果它是获取你的执行位,那么我认为唯一的选择是使用预提交钩子,如:

[hooks]
pre-commit = find $(hg root) -type f -print0 | xargs -0 chmod a-x
Run Code Online (Sandbox Code Playgroud)

在提交之前删除所有文件中的执行.

要仅对版本化文件执行相同操作,请hg locate按照Ish的注释中的指示使用:

[hooks]
pre-commit = hg locate --print0 | xargs -0 chmod a-x
Run Code Online (Sandbox Code Playgroud)

但请注意,在某些情况下这可能会失败.例如,在重命名(hg rename)期间,重命名之前和重命名之后的文件都将被记录为使用版本化hg locate.因此,挂钩将失败到chmod文件的旧名称,并且提交将作为整体失败.这可以通过暂时禁用挂钩或通过/bin/true在挂钩结束时调用来"修复" .

  • 你需要更具体地说明它不适合你. (3认同)