3

我正在使用 mercurial 作为我的工作流程的一部分,它运行良好。我有一个琐碎的问题。当我从中央存储库拉到我的 Linux Web 服务器以进行升级时,我正在使用“root”用户进行升级。对于任何新的或更改的文件,这似乎将所有者和组分配给“root”。

不幸的是,我遇到了其他困难,所以我总是不得不通过并将所有文件重置为正确的组和所有者(Web 服务器上的非 root 用户)。

有没有办法让善变自动做到这一点,或者有人有快速的方法吗?我正在使用 shell 并且必须输入

chown -R username /home/username

我尝试用 chgrp 做类似的事情。整个事情看起来很混乱,我怀疑有一种更简单的方法可以完成我需要的事情。从存储库中提取时,有没有办法设置所有者和组?

4

2 回答 2

8

您应该以非 root 身份进行拉动,这样您就不会遇到这个问题。但是,如果由于某种原因这不可行,您始终可以使用更新挂钩来更正文件权限。在您的存储库的.hg/hgrc文件中,您将放置:

[hooks]
update = chown -R username:usergroup /home/username

并且该命令将在每个hg update(或hg pull -u)之后自动运行。

于 2010-11-03T15:45:53.620 回答
1

您可以通过单独定义每个钩子来添加多个钩子

    [hooks]
    update.command1 = chown -R username:usergroup /home/username
    update.command2 = chown username2:usergroup2 /home/username/excludeme
于 2014-09-21T05:59:29.590 回答