2009-07-07 7 views
3

J'essaie de composer une liste de fichiers modifiés/ajoutés dans un référentiel svn, à utiliser avec phing, en utilisant la commande suivante.Ordre de la gamme de révision svn diff

svn diff --no-diff-deleted --summarize -r 50:HEAD path/to/workingcopy 

Quand j'inverse la plage de révision (commutateur -r), comme suit:

svn diff --no-diff-deleted --summarize -r HEAD:50 path/to/workingcopy 

.. J'obtenir des résultats différents. Bien que ce soit le comportement dont j'ai besoin, je ne le comprends pas (et il me manque peut-être quelque chose). Exemple:

En supposant que la révision de la tête comporte un nouveau répertoire avec certains fichiers: La deuxième commande affichera uniquement le nouveau répertoire, tandis que la première commande listera également tous les nouveaux fichiers qu'elle contient. Au moins, c'est ce que je pense qu'il fait après quelques tests.

Je n'ai pas trouvé de documentation claire sur ce sujet. Quelqu'un peut-il expliquer ce que l'ordre de la gamme de révision implique? Merci!

Répondre

6

Dans le premier cas, vous obtiendrez tous les changements effectués entre la révision 50 et Head. C'est ce que vous attendez naturellement, donc je ne vais pas m'expliquer davantage. La gamme inverse, cependant, est un peu plus intéressant. C'est le diff que vous devez appliquer à Head pour obtenir la révision 50. En bref, il spécifie comment annuler toutes les modifications qui ont été effectuées. Vous dites que la "seconde commande ne listera que le nouveau répertoire", ce qui est correct: il vous dit de supprimer le répertoire, ce qui va naturellement supprimer son contenu.

Questions connexes