Domanda

Sono in esecuzione un ambiente misto, e tenere un centrale, repository nudo dove mi tirare e spingere la maggior parte delle mie cose. Questo centralizzato corre repository su Linux, e io check-out per Windows XP / 7, Mac e Linux. In tutti i repository ho messo la seguente riga nel mio .git / config:

[core]
     autocrlf = true

Non ho l'ovunque bandiera safecrlf=true. La prima volta quando modifico roba sulla mia una macchina Windows (XP) non c'è nessun problema e quando guardo il diff, si guarda bene. Ma quando faccio lo stesso sull'altra macchina di Windows (7), tutte le linee vengono mostrate come cambiato, ma la fine della riga locali sono \ r \ n come previsto (quando il check-in un editor esadecimale). Lo stesso vale per una lattina MacOSX. A volte ho la sensazione che i diversi sistemi di lottare sulle terminazioni di linea, ma non posso essere sicuro (sto perdendo traccia di tutti i tempi a cambiare file specifici).

non ho usato per avere il set autocrlf, ma impostare il flag di molti mesi fa. Che potrebbe essere la causa dei miei problemi attuali? Ho bisogno di clone di nuovo tutto per perdere un po 'vecchio bagaglio? Oppure ci sono altre cose che le esigenze configurazione troppo? Ho provato git checkout -- . circa un milione di volte, ma senza successo.

È stato utile?

Soluzione

È necessario autocrlf insieme a true su ogni macchina si sta lavorando (in globale), o per ogni copia del repository (in locale). Le impostazioni del pronti contro termine si clonato da non si applicano al tuo repo locale.

L'altra risposta è che avete una miscela di fine riga nei file nel repository.

Un filtro sulla cassa potrebbe essere impostato per ogni del tipo di file di origine per correggere i loro fine riga, e il check-in a loro ripristinare lo standard di pronti contro termine.

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