2010-10-28 28 views
4

Est-il possible d'ajouter un répertoire complet via diff et patch?Ajout du répertoire complet via diff & patch

Il semble très pratique d'ajouter des modules supplémentaires en plus de la base de code standard.

J'ai recherché des solutions, mais elles fonctionnent généralement au niveau du fichier, pas au niveau du répertoire.

Merci.

+0

Avez-vous simplement essayé de "créer" un fichier dans un sous-dossier avec un correctif? – levu

+0

Cela fonctionne, mais j'avais besoin de créer une structure de répertoire complète. – SyBer

Répondre

3

me répondre:

diff -urPp old_dir/new_dir /> new_module.patch

semble faire l'affaire.

+1

Merci! Juste ce que je voulais. Dans le cas où cela aiderait quelqu'un d'autre, utilisez '--exclude = PATTERN' pour exclure des choses comme les répertoires CVS, et vous pouvez appliquer ce correctif à un répertoire entier avec' patch -p1 spacemanaki

2

Deux suggestions rapides - doivent aider

  1. Vous devez le drapeau -r | --recursive

  2. Vous avez probablement besoin aussi --unidirectional-new-file ou -N | --new-file.

comme j'ai fait ce que vous avez en tête ici.

+0

Merci, cela semble fonctionner, bien que -P donne un peu plus de contrôle pour éviter les erreurs accidentelles. – SyBer

+0

Oui, j'ai essayé d'aider rapidement. J'ai des exemples d'invocations à la maison qui sont probablement plus proches de ce que vous avez fini. Exclure CVS/SVN est également utile. –

0

étapes ci-dessous fonctionnera

  1. Prendre Patch entre l'ancien code source et le nouveau code source (nouveaux fichiers + nouveaux répertoires) diff -urPp old_src new_src> new.patch
  2. créer un répertoire temporaire mkdir température
  3. copie le répertoire ancien code source d'origine dans le répertoire temp cp -r old_src temp
  4. copie le fichier correctif dans le répertoire temp créé cp new.patch Temp
  5. changer de répertoire cd temp
  6. appliquez le patch correctif -p0 < new.patch

maintenant tous les patchs serait appliqué avec les changements de fichiers + nouveaux fichiers + ajout de répertoire dans le répertoire temporaire