在哪里安装mercurial扩展,所以你不必在.hgrc中指定它们的路径?

时间:2015-05-14 19:59:13

标签: mercurial mercurial-extension

在何处安装mercurial扩展,因此您无需在.hgrc中指定其路径?

文档说你可以把它们放在合适的路径上,但是不清楚它是什么。

我想安装一些扩展程序,以便可以将这些扩展程序用于该计算机的任何用户表单,而无需修改每个用户.hgrc文件。

注意:如果这很重要,我对Ubuntu,Debian和Centos的解决方案很感兴趣。

详细信息:我想要部署的扩展之一是https://bitbucket.org/facebook/remotefilelog,它是由Facebook制作的,但很可惜他们错过了在PyPi上发布它。

1 个答案:

答案 0 :(得分:2)

首先,如果要全局安装扩展,最好的选择可能是在全局hgrc文件中执行此操作,而不是让用户在本地执行此操作。如果您在/etc/mercurial/hgrc中启用了扩展程序,则会为所有用户启用该扩展程序。

您还可以在<install-root>/etc/mercurial/hgrc中启用它们,其中<install-root>是安装Mercurial可执行文件的目录的父目录。例如,如果通过/opt/local/bin/hg执行Mercurial,则<install-root>/opt/local。然而,这更加脆弱,因为(按设计)符号链接不会被遵循。例如,如果用户将Mercurial链接到他们的~/bin/hg,则会为他们咨询~/etc/mercurial/hgrc

如果您只是想让用户可以使用扩展,但默认情况下不启用它们,那么它们必须进入Python site-packages目录,与普通扩展名相同。这将是您的全局Python安装,假设Mercurial使用它;但是,您可以使用virtualenv进行Mercurial特定的Python安装,您可以在其中安装扩展和其他内容而不会污染主要的Python安装。扩展的正常setup.py脚本应该适当处理这两种情况(例如,evolve扩展的setup.py会将evolve.py放在site-packages/hgext目录中。