web-dev-qa-db-fra.com

Vérifier la différence avec le fichier sur le serveur

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?

73
Mantas Vidutis

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.

113
John Kugelman

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
  • copie de travail: modifications locales de <file> qui a été extrait/mis à jour aussi récemment que BASE
  • HEAD: dernières modifications dans le référentiel. Équivalent à BASEiff aucune modification n'a été validée depuis <file> a été extrait/mis à jour sous la forme copie de travail.
17
Chadwick