【发布时间】:2011-08-08 01:20:36
【问题描述】:
我正在尝试为 Mercurial 创建一个具有通用扩展名的共享 hgrc 文件,以便我的同事能够获得一致的体验并找到有用的工具。但是,启用 Mercurial 未附带的扩展程序会导致问题。
我的主要 repo 的 hgrc 指向一个源代码控制的共享 .hgrc 文件:
\Repo.hg\hgrc
%include ..\tools\hg\dev.hgrc
共享的 dev.hgrc 然后启用我们保持源代码控制的扩展:
\Repo\tools\hg\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,但没有看到任何存储库相对路径选项。
【问题讨论】:
-
我们在公司做了非常相似的事情。不幸的是,我们没有找到解决方案,只是解决了这个问题。每个人都将我们的 hgtools 存储库克隆到相同的位置 $HOME/.hg-scripts/hgtools,然后他们将该文件 %include 到他们的 $HOME/.hgrc 文件中。共享 hgrc 中的所有路径都是 $HOME/.hg-scripts/hgtools/... 形式的完整路径。它对我们有用,但不是很优雅。
-
谢谢马克。很高兴知道我们并不孤单。
-
如果你们不写信给“真正的”Mercurial 社区,你们将永远无法解决这些问题:mercurial@selenic.com -- 虽然我们是一些试图在这里提供帮助的开发人员,但大多数 Mercurial 开发人员只阅读邮件列表。 (我认为我们应该有一种方法来指定相对于存储库的路径,它将启用很多很好的方法来使用
%include指令。) -
感谢您的指点。 mercurial.selenic.com/wiki/MailingLists 非常清楚,这是让 Mercurial 人员听到的正确方式——他们甚至提到 StackOverflow 的名字......
-
您是否曾通过电子邮件发送列表或获得此问题的答案?