2011-04-18 62 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片段放在那裏。