2009-12-08 6 views
11

Ich möchte zwei ~/.hgrc-Dateien behalten: ~/.hgrc und ~/.hgrc.local - eine mit "Standard" -Einstellungen (z. B. username), die andere mit maschinenspezifischen Einstellungen (z. B. Einstellung ein grafisches Merge-Tool).Laden Sie mehrere .hgrc-Dateien - dh einige mit maschinenspezifischen Einstellungen?

Wie kann ich das mit hg tun?

Zum Beispiel, das ist, wie ich es mit Vim tun:

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

Dann:

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

Antwort

20

Es gibt eine nicht-oft verwendet %include Richtlinie in Mercurial 1.3 und höher:

Von 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. 

mit so gehen:

%include ~/.hgrc.local 

und Sie sollten gut gehen .

+0

Ehrfurcht, super - genau das habe ich gesucht. Vielen Dank. –

+0

Wow, ich hatte keine Ahnung, dass es existiert. Nett. –

+0

Hrm, das wäre ja echt cool ... Aber es geht nicht mit hg 1.3.1 oder 1.4.1 ... Und das greppen des hg source tree (1.4.1 + 7-4ddfad7ebd98) für '% import' dreht sich nicht irgendwas. Also ... Wo hast du das gefunden? –

0

Mercurial in verschiedenen Orten für hgrc Dateien suchen und werden sie, falls vorhanden laden. Für die systemweite Konfiguration wäre der Standard (unter UNIX) /etc/mercurial/hgrc zu verwenden.

Weitere Informationen finden Sie unter files section of the hgrc man page.

+0

Es sieht an ein paar verschiedenen Orten ... Aber ich brauche beide Konfigurationsdateien in ~, weil ich nicht root auf allen meinen Maschinen habe. –

+0

wurde abgelehnt, um das Handbuch zu paraphrasieren, ohne echte Informationen hinzuzufügen. Du kannst es besser machen :) – NicDumZ

5

Ich löse dieses Problem für alle meine "Dot-Dateien" in ähnlicher Weise. Beim Anmelden überprüft meine Shell eine Liste von Dateien (hgrc, vimrc, ....) und prüft, ob einer von ihnen älter als ${that_name}.global oder ${that_name}.local ist. Wenn es ist - cat ${that_name}.{global,local} > ${that_name}. Einfach und funktioniert bisher super. Während es einen "besseren" Weg gibt (mit %include), hat manchmal die manuelle Verarbeitung der Konfigurationsdateien Vorteile - zum Beispiel wird es mit Mercurial Pre-1.3 funktionieren.

+0

Ah, das ist eine großartige Idee. Vielen Dank! –

4

Mercurial prüft auf eine Anzahl von Konfigurationsdateien mit einer bestimmten Priorität. Auf diese Weise können Sie globale, benutzerspezifische und repositoryspezifische Einstellungen vornehmen. Mercurial Version> = 1.4 hat einen hg help config Befehl, der dies in einem schönen Überblick beschreibt:

$ 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 

Sie Ihre aktuellen Einstellungen mit hg showconfig auflisten können.

+0

Leider habe ich das gesehen ... Und es beantwortet die Frage nicht. –

+1

Vereinbart, dass die Antwort nicht 100% beantwortet Ihre Frage. Aber eine Down-Abstimmung? Komm schon. – Paidhi

+0

Hilft mir. Ich werde dich wählen! – user37078

Verwandte Themen