Mercurial创建文件时的默认权限

Ame*_*ina 6 mercurial

如果默认情况下Mercurial 不跟踪文件权限,它如何决定它创建的任何文件/目录的权限?

它用umask吗?如果没有,它有什么用?

在邮件列表中读到了以下内容:

Mercurial uses the mode of the .hg/store directory to compute a mask
Run Code Online (Sandbox Code Playgroud)

但这似乎有点武断(如果背后有任何解释,我很乐意听到它).这是在文档中解释的吗?

Von*_*onC 3

似乎没有任何完整的解释,只是在“如何处理多个提交者”页面中提到了它:

如果您使用的 Mercurial 版本早于 1.0,则将每个用户umask设置为002或类似的设置非常重要。如果设置为022,则用户创建的文件的组写权限将被屏蔽,导致其他用户无法修改它们。

umask您可以通过编辑用户~/.profile并添加行来更改用户的默认值...

umask 002
Run Code Online (Sandbox Code Playgroud)

或者,您可以编辑/etc/profile以更改系统范围的设置。
如果人们使用命令签入内容,则更改/etc/profile将不起作用hg,因为非交互式 shell 不会读取该文件,/etc/bash.bashrc这是放置系统范围设置的更好位置。

否则,从 Mercurial 1.0 开始,默认权限继承自 .hg/store。