2009-07-10 4 views
2

Je souhaite générer un récapitulatif des fichiers d'une arborescence qui sont également dans l'autre, qui ont été modifiés dans la seconde.Puis-je utiliser `diff -r` pour me dire les fichiers qui sont dans l'un des arbres qui ont changé dans l'autre?

Le cas d'utilisation est le suivant: J'ai une distribution de produits, qui contient des fichiers de contenu Web. Ces fichiers sont ensuite importés dans un projet spécifique au client et peuvent être modifiés à partir de là. Je souhaite maintenant voir tous les fichiers du projet spécifique au client qui ont été modifiés depuis l'importation du prduct, afin de pouvoir mettre à jour le produit et conserver les modifications spécifiques au client.

Je pense quelque chose comme ça pourrait fonctionner

diff -r productDistribution/WebContent clientProject/WebContent 

Cependant, il y a un certain nombre de fichiers qui sont dans le projet spécifique au client qui ne sont pas dans la distribution des produits, que je ne suis pas préoccupé par dans ce processus. Essentiellement, je veux une «jointure externe», dans le langage SQL.

Idéalement, je veux être en mesure de créer un correctif qui contient toutes les modifications spécifiques au client. Ensuite, je peux juste superposer les nouveaux fichiers de produit, et appliquer le correctif, et je devrais être tout ensemble.

Des idées?

Répondre

2

Par défaut diff imprime une seule ligne pour chaque fichier qui se trouve dans un seul des arbres, il est donc facile de filtrer ces derniers dehors:

diff -r productDistribution/WebContent clientProject/WebContent | \ 
    grep -v 'Only in clientProject' 
+0

Je pensais que cela. J'espérais qu'il y avait un moyen de le faire sans ce post-traitement, mais sinon, alors cela répond à ma question. – pkaeding

+0

Je ne pense pas que le post-traitement soit évitable. Au moins la page de manuel pour diff que je regarde n'inclut pas une option pour ignorer les fichiers sans contrepartie. –

Questions connexes