Domanda

Sto cercando una soluzione per avere una .hgrc per mercuriale al lavoro in tutti i miei ambienti di lavoro (win / lin / mac), proprio come uno vimrc a governare tutti.

si tratta di un problema quando devo specificare il percorso per alcune estensioni, ad esempio, hg-git:

Su Windows:

[extensions]
hggit = E:\hg-git\hggit

su Linux / Mac:

[extensions]
hggit = ~/hg-git/hggit

Per vimrc, abbiamo la soluzione per distinguere piattaforma diversa, come

if has('win32')
  ...
endif

Conoscere hgrc che di Mercurial è a malapena un file ini normale, mi chiedo se non v'è soluzione simile per il file hgrc.

O forse qualche altra soluzione?

Aggiorna

Grazie per ricordare l'utilizzo di "variabile d'ambiente personalizzato invece di duro codifica", che lavora per il percorso estensioni.

Tuttavia, per rendere le estensioni lavoro è solo un obiettivo. Credo che ci siano altre configurazioni comportamento che dipende dalla piattaforma, come in http: // www. ogre3d.org/docs/OGREDeveloperGuide/index.html , opzioni specifiche sono necessarie per Windows e Mac. Come risolvere questo tipo di problema?

È stato utile?

Soluzione

Come sull'utilizzo dei .hgrc includono meccanismo e tre file separati:

~/.hgrc
~/.hgrc-windows
~/.hgrc-linux

dove il principale ~ / .hgrc ha:

%include .hgrc-$OS

e quindi impostare $OS nel profilo di Windows e il tuo profilo Linux di. In alternativa si potrebbe probabilmente trovare una variabile env che già esiste su entrambi i sistemi ($ USERNAME è usally già impostato in entrambi i Windows e UNIX e possono differire per voi).

Altri suggerimenti

Questo è solo nel caso in cui non si trova un modo per avere un solo .hgrc (o un insieme di file .hgrc*, a commento di Oben Sonne).

I unico volto ambienti Windows, così i miei file mercurial.ini sono gli stessi tranne che per 1 percorso. Continuo a una copia in controllo di versione con il mio script PowerShell profilo.

Tuttavia, se fossi di fronte ad ambienti più vario, vorrei astratta la configurazione a uno script in un linguaggio multipiattaforma (per esempio, Python) che sovrascrive il .hgrc o mercurial.ini bersaglio. Sarei in grado di avere i pezzi che devono essere differenti per ogni destra OS / macchina vicino l'un l'altro con semplici modi di distinguere quale ambiente è in corso. Poi vorrei tenere lo script nella versione di controllo per aiutare a mantenere la stessa versione su ogni macchina.

Dato che io non cambio spesso, probabilmente eseguirlo manualmente su ogni macchina quando ho visitato la prossima. Per un maggior numero di macchine o cambi più frequenti, avrei un altro script eseguito su login che tira modifiche allo script generatrice da un repo centrale, e se ci fossero effettivamente nuovi cambiamenti tirato, aggiornamento di punta ed eseguire lo script.

(Heck, ora sono tentati di rig questo tipo di configurazione in ogni caso.)

Perché non basta usare una variabile di ambiente personalizzato invece di duro codifica dei percorsi?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top