2009-03-27 5 views
8

Dopo la migrazione a Windows, sto usando msysgit con la sua shell bash inclusa, e questo funziona bene per me. Ma ho dei problemi: il nostro processo di formica non verrà eseguito in quella shell, mi piacerebbe usare gli xterms di Cygwin invece della finestra di comando di Windows, poiché la compatibilità del terminale non è abbastanza buona per eseguire tutto il resto che mi piacerebbe in quella finestra, e così via.Posso usare mSysGit e Cygwin's git?

In realtà ho fatto un tentativo con msysgit nella shell dei comandi di Windows in modo che non debba utilizzare una finestra separata per la compilazione, ma questo ha ancora più problemi: la mancanza di e il completamento del file mi sta uccidendo, la maggior parte dei comandi a cui vorrei fare pipì non sono presenti, ecc.

Quindi, se si passa a utilizzare git di Cygwin o, peggio, a utilizzarli entrambi in momenti diversi, i finali di linea vanno a mordimi? Il git di Cygwin si aspetta che tutto sia \n e pensi che stia vedendo dei cambiamenti perché mSysGit è stato convertito in \r\n al momento del check-out? Il git di Cygwin andrà in onda come \n e confonderà il mio Eclipse di Windows, che sono sicuro che voglia che tutto sia \r\n?

+3

Domanda da una parte interessata: hai provato a utilizzare MSYS git da Cygwin? Se è così, funziona? Grazie. – joce

+2

msysgit non è di Cygwin. Ho scoperto che posso usare interscambiabilmente git e msysgit di Cygwin, a condizione che stia attento con le impostazioni come core.autocrlf – skiphoppy

risposta

10

L'approccio più semplice sarebbe quello di impostare qualsiasi git (msysGit o Cygwin git) per ignorare gli stili crlf.

core.autocrlf=false 

In questo modo, non si hanno conflitti indesiderati.

+0

Questo mi ha indirizzato nella giusta direzione, eccetto che penso che quello che devo fare è impostarlo su true da Cygwin. Devo mantenere i terminatori in stile CRLF per compatibilità con altre app di Windows, penso. – skiphoppy

+0

Quale altra app di Windows? Come dice Peter Boughton nella sua risposta, "La maggior parte delle applicazioni moderne (incluso Eclipse) sono perfettamente in grado di utilizzare solo \ n". – VonC

+0

In realtà ho avuto problemi di terminazione di riga con l'utilizzo di versioni diverse di msysGit. L'impostazione esplicita di autocrlf l'ha corretta. –

3

Will git di Cygwin controllare come \ ne confondere il mio Windows Eclipse, che sono sicuro che vuole che tutto sia \ r \ n?

La maggior parte delle applicazioni moderne (incluso Eclipse) sono perfettamente in grado di utilizzare solo \ n.

Ci sono alcune fastidiose eccezioni (ad esempio il protocollo di posta elettronica), ma nella maggior parte dei casi è possibile limitarsi a usare \ n per tutto.

Quindi, come dice VonC, basta disabilitare l'impostazione automatica e andrà tutto bene.

+0

A meno che skiphoppy abbia un contesto molto particolare che richiede l'utilizzo di \ r \ n, sono d'accordo con te. +1 – VonC

1

In realtà, limitarsi a msysGit non ti salverà. Ho avuto un problema in cui ogni singolo file sorgente mostrato come modificato a causa del problema di fine riga quando si utilizza diverse versioni di msysGit. L'impostazione di core.autocrlf nel file di configurazione di git lo ha risolto.

0

Ho mal di testa sulle terminazioni di linea. Sto usando cygwin git, e riporta sempre alcuni file di testo appena estratti come "modificati". Quando ho cambiato "core.autocrlf" da "true" a "input", dieci dei quindici file sono scomparsi dall'elenco modificato e i restanti 5 sono andati via dopo aver impostato "core.autocrlf" su "false".

Non posso votare per la soluzione di VonC a causa della scarsa reputazione ma direi che funziona per me.

0

Ho impostato core.autocrlf su false in msysgit e ho preso qualunque cygwin installato di default.

Ho avuto problemi di controllo da un prompt dei comandi utilizzando gli strumenti cygwin e gli strumenti mingw forniti con msysgit, a causa delle modifiche apparenti nelle modalità file (755 sembravano essere cambiate in 644 in ogni file). Questo sembra essere un problema riguardante il bit eseguibile. git reset non ha aiutato.

Tuttavia, fare il clone iniziale dalla finestra della GUI di msysgit non ha prodotto questo problema, e ora mi sembra di essere libero di usare cygwin sia dalla sua shell bash o da un prompt dei comandi, o da msysgit dalla sua shell bash. In altre parole, tutto sembra felice.

Quindi, se si vedono tutti i file che sembrano cambiare e le terminazioni di linea non sembrano essere la causa del problema, provare a uscire dalla GUI.

0

Dopo aver eseguito il debugging per un po ', l'ho risolto per il mio caso. Ho copiato il file id_rsa da una partizione Linux in modo indiretto lasciando le terminazioni di linea in formato LF (Unix). L'apertura del file in eclissi e la conversione delle terminazioni di riga in Windows hanno risolto questo problema. Inoltre, ho GIT_SSH impostato su Plink (da Putty) seguendo queste istruzioni: http://www.mainelydesign.com/blog/view/git-plink-for-ssh-on-windows