web-dev-qa-db-fra.com

Comment corriger le "style de fin de ligne incohérent svn"?

Quand je lance "svn propedit svn: ignore". à la racine de mon référentiel svn, j'obtiens cette erreur: svn: style de fin de ligne incohérent

J'ai essayé d'exécuter ce script: http://blog.eflow.org/archives/130 qui exécute dos2unix et définit le style eol sur tous les fichiers, mais le problème persiste toujours. Une idée de ce qui pourrait être faux?

37
Kelvin

Subversion ne se plaint pas du contenu d'un fichier, mais du contenu de la propriété svn: ignore. Une solution consiste à supprimer la propriété svn:ignore avec svn propdel, puis à la recréer. 

Une autre façon qui peut être plus facile si vous avez beaucoup de lignes dans votre svn:ignore:

  1. récupère la valeur de svn: ignore dans un fichier temporaire .__ comme ceci:

    svn propget svn:ignore . > temp

  2. corriger les fins de ligne dans le fichier temp
  3. définissez la valeur de svn: ignore à partir du fichier corrigé comme this:

    svn propset svn:ignore -F temp .

17
Wim Coenen

Dans mon cas, la propriété svn:eol-style était définie sur un fichier . Et "certaines lignes du fichier étaient séparées par des fins de ligne UNIX (caractère LF), tandis que d'autres étaient séparées par des fins de ligne de style DOS (caractères CR + LF)" . Ici est une autre discussion détaillée de ce problème.
"Edit"->"EOL Conversion"->"Windows format" dans Notepad ++ a résolu le problème pour moi.

39
evgeny9

Dans mon cas, je montais sous Windows . Pour corriger:

  1. Ouvrir le fichier dans Notepad ++
  2. Convertir la ligne se terminant en Unix (menu Edition -> Conversion EOL -> Unix)
  3. Sauvegarder
  4. Convertir les fins de ligne en Windows (menu Edition -> Conversion EOL -> Windows)
  5. Sauvegarder

Cela l'a fait.

25
Marius Matioc

Fonctionnement 

unix2dos [file]

via cygwin a corrigé cela pour moi.

8
gollumullog

Mon problème était que je obtenais ceci dans Visual Studio.NET. Pour résoudre ce problème, j'ai copié tout le texte du fichier dans le bloc-notes et je l'ai sauvegardé du bloc-notes dans "xxx.aspx" ou le nom de fichier approprié. Ensuite, dans Visual Studio, on m'a demandé de recharger un fichier modifié, et voilà - une boîte de dialogue me demandant si je souhaite normaliser les fins de ligne. Problème résolu.

4
Amos Van Horn

Si cela se produit uniquement avec un ou deux fichiers, vous pouvez également ouvrir le fichier, copier et coller le contenu dans un nouveau fichier (avec un éditeur de texte normal), puis l'enregistrer. Ce fichier peut ensuite être ajouté (renommer ou déplacer pour lui donner le nom correct).

J'ai eu cette erreur, mais il s'est avéré que le fichier manquant la dernière fin de fichier (dernière ligne incomplète).

Corriger cela en ouvrant le fichier dans VI et en l’enregistrant le résolvait.

1
Geir Engebakekn

vi ne m'a pas montré la mauvaise ligne, j'ai donc supprimé la fin des lignes de la section de commentaire, je les ai lues (jusqu'à FIN) et ai sauvegardé le fichier. cela a fonctionné après cela.

REMARQUE: sauvegardez votre fichier revprop avant de le peaufiner. si vous y échouez, pas de retour en arrière

1
Isaac

Le script a-t-il définitivement touché chaque fichier texte (en supposant que vous ayez déjà installé dos2unix, sinon ce serait pourquoi ...)?

L'autre chose à laquelle je peux penser est de vérifier que tous les fichiers ont leur type mime défini correctement (vous n'avez pas de fichier binaire qui est en quelque sorte marqué comme un fichier texte archivé, peut-être?).

Cela dit, si vous êtes dans un environnement multi-OS, j'estime que ce n'est pas une bonne idée de définir CRLF sur svn: eol-style comme décrit dans l'article de blog ci-dessus si vous partagez et modifiez des fichiers texte entre systèmes d'exploitation. Parce que si vous le faites de cette façon, les fichiers qui semblent OK dans Windows sont jonchés de caractères de contrôle dans Unix. Mieux vaut utiliser «natif» comme style EOL.

