2010-05-21 67 views
4

我在我的谷歌代碼託管上使用了一些項目的Hg。對於我在.hgrc的[auth]部分設置的每個項目,都可以在不需要密碼的情況下推送用戶名/密碼。但它有很多重複,如:mercurial:在hgrc文件中重複數量較少

[auth] 
proj1.prefix = ... 111 
proj1.username = google code username 
proj1.password = google code password 

proj2.prefix = ... 222 
proj2.username = google code username 
proj2.password = google code password 

這可以以某種方式做更少的重複?也許在hgrc中設置變量並從所有用戶名/密碼行中引用它?

在此先感謝您的幫助

回答

4

從hgrc auth部分:

格式:<name>.<argument> = <value>其中<name>用於組參數到驗證條目。

<name>.prefix:與最長匹配前綴的認證項用於

因此,對於code.google.com單個條目應該足夠了。另外感興趣的是%include file,因此您可以將常見的東西存儲在單獨的文件中並將它們包含在任何hgrc中。

2

hgrc files好像不支持變量作爲屬性值。

你可以有多個.rc文件,爲您的Mercurial配置文件thoug從一個目錄

*.rc文件的讀取按字母順序排列,後來者覆蓋早期的

這意味着你可以有:

  • 一個主要的hgrc文件
  • 一個模板用於項目驗證的文件
  • 一個腳本能夠生成多個proj.rc文件,每個項目一個。

仍有重複,但至少它是爲您生成的。

+0

哪裏* RC放在哪裏?是不是更容易,那麼只需要一個腳本來從模板生成我的.hgrc? – zaharpopov 2010-05-21 06:12:42

+0

@zaharpopov:它們是「每個安裝/系統配置文件」,並且位於您告訴它們的位置(對於Windows)或位於 /etc/mercurial/hgrc.d/ * .rc中'用於Unix。您可以僅生成自己的每個用戶的'.hgrc'文件,更適合用戶信息。 – VonC 2010-05-21 06:23:59

0

來自同一用戶的不同Google代碼項目具有不同的前綴,因此您不能在hgrc的auth部分中使用prefix屬性。

但你可以用不同的方式做到這一點。寫〜/ .hgrc這樣的:

[auth] 
gc.username = google code username 
gc.password = google code password 

然後對每一個項目,做一個PROJECTDIR/hgrc/.hgrc看起來像這樣:

[paths] 
default = https://PROJECTNAME.googlecode.com/hg/ 

[auth] 
gc.username = https://PROJECTNAME.googlecode.com/hg/ 

這一點很重要的名字在.hgrc和項目hgrc之間輸入(在這種情況下爲gc)是相同的。

+0

他們都解析爲「https:// code.google.com」,因此可以使用單個前綴 – 2013-04-29 15:34:47

1

只是

[ui] 
username = Ivan Pupkin <[email protected]> 
verbose = True 

[auth] 
googlecode.prefix = https://code.google.com/ 
googlecode.username = username 
googlecode.password = password 

我檢查它汞柱2.3.2 :)