2009-12-08 5 views
11

Vorrei conservare due file ~/.hgrc: ~/.hgrc e ~/.hgrc.local - uno con impostazioni "standard" (ad esempio, username), l'altro con impostazioni specifiche della macchina (ad esempio, impostazione uno strumento grafico di unione).Caricare più file .hgrc, ad esempio alcuni con impostazioni specifiche della macchina?

Come posso fare questo con hg?

Ad esempio, questo è come lo faccio con Vim:

# ~/.vimrc 
syntax enable 
source ~/.vimrc.local 

Poi:

# ~/.vimrc.local 
let work_code = 'code/work/.*' 
if expand('%:p:h') =~ work_code ... fi 

risposta

20

C'è un non-usato spesso direttiva %include in mercuriale 1.3 e versioni successive:

Da man hgrc:

A line of the form %include file will include file into the current 
    configuration file. The inclusion is recursive, which means that 
    included files can include other files. Filenames are relative to the 
    configuration file in which the %include directive is found. 

in modo da andare con:

%include ~/.hgrc.local 

e si dovrebbe essere pronti per partire .

+0

soggezione, fantastico - questo è esattamente quello che stavo cercando. Grazie. –

+0

Wow, non avevo idea che esistesse. Bello. –

+0

Hrm, quindi sarebbe davvero fantastico ... Ma non funziona con hg 1.3.1 o 1.4.1 ... E l'uso dell'hg source tree (1.4.1 + 7-4ddfad7ebd98) per '% import' non gira niente Quindi ... dove l'hai trovato? –

0

Mercurial cercherà in diversi luoghi per hgrc file e li caricherà se presente. Per la configurazione a livello di sistema, lo standard (su UNIX) sarebbe quello di utilizzare /etc/mercurial/hgrc.

Vedere files section of the hgrc man page per ulteriori informazioni.

+0

Sembra in alcuni punti diversi ... Ma ho bisogno di avere entrambi i file di configurazione in ~, perché non ho root su tutte le mie macchine. –

+0

downvoted per parafrasare il manuale senza aggiungere informazioni reali. Puoi fare di meglio :) – NicDumZ

5

Ho risolto questo problema per tutti i miei "dot file" in modo simile. Al momento dell'accesso, la mia shell controlla un elenco di file (hgrc, vimrc, ....) e verifica se uno di essi è precedente a ${that_name}.global o ${that_name}.local. Se lo è - cat ${that_name}.{global,local} > ${that_name}. Semplice e funziona alla grande finora. Mentre c'è un modo "migliore" (usando %include) a volte l'elaborazione manuale dei file di configurazione ha dei vantaggi - ad esempio funzionerà con Mercurial pre-1.3.

+0

Ah, questa è una grande idea. Grazie! –

4

Controlli mercurial per un numero di file di configurazione con una priorità specifica. In questo modo puoi avere impostazioni globali, specifiche dell'utente e del repository. versione Mercurial> = 1.4 ha un comando hg help config che descrive questo in una bella panoramica:

$ hg help config 
Configuration Files 

    Mercurial reads configuration data from several files, if they exist. Below we list the most specific file first. 

    On Windows, these configuration files are read: 

    - "<repo>\.hg\hgrc" 
    - "%USERPROFILE%\.hgrc" 
    - "%USERPROFILE%\Mercurial.ini" 
    - "%HOME%\.hgrc" 
    - "%HOME%\Mercurial.ini" 
    - "C:\Mercurial\Mercurial.ini" 
    - "HKEY_LOCAL_MACHINE\SOFTWARE\Mercurial" 
    - "<install-dir>\Mercurial.ini" 

    On Unix, these files are read: 

    - "<repo>/.hg/hgrc" 
    - "$HOME/.hgrc" 
    - "/etc/mercurial/hgrc" 
    - "/etc/mercurial/hgrc.d/*.rc" 
    - "<install-root>/etc/mercurial/hgrc" 
    - "<install-root>/etc/mercurial/hgrc.d/*.rc" 

    The configuration files for Mercurial use a simple ini-file format. A configuration file consists of sections, led by a "[section]" header and followed by 
    "name = value" entries: 

     [ui] 
     username = Firstname Lastname <[email protected]> 
     verbose = True 

    This above entries will be referred to as "ui.username" and "ui.verbose", respectively. Please see the hgrc man page for a full description of the possible 
    configuration values: 

    - on Unix-like systems: "man hgrc" 
    - online: http://www.selenic.com/mercurial/hgrc.5.html 

si possono elencare le impostazioni correnti con hg showconfig.

+0

Purtroppo l'ho visto ... E non risponde alla domanda. –

+1

Concordato che la risposta non risponde al 100% alla tua domanda. Ma un voto negativo? Dai. – Paidhi

+0

Mi aiuta. Ti voterò! – user37078

Problemi correlati