1
Timo Geusch

J'ai reçu le même message d'erreur lorsque je tentais de svn propset eol-style:native un fichier PHP dans emacs. J'espère donc que cela aidera quelqu'un qui atteint cette question.

J'ai eu quelque chose comme ce qui suit:

str_replace('</li>^M<br>', '</li>', $text);

^M est un caractère unique (échappement caret pour le retour de voiture).

Le correctif consistait à changer cette ligne en son équivalent:

str_replace("</li>\r<br>", '</li>', $text);

Notez les guillemets doubles au lieu de guillemets simples!

0
EoghanM

Si vous l'obtenez en faisant le propedit, il me semble alors que SVN se plaint du format du fichier texte que vous utilisez pour les propriétés!

Sur quel OS êtes-vous? Quel éditeur utilisez-vous pour propedit? Si la commande propedit lance toujours un éditeur, j'utiliserais cet éditeur pour vérifier les fins de ligne qui y sont (vi fait ce code IIRC).

0
ShiDoiSi

Dans mon cas, l'erreur est survenue car le fichier contenait le codage "UCS-2 LE BOM". Les fichiers avec ANSI étaient ok. J'ai vérifié les fins de ligne, dans tous les fichiers, ils étaient corrects .. Il semble que (du moins dans ma version SVN) les fichiers de caractères larges ne sont parfois pas reconnus correctement.

La solution la plus simple consiste à supprimer la propriété "svn: eol-style".

0
David Gausmann

Dans NetBeans, vous pouvez utiliser le plug-in " Afficher et modifier les fins de ligne ".

Après l'installation et le redémarrage de NetBeans, le style de fin de ligne apparaît à droite de la barre d'état. Vous pouvez cliquer dessus et sélectionner la fin à laquelle vous voulez convertir le fichier.

NetBeans Show and change line endings plugin

0
Jasper de Vries

J'ai eu le même problème lors de l'exécution de javadoc via une tâche Ant sur une machine Windows.

Je l'ai corrigé en ajoutant <fixcrlf srcdir="${dir.javadoc}" eol="dos"/> en dessous de la tâche javadoc ant.

0
Franck de Bruijn

Comme 'Marius Matioc' suggéré ci-dessus, ce serait une solution facile et rapide1.Fichier ouvert dans le Bloc-notes ++ 2.Menu Éditer -> Conversion EOL -> Unix 3.Enregistrer 4. Éditer menu -> Conversion EOL -> Windows5.Enregistrer

0
Ramakrishna Talla

Pour mac osx, j'ai eu cette erreur pour un fichier et j'ai dû le convertir en utilisant dos2mac puis mac2unix. Une fois que j’ai fait cela, le problème concernant les fins de ligne qui s’est plaint a été résolu.

0
Ray Hunter

Pour convertir systématiquement les fins de ligne Windows en UNIX à l'aide de Perl (1):

Perl -p -i.bak -e 's#\r\n#\n#go' my-file.txt

Pour reconvertir UNIX en Windows:

Perl -p -i.bak -e 's#\n#\r\n#go' my-file.txt
0
Sean

Cela me gênait depuis si longtemps de travailler avec une équipe multi-système avec SVN . J'ai créé cette application utile qui navigue dans un dossier avec des sous-dossiers recherchant des fichiers texte et convertit tous les fichiers UNIX EOL en DOS EOL . C’est une application AIR qui fonctionne sous Windows et Mac . Espérons que cela vous aidera

http://www.pippoflash.com/index.php/2012/06/11/svn-error-inconsistent-line-style-nightmare-solved-download-app/

Filippo

0
PippoApps.com

J'ai eu un même problème dans une archive qui fonctionnait bien avant. Dans Notepad ++, j'ai choisi le format de conversion en UTF-8. Cela a fonctionné pour moi.

0
Douglas

Le problème est survenu après des modifications dans plusieurs fichiers texte, de sorte que seuls \n soient ajoutés pour séparer certaines lignes, alors que normalement \r\n termine chaque ligne. Ainsi, le correctif consistait à utiliser Notepad ++ pour Find ([^\r])\n Et le remplacer par $1\r\n. Ainsi, les caractères de fin de ligne étaient cohérents partout.

0
Bizmarck