9
votes

Perforce a changé la fin des lignes

J'ai eu un projet sur Mac et l'a téléchargé sur un serveur Perforce. Lorsque j'ai eu le projet de PC, toutes les fins de ligne ont été modifiées et que cela ne compile pas sur PC. Existe-t-il un moyen de changer automatiquement les fins de la ligne comme avant ou que je dois soumettre à nouveau tout le projet de Windows? Y a-t-il un moyen de faire performer pour garder mes fichiers comme ils sont? Je ne veux vraiment pas avoir des modifications stupides dans mes fichiers source.

Merci!

EDIT:

Cela a à voir avec Perforce, je viens de modifier 10-20 fichiers sur Mac pour créer un projet multiplateforme pour compiler. Les autres fichiers 140K n'ont pas été modifiés et ne sont même pas ouverts sur Mac (ils ont été ouverts par compilateur pour les compiler: p). Si je copie le projet sur PC, les terminaisons de ligne sont correctes.


3 commentaires

Je ne pense pas que la perforce n'a rien à voir avec ça. Vous avez dit que votre projet était sur un Mac. Probablement vos éditeurs de texte MAC ont sauvegardé les fichiers avec des terminaisons de ligne Mac que vous avez enregistrées à la perforce. Maintenant, si vous les synchronisez sur Windows, ils sortent inchangés - au format Mac d'origine. Vous devez avoir besoin de penser à quel format préférez-vous - Windows ou Mac? puis vérifiez vos fichiers de manière appropriée.


Les terminaisons de ligne sont correctes, le projet a été créé sur PC et copié sur Mac pour le rendre compilé. Je n'ai jamais changé la plupart des fichiers sur Mac.


@ D-LIVE, j'ai un problème similaire à OP en ce moment. Il semble que la perforce change vos fins de ligne elles-mêmes et, en fonction de ses paramètres, il le fait à la fois lorsque vous soumettez des fichiers et que vous les obtiendrez.


3 Réponses :


-1
votes

Cela n'a rien à voir avec perforce, bien qu'il gère le problème.

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

Les terminaisons de ligne sur les machines Unix, PC et Mac sont toutes différentes. C'est ce que vous voyez. Transférer le même fichier entre PC et Mac sur tout support aurait les mêmes résultats. Vous pouvez probablement définir votre éditeur sur le Mac pour enregistrer le fichier avec des terminaisons de ligne Windows si vous souhaitez vous déplacer d'une autre manière.

J'étais tort "Perforce traite tous les fichiers texte à l'aide de la ligne de ligne LF de style UNIX". Je vérifiais la valeur de la figure de cliente P4 (doit être locale sur les deux machines, je pense) et vous assurer que vous utilisez une version de P4> = 2001.1


3 commentaires

Cela concerne Perforce, je viens de modifier 10-20 fichiers sur Mac pour créer un projet multiplateforme pour compiler. Les autres fichiers 140K n'ont pas été modifiés et ne sont même pas ouverts sur Mac (ils ont été ouverts par compilateur pour les compiler: p). Si je copie le projet sur PC, les terminaisons de ligne sont correctes.


Ouais désolé. Il suffit de lire "Perforce traite tous les fichiers texte à l'aide de la ligne de ligne LF de style UNIX". Utilisez-vous une version de perforce> 2001.1? Avez-vous vérifié ce que votre client P4 Client "Lineend" est?


Mon -1 est dû au fait que la seule partie de cette réponse est correcte, c'est "les terminaisons de ligne sur UNIX, PC et les machines Mac sont toutes différentes." Le reste est faux. Il existe un paramètre de perforce qui lui permet de traiter tous les fichiers texte avec des fins UNIX, mais il existe également d'autres paramètres.



8
votes

Les terminaisons de ligne pour les fichiers texte sont contrôlées par le paramètre de spécification client. Vous devez vous assurer que la valeur «lineend» de votre client est définie correctement. En général, cela devrait être laissé à «local» qui devrait faire la bonne chose pour tout système d'exploitation que vous utilisez.

Cela dit, selon la manière dont cette valeur a été définie sur votre Mac lorsque vous avez initialement téléchargé les fichiers, je suppose qu'il pourrait y avoir un problème lors de la synchronisation de ces fichiers sur votre PC.

Je vérifierais pour vous assurer que la liste est définie sur "local" pour vos clients. Il y a une note sur le site de la base de connaissances perforce ici qui parle plus en profondeur des paramètres appropriés pour les clients Macintosh. Cela pourrait être un endroit pour commencer également à vous assurer que vous avez des choses correctement configurées sur votre Macintosh.


2 commentaires

La manipulation de la ligne de la ligne de perforce est tracée brisée. Aucun de ses modes ne fait ce qui est décrit dans la documentation de perforce. Dans de nombreux cas, le comportement est de transformer "CRLF" en "CRCLLF"


J'ai essayé de résumer la documentation (déroutante), s'il vous plaît aider à revoir: