2011-01-05 67 views
3

系统级别的hgrc文件(在/etc/mercurial<install-root>/etc/mercurial)显然是平台相关的,但我如何在每个用户的基础上使用平台相关的hgrc?在mercurial中,如何设置和使用每个用户平台相关的hgrc?

用例是重写特定平台上的系统配置。例如,我们在linux和solaris上有不同的合并工具。当hgrc不允许任何控制逻辑(如if os.uname()[0] == 'SunOS')时,我如何覆盖solaris合并工具?

回答

4
  1. 保留一组.<platform>.hgrc文件,其中包含任何想要在每个文件中覆盖的文件。
  2. .bashrc设置环境变量:

    export PLATFORM=`python -c 'import os; print os.uname()[0],'` 
    
  3. 在你~/.hgrc文件,使用%include末,包括正确的文件:

    %include ~/$PLATFORM.hgrc 
    
+0

'$ PLATFORM'是正是我需要的。我应该从man hgrc中看到它:“环境变量和〜用户结构在文件中被扩展,这可以让你执行如下操作:'%include〜/ .hgrc.d/$ HOST.rc' 包含一个不同的配置文件在您使用的每台计算机上。“谢谢你,优雅的洛什先生! – 2011-01-06 03:02:42

+0

是否有内置选项来设置不同遥控器的设置?这种方法可行,但我不喜欢它。这个评论并不打算开始一场战斗,我认为这是一个解决方案,但我更希望这个设置由Mercurial配置文件控制,而不必添加任何环境变量。如果你知道某种方式,请告诉我。 – 2012-06-16 06:01:20

相关问题