Eclipse et Windows newlines

J’ai dû déplacer mon espace de travail Eclipse de Linux vers Windows lorsque mon bureau est tombé en panne. Une semaine plus tard, je le recopie sous Linux, code heureusement, engage dans CVS. Et hélas, les nouvelles lignes de Windows ont pollué de nombreux fichiers, donc CVS ​​diff sauvegarde tout le fichier, même lorsque j’ai changé une ligne ou deux!

Je pourrais préparer un script, mais je me demande si cela va gâcher mes fichiers de projet Eclipse.

Comme mentionné ici et ici :

Définissez le codage de fichier sur UTF-8 et les fins de ligne pour les nouveaux fichiers sous Unix, afin que les fichiers texte soient enregistrés dans un format qui n’est pas spécifique au système d’exploitation Windows et le plus facilement partagé entre les bureaux de développeur hétérogènes:

  • Accédez aux préférences de l’espace de travail (Général: espace de travail)
  • Changer le codage de fichier texte en UTF-8
  • Remplacez le délimiteur de ligne du nouveau fichier texte par Autre et choisissez Unix dans la liste de sélection.

texte alt

  • Remarque: pour convertir les fins de ligne d’un fichier existant, ouvrez le fichier dans Eclipse et choisissez File : Convert Line Delimiters to : Unix

Conseil : Vous pouvez facilement convertir un fichier existant en le sélectionnant dans l’Explorateur de packages, puis en accédant à l’entrée de menu File : Convert Line Delimiters to : Unix

J’ai eu le même, les fichiers pollués éclipse même avec un changement de ligne. Solution: Eclipse git settings -> Ajouter une entrée: Key: core.autocrlf Valeurs: true

entrer la description de l'image ici

entrer la description de l'image ici

Il y a un utilitaire pratique bash – dos2unix – qui est un convertisseur de format de fichier texte DOS / MAC vers UNIX, qui s’il n’est pas déjà installé sur votre dissortingbution, devrait pouvoir être facilement installé via un gestionnaire de paquets. page de manuel de dos2unix

En plus des solutions Eclipse et de l’outil mentionné dans une autre réponse , considérez flip . Il peut «basculer» entre les sauts de ligne normaux et Windows, et permet de conserver l’horodatage du fichier et d’autres statistiques.

Vous pouvez l’utiliser comme ça pour résoudre votre problème:

 find . -type f -not -path './.git/*' -exec flip -u {} \; 

(Je mets une clause pour ignorer votre répertoire .git, au cas où vous utilisez git, mais comme flip ignore les fichiers binarys par défaut, vous n’en aurez peut-être pas besoin.)

Vous pourriez essayer. Le problème est que Windows insère un retour chariot ainsi qu’un saut de ligne s’il reçoit une nouvelle ligne. Les systèmes Unix insèrent simplement un saut de ligne. Donc, le caractère de retour de chariot supplémentaire pourrait être la raison pour laquelle votre éclipse perturbe les nouvelles lignes.

Prenez un ou deux fichiers de votre projet et convertissez-les. Vous pouvez utiliser Notepad ++ pour le faire. Ouvrez simplement le fichier, allez dans Format-> Convertir en Unix (lorsque vous utilisez Windows).

Sous Linux, essayez ceci sur une ligne de commande:

 sed 's/$'"/`echo \\\r`/" yourfile.java > output.java 

Pour supprimer récursivement les retours chariot ( \r ) des fichiers CVS / * de tous les répertoires enfants, exécutez la commande suivante dans un shell unix:

 find ./ -wholename "\*CVS/[RE]\*" -exec dos2unix -q -o {} \;