2011-04-18 64 views
9

我正在尝试使用Mercurial的常见扩展名创建共享hgrc文件,因此我的同事可以获得一致的体验并找到有用的工具。不过,启用Mercurial不附带的扩展功能会导致问题。Mercurial .hgrc文件中的版本库相对路径

我主要的回购协议的hgrc点源控制,共享.hgrc文件:

\ Repo.hg \ hgrc

%include ..\tools\hg\dev.hgrc 

共享dev.hgrc然后能够扩展我们保持源-controlled:

\回购\工具\汞柱\ dev.hgrc

[extensions] 
hgshelve=tools\hg\hgshelve\hgshelve.py 
fold=tools\hg\hgfold\fold.py 

问题是只有当hg从根Repo目录运行时才能找到这些扩展。从一个子目录运行它给人的错误:

E:\Repo\src>hg 
*** failed to import extension hgshelve from tools\hg\hgshelve\hgshelve.py: [Errno 2] No such file or directory 
*** failed to import extension fold from tools\hg\hgfold\fold.py: [Errno 2] No such file or directory 

我想引用版本库的根不依靠任何东西,除了相对路径结构。

我查看了manual,但没有看到任何存储库相对路径选项。

+0

我们公司做了非常类似的事情。不幸的是,我们没有找到解决方案,只是解决了这个问题。每个人都将我们的hgtools repo克隆到同一位置$ HOME/.hg-scripts/hgtools,然后他们将这个文件包含在他们的$ HOME/.hgrc文件中。共享hgrc中的所有路径都是$ HOME/.hg-scripts/hgtools/...形式的完整路径它对我们很有用,但它不是很优雅。 – 2011-04-18 17:16:51

+1

谢谢马克。很高兴知道我们并不孤单。 – jasonrclark 2011-04-18 19:31:39

+2

如果你不写信给“真正的”Mercurial社区,你们永远不会得到这些东西:[email protected] - 虽然我们是一些试图在这里提供帮助的开发者,但大多数Mercurial开发者只阅读邮件列表。 (我认为我们应该有一种方法来指定相对于存储库的路径,它会启用很多很好的方法来使用'%include'指令。) – 2011-04-19 17:55:03

回答

0

这不完全是你要找的东西,但是如果你的系统是木偶,厨师或者包裹控制的话,你可以很容易地找到一个将文件放入/etc/mercurial/hgrc.d/的软件包,在每次运行中为所有用户执行。您可以将扩展名.py文件和hgrc片段放在那里。