6
votes

Problèmes avec WINSCP avec style de fin de ligne sur Ubuntu Linux lors de l'utilisation de SVN DIFF

Mes fichiers sont sur un serveur Ubuntu Linux distant. Lorsque je télécharge les fichiers et modifiez-le dans l'éditeur de texte WINSCP ou le bloc-notes ++, le style de fin de ligne passe à Windows. Donc, lorsque je redoublis le fichier à Ubuntu, les lignes sont éteintes et SVN Diff pense que chaque ligne a changé.

FYI, je modifie le fichier en double-cliquant sur le fichier dans WINSCP. Ce programme lance le fichier dans l'éditeur. Chaque fois que je sauvegarde, le fichier est automatiquement copié sur le serveur Linux.

Comment puis-je empêcher le problème de style de fin de ligne?


3 commentaires

Voulez-vous dire des nouvelles lignes au lieu de blouses? Avez-vous un éditeur compatible UNIX NeufLines, ou du moins, est-il configuré pour autodétecter les nouvelles lignes et agir en conséquence?


Je ne suis pas sûr de si ses nouvelles lignes ou des espaces bleus. Vous pourriez avoir raison, ce sont peut-être des lignes neuves. Comment modifiez-vous l'éditeur par défaut pour être un éditeur compatible NewLines? Je peux utiliser Notepad ++.


J'ai essayé de changer le fichier pour utiliser le caractère UNIX EOL dans le bloc-notes ++, mais le DIFP SVN a toujours pensé que chaque ligne a changé


7 Réponses :


3
votes

fait Ce fil aide? Plus précisément cette partie:

De cela, il me semble que vous avez forcé WINSCP à utiliser le transfert de mode texte, qui implique la conversion UNIX-> DOS. Vient de forcer le mode binaire pour éviter la conversion.


1 commentaires

Cela n'a pas fonctionné pour moi. Cela n'a également pas fonctionné pour la personne sur le fil de ce que je peux dire.



2
votes

Je n'ai pas pu comprendre pourquoi j'avais la question de l'espace blanche, mais j'ai pu comprendre comment ignorer les suites d'espaces.

Vous pouvez utiliser: p>

svn diff -x'-uw --ignore-eol-style'


1 commentaires

Vous ignorez réellement les fins de ligne, alors vous ne résolvez pas votre problème d'origine.



1
votes

Vous devez utiliser le format de ligne UNIX. Pour définir cela, allez à Paramètres> Préférences et sélectionnez l'onglet "Nouveau documents / défauts". Recherchez "Format" dans le "nouveau document" Contrôles et sélectionnez "Unix". Cela garantira que tout nouveau document a le format correct. J'ai utilisé cela avec un serveur Linux distant et n'ai pas vu de problème.

Typiquement, le fichier retourné serait créé avec un nom temporaire et les modifications qui y sont écrites. Le fichier d'origine serait alors supprimé et le nouveau fichier renommé pour prendre sa place. Cela rendrait le fichier retourné un "nouveau" document afin que ce paramètre de préférence devrait donner le format correct.


0 commentaires

0
votes

Si vous utilisez le transfert de mode texte / ASCII avec WINSCP, il convertirait le style de fin de ligne vers UNIX sur le téléchargement.

Donc, je suppose que le problème peut être que votre dossier dispose d'un style de fin de ligne Windows initialement. Sur le téléchargement, rien ne change, mais sur le téléchargement, il est converti en style UNIX.

soit corriger votre fichier pour utiliser le style UNIX, car il se doit (si tel est le cas) ou utilisez le mode de transfert binaire.

Non seulement vous devez configurer le mode de transfert binaire pour WINSCP en général (quelle est la valeur par défaut dans les versions récentes de WINSCP), mais vous devez également vous assurer que l'option de préférence force de transfert de texte de force pour les fichiers édités Dans Editeur externe pour votre éditeur externe (Notepad ++) est OFF:
https://winscp.net/eng/docs/ui_editor_preferences

Notez que cette option n'est pas disponible pour l'éditeur interne WINSCP. Avec des fichiers informatiques sont toujours transférés dans le mode texte / ASCII.


0 commentaires

0
votes

J'utilise NOTPAND2 et WINSCP pour modifier des fichiers sur Windows et Server sont sous Linux.

Dans mon cas, le problème était avec la connexion WINSCP elle-même.

J'ai cliqué sur "Modifier" avant la connexion, puis "Avancé" Il y avait une option pour les caractères de fin de ligne. Changer cela a résolu le problème dans mon cas.

L'option à l'écran est déjà celle qui a fonctionné. Ealier Il y avait "LF" seulement.

Entrez la description de l'image ici


0 commentaires

1
votes

La solution simple et appropriée à ce problème peut être effectuée en entrant dans la configuration de votre éditeur externe dans WINSCP

in: Voir> Préférences> Éditeurs

Sélectionnez votre éditeur externe et cliquez sur Modifier ...

Ensuite, décochez la case: Mode de transfert de texte de force pour les fichiers édités dans l'éditeur externe


0 commentaires

0
votes

Ceci est un complément à la réponse de Djidiouf.

  1. aller à winscp (ver.5.17.9) Options-> Préférences-> Editors
    Décocher Mode de transfert de test de force pour les fichiers édités dans l'éditeur externe Décocher le mode de transfert de test de force pour les fichiers édités dans l'éditeur externe

  2. aller à Session-> Advanced-> Environnement-> Caractères de fin de ligne
    Sélectionnez lf LF doit être sélectionné

  3. essayer de tirer un fichier de serveur, vérifiant sa syle eol Notepad ++


0 commentaires