2011-04-14 13 views
8

Avevo un progetto su Mac e l'ho caricato su un server perforce. Quando ho preso il progetto dal PC tutte le terminazioni di riga sono state cambiate e ora non si compila su PC. C'è un modo per cambiare automaticamente le terminazioni di linea come erano prima o devo inviare nuovamente tutto il progetto da Windows? C'è un modo per rendere necessario mantenere i miei file COME SONO? Non voglio davvero avere modifiche stupide nei miei file sorgente.Perforce ha cambiato le terminazioni di linea

Grazie!

EDIT:

Ha a che fare con per forza, ho appena modificato 10-20 file su Mac per fare un progetto multipiattaforma per compilare. Il resto dei file 140k non sono stati modificati e nemmeno aperti su Mac (sono stati aperti dal compilatore per compilarli: P). Se copio il progetto su PC le terminazioni di linea sono ok.

+0

non penso necessariamente ha nulla a che fare con esso. Hai detto che il tuo progetto era su un Mac. Probabilmente i tuoi editor di testo MAC hanno salvato i file con le terminazioni di linea MAC che hai registrato per forza. Ora se li sincronizzi su Windows ne usciranno invariati - nel formato originale Mac. Hai bisogno di pensare a quale formato preferisci: Windows o Mac? e quindi controllare i file in modo appropriato. –

+1

Le terminazioni di riga sono ok, il progetto è stato creato su PC e copiato su Mac solo per renderlo compilabile. Non ho mai cambiato la maggior parte dei file su Mac. – Felics

risposta

8

Le terminazioni di riga per i file di testo sono controllate dall'impostazione delle specifiche del client. È necessario assicurarsi che il valore 'LineEnd' del client sia impostato correttamente. In generale, questo dovrebbe essere lasciato a "locale" che dovrebbe fare la cosa giusta per qualsiasi sistema operativo che si sta utilizzando.

Detto questo, a seconda di come questo valore è stato impostato sul tuo Mac quando hai originariamente caricato i file, suppongo che potrebbe esserci qualche problema durante la sincronizzazione di questi file sul tuo PC.

Vorrei verificare che LineEnd sia impostato su "locale" per i client. C'è una nota sul sito di Perforce Knowledge Base here che parla in modo più approfondito delle impostazioni corrette per i client Macintosh. Potrebbe essere anche un punto di partenza per assicurarti di avere le cose correttamente configurate sul tuo Macintosh.

+0

La gestione della fine della riga di Perforce è completamente interrotta. Nessuna delle sue modalità fa ciò che è descritto nella documentazione di perforce. In molti casi il comportamento è trasformare "CRLF" in "CRCRLF" – Richard1403832

0

Questo non ha nulla a che fare con perforce in realtà, anche se gestisce il problema.

http://kb.perforce.com/article/63

terminazioni di linea su UNIX, PC e Mac macchine sono tutte diverse. Questo è ciò che stai vedendo. Il trasferimento dello stesso file tra PC e Mac su qualsiasi supporto avrebbe gli stessi risultati. Probabilmente puoi impostare il tuo editor sul Mac per salvare il file con terminazioni di linea di Windows se vuoi aggirare in un altro modo.

Mi sono sbagliato "Perforce elabora tutti i file di testo utilizzando terminazioni di linea LF in stile Unix". Verifico il valore di LineEnd del client p4 (dovrei essere locale su entrambe le macchine) e assicurati di utilizzare una versione di p4> = 2001.1

+1

Ha a che fare con perforce, ho appena modificato 10-20 file su MAC per creare un progetto multipiattaforma da compilare. Il resto dei file 140k non sono stati modificati e nemmeno aperti su Mac (sono stati aperti dal compilatore per compilarli: P). Se copio il progetto su PC le terminazioni di linea sono ok. – Felics

+0

Sì, mi dispiace. Basta leggere "Perforce elabora tutti i file di testo usando i line-end LF in stile Unix." Stai usando una versione perforata> 2001.1? Hai controllato per vedere qual è il valore "LineEnd" del tuo client p4? – olan

1

Sì, è possibile. L'uso di terminazioni di linea Unix per entrambi i client dirà ai client di perforazione di lasciare i file invariati rispetto al modo in cui sono stati inviati. È possibile anche configurare un trigger sul server per forzare in questo modo, rimando al mio risposta a questa domanda:

Setting Perforce line endings

Problemi correlati