2012-05-29 10 views
5

Come si clona un repository Mercurial in modo che la mia copia di lavoro abbia sempre terminazioni di riga CRLF?Conversione di terminazioni di linea UNIX Mercurial su Windows

Questo è simile a questa domanda Problems configuring eol extension in Mercurial

Ma mi manca qualcosa che non sembra funzionare sul mio computer.

Sono nuovo di Mercurial avendo utilizzato SVN (TortoiseSVN) per diversi anni. Ho installato TortoiseHG e sto lavorando con Mercurial di Brian O'Sullivan: La guida definitiva.

Quindi una delle prime cose che ho fatto è stato clonare il suo repository di esempio sulla mia macchina e ho scoperto che il file aveva terminazioni LF piuttosto che la versione Windows CRLF.

Così ho cercato di trovare l'opzione per gestire questo come ho fatto in SVN.

Ho creato un file in % USERPROFILE% \ Mercurial.ini con il seguente.

[extensions] 
eol = 

Ho eliminato il repository e l'ho controllato di nuovo. Nessun cambiamento.

Guardandomi in giro ho visto che potrei aver bisogno di un file .hgeol. Così ho creato uno nella cartella % USERPROFILE% con

[patterns] 
** = native 

eliminati e recloned il repository, il file aveva ancora LF di più che CRLF.

Ho quindi provato nuovamente a inserire il file .hgeol nella directory padre del repository e infine a inserire il comando nel file Mercurial.ini. Ho anche provato a sostituire nativo con CRLF.

Mi manca qualcosa perché sembra che questo dovrebbe essere tutto ciò di cui ho bisogno per farlo funzionare. Forse mi manca un concetto qui di conversione automatica come SVN ha fatto.

risposta

6

Il file .hgeol deve essere un file nella directory principale del repository, non nel padre della directory principale, né nella directory utente né all'interno del file Mercurial.ini.

Per aggiungere a un clone di esistente, probabilmente è necessario rimuovere la copia di lavoro esistente prima con hg update null (o hg clone --noupdate). Quindi, una volta aggiunto il file .hgeol, è possibile riavere la copia di lavoro utilizzando hg update, a questo punto la conversione EOL avrà effetto.

Non penso che sia possibile aggiungerlo direttamente ai cloni senza prima inviare il file al repository.

+0

Questa mattina ci provo. –

+0

Ha funzionato. Avevo provato a inserire il file .hgeol nella directory di lavoro, ma non ero in grado di clonarlo perché la cartella non era vuota. Penso che questo mi aiuti a capire perché quando clonato il mio clone modificato ottengo le estremità LF originali. Questo mi dice che guarda solo la cartella .HG per le informazioni e ignora cosa c'è nella cartella di lavoro. Questo probabilmente non è un problema perché sui miei repository (aziendali) avremo le opzioni configurate da zero. Sono solo quelli che non controllo e non ho incluso l'opzione, che avrei bisogno di fare questo. –