Mercurial - 以其他用户身份执行

时间:2014-03-19 13:20:43

标签: linux bash mercurial

我使用mercurial存储库进行全局配置。系统配置文件链接到/ opt / config,这是root拥有的hg repo。

我希望所有用户都能够从repo更新设置,即致电hg pull -u

中的/opt/config

我尝试创建以下脚本

# -rwsr-x--x 1 root users 343 Mar 15 14:10 /bin/update_config

#! /bin/bash
cd /opt/config
hg pull -u

(注意,s位已设置)。在这种情况下,hg不会读取/root/.hgrc中包含HTTP登录参数的设置(用户不能知道参数)

即使我执行export HOME=/root,也不会读取hgrc文件。

我应该如何更改脚本以使其成为可能?

修改

这似乎是一般性许可问题。我用sles11。行touch /root/bla在此脚本中不起作用,为什么?

1 个答案:

答案 0 :(得分:1)

Mercurial是一个分布式版本控制系统,在我看来你没有正确使用它。如果要求用户修改存储库,则每个用户都应该处理自己的存储库,然后将其配置为push到您想要的位置(/opt/config)。因此,mercurial工作流程将处理合并问题。如果他们只是存储库的使用者,您应该1)创建一个cron条目来自动更新它,或者2)使用像JenkinsTeamCity这样的持续集成系统,它会在某些事情时自动更新存储库被推到了它。

如果你仍然想要实现你的要求,你应该为此目的查看sudo命令。将/ opt / config所有权设置为新的无密码用户,配置sudo以允许切换到此用户而无需密码,并仅在〜theuser / .hgrc中进行配置。这将使维护更容易(只需要一个.hgrc来处理)。