J'ai une copie de travail d'un référentiel sur ma machine et je sais qu'elle a été mise à jour sur le serveur. Je voudrais savoir comment faire la différence entre la nouvelle version et la version dans ma copie de travail en utilisant les arguments de ligne de commande svn
.
Y a-t-il un moyen pour moi de le faire?
La copie de travail est la révision BASE. La dernière copie du référentiel est la révision HEAD. Cela comparera votre copie de travail avec la révision HEAD:
svn diff -r HEAD <file>
En fait, cela va cracher les changements à l'envers, c'est-à-dire qu'il vous indique comment passer de HEAD à BASE. Donc, techniquement, vous voulez:
svn diff -r BASE:HEAD <file>
Pouvez-vous épargner les coups de clavier? Seuls vous et votre divinité connaissez cette réponse.
La différence entre copie de travail et HEAD
; les modifications qui devraient être apportées à ce qui est maintenant dans le dépôt (HEAD
), pour produire votre copie de travail:
svn diff -r HEAD --old=<file>
D'un intérêt possible, la différence entre BASE
et HEAD
; les modifications qui ont été archivées dans le référentiel depuis la dernière mise à jour copie de travail:
svn diff -r BASE:HEAD <file>
Et bien sûr la différence entre BASE
et copie de travail; les modifications que vous avez apportées depuis la dernière mise à jour copie de travail:
svn diff <file>
Il existe trois versions en cours de discussion: BASE
, copie de travail et HEAD
.
BASE
: <file>
comme dernière extraction/mise à jour. À quoi copie de travail reviendrait après avoir utilisé svn revert
<file>
qui a été extrait/mis à jour aussi récemment que BASE
HEAD
: dernières modifications dans le référentiel. Équivalent à BASE
iff aucune modification n'a été validée depuis <file>
a été extrait/mis à jour sous la forme copie de travail.