【问题标题】:Repository relative paths in Mercurial .hgrc fileMercurial .hgrc 文件中的存储库相对路径
【发布时间】: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 的名字......
  • 您是否曾通过电子邮件发送列表或获得此问题的答案?

标签: mercurial hgrc


【解决方案1】:

这不是你要找的,但如果你的系统是 puppet、chef 或包控制的,你可以轻松地创建一个包,将文件放在 /etc/mercurial/hgrc.d/ 中的任何内容都被执行对于每次运行的所有用户。您可以将扩展名 .py 文件和 hgrc sn-ps 放在那里以启用它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多