J'ai dû déplacer mon espace de travail Eclipse de Linux vers Windows lorsque mon bureau s'est écrasé. Une semaine plus tard, je le recopie sous Linux, je code joyeusement, je m'engage sur CVS. Et hélas, les nouvelles lignes de Windows ont pollué de nombreux fichiers, donc CVS diff vide le fichier entier, même lorsque j'ai changé une ligne ou deux!
Je pourrais préparer un script, mais je me demande s'il va gâcher mes fichiers de projet Eclipse.
Réponses:
Comme mentionné ici et ici :
Astuce : vous pouvez facilement convertir un fichier existant en sélectionnant puis dans l'Explorateur de packages, puis en allant à l'entrée de menu
File : Convert Line Delimiters to : Unix
la source
File : Convert Line Delimiters to : Unix
commande pour "réparer" tous les fichiers du projet à la fois.J'ai eu les mêmes fichiers pollués par éclipse même avec un changement de ligne. Solution: Paramètres git Eclipse -> Ajouter une entrée: Clé: core.autocrlf Valeurs: true
la source
Il existe un utilitaire bash pratique -
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 distribution, devrait pouvoir être facilement installé via un gestionnaire de paquets. Page de manuel dos2unixla source
En plus des solutions Eclipse et de l'outil mentionnés dans une autre réponse , pensez à flip . Il peut «basculer» dans les deux sens entre les sauts de ligne normaux et Windows, et fait de bonnes choses comme préserver l'horodatage du fichier et d'autres statistiques.
Vous pouvez l'utiliser comme ceci pour résoudre votre problème:
(J'ai mis une clause pour ignorer votre répertoire .git, au cas où vous utiliseriez git, mais comme flip ignore les fichiers binaires par défaut, vous n'en aurez peut-être pas besoin.)
la source
find
ne fonctionne pas de cette façon.Vous pouvez essayer. Le problème est que Windows insère un retour chariot ainsi qu'un saut de ligne lorsqu'il reçoit une nouvelle ligne. Les systèmes Unix insèrent simplement un saut de ligne. Ainsi, le caractère de retour chariot supplémentaire pourrait être la raison pour laquelle votre éclipse gâche les nouvelles lignes.
Récupérez un ou deux fichiers de votre projet et convertissez-les. Vous pouvez utiliser Notepad ++ pour ce faire. Ouvrez simplement le fichier, allez dans Format-> Convertir en Unix (lorsque vous utilisez Windows).
Sous Linux, essayez simplement ceci sur une ligne de commande:
la source
sed -i 's/$`echo \\\r`//' yourfile.java
et pour l'automatiserfind . -name "*.java" -exec sed -i 's/$`echo \\\r`//' {} \;
Pour supprimer récursivement les retours chariot (
\r
) des fichiers CVS / * dans tous les répertoires enfants, exécutez ce qui suit dans un shell unix:la source