Forum Linux.général problème avec la commande patch avec les fins de lignes

Posté par  .
Étiquettes : aucune
0
27
juil.
2006
Bonjour,

J'ai fait un patch pour un logiciel avec la commande diff, le problème c'est que je ne peux pas l'appliquer avec la commande patch.

En effet, les fichiers sources ont été fait sous windows, la fin de chaque ligne est différente par rapport à linux.

Quand je fait un dos2unix sur un fichier source, le patch s'applique.

Par contre, si je fais un unix2dos sur mon patch, je ne peux pas l'appliquer.

Est-il possible d'expliquer à la commande patch que la fin de ligne est celle de windows ? Avez-vous d'autres idées hormis le fait de convertir tous les fichiers avec dos2unix ?

Merci pour vos réponses.
  • # pistes ?

    Posté par  . Évalué à 1.

    mais tu peux toujours faire un dos2unix sur ton fichier à modifier, le patcher, et faire un unix2dos sur le fichier résultant.

    Sinon, tu peux tenter d'être un peu plus sélectif sur ta conversion des fins de ligne de ton fichier patch. En ne mettant que les lignes de "données" au format dos, ça marchera p-e. Juste une idée comme ça, je n'ai pas testé.
    • [^] # Re: pistes ?

      Posté par  . Évalué à 1.

      le problème c'est que dos2unix n'est pas récursif pour les dossiers, je suis donc obligé de l'executer dans les sous-dossiers moi-même.

      De plus, j'aimerai trouver une solution plus "propre" via la commande patch, malheureusement je n'ai rien vu de tel dans le man, mais je me trompe peut-être.
      • [^] # Re: pistes ?

        Posté par  . Évalué à 1.

        le côté récursif, c'est pas le problème. . find sert typiquement à ça
  • # patch -l

    Posté par  (site web personnel) . Évalué à 3.

    l'option -l (--ignore-whitespace) devrait convenir.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.