Comment utiliser les patchs créés dans windows (avec CRLF) sous linux?J'
Standard de linux patch codée en dur uniquement pour les fichiers texte unix.
PS: je ne souhaite pas convertir TOUS les unix et puis convertir le résultat en retour.
Va la commande dos2unix fixer le fichier?
problème peut être résolu par la conversion de TOUTES les sources d'unix et après la conversion en arrière. mais il la suce.
Pourquoi avez-vous (apparemment beaucoup de) fichiers texte avec CRLF les fins de ligne sur un système Unix?
sources pour les BRAS qui, auparavant, de la croix-développé sur win32.
problème peut être résolu par la conversion de TOUTES les sources d'unix et après la conversion en arrière. mais il la suce.
Pourquoi avez-vous (apparemment beaucoup de) fichiers texte avec CRLF les fins de ligne sur un système Unix?
sources pour les BRAS qui, auparavant, de la croix-développé sur win32.
OriginalL'auteur vitaly.v.ch | 2010-01-16
Vous devez vous connecter pour publier un commentaire.
Utiliser l'option --option binaire. Voici les extrait de la page de man:
Semble étrange que les "patch < fichier.patch" et "patch -R < fichier.patch" ne permet pas de restaurer les fichiers vers leur état d'origine. Quelles ont été les auteurs de diff et patch pense quand ils ont décidé que c'était la chose à faire? Merci bien, "patch --binary < fichier.patch" et "patch -R --binary < fichier.patch" n'restaurer les fichiers à leur état d'origine, les fins de ligne et de tous.
OriginalL'auteur Ben in Seattle
J'ai rencontré ce problème avant quelques temps. C'est ce que j'ai découvert:
C'est donc ce que j'ai fait:
Vous pouvez utiliser unix2dos pour convertir les fichiers corrigés retour à la ligne CRLF-terminaisons si vous voulez maintenir que la convention.
OriginalL'auteur cscrimge
Combiné:
La dernière ligne dépend de si vous voulez garder le CRLFs ou pas.
M.
PS. Cela aurait été une réponse à cscrimge post. DS.
OriginalL'auteur Martin
perl -i.bak -pe's/\R/\n/g' inputfile
de convertir tous les caractères de fin de ligne à la norme.Il répond à la question dans le titre si le diff est basé sur les lignes, comme ils le sont généralement.
OriginalL'auteur Anonymous
C'est une solution de l'un de nos gars est venu dans notre bureau, donc je ne suis pas prendre le crédit pour cela, mais cela fonctionne pour moi ici.
Nous avons une situation mixte linux et windows fins de ligne dans le fichier même parfois, et nous avons également créer des fichiers de correctifs de windows et de les appliquer sur linux.
Si vous rencontrez un patch problème après la création de votre fichier de correctif sur windows ou mixtes avec des fins de ligne, puis faire ceci:
dos2unix patch-file
dos2unix $(sed -n 's/^Index: //p' patch-file)
patch -p0 -i patch-file
OriginalL'auteur Curg