2010-09-22 12 views
68

J'ai une copie de travail d'un dépôt sur ma machine, et je sais qu'il a été mis à 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 svn arguments de ligne de commande.Vérifiez diff par rapport au fichier sur le serveur

Y a-t-il un moyen pour moi de faire cela?

+0

voir aussi http://superuser.com/questions/150213/subversion-how-to-compare-differences-between-incoming-changes~~V~~singular~~3rd – craq

Répondre

104

La copie de travail est la révision BASE. La dernière copie du référentiel est la révision HEAD. Cela permettra de comparer votre copie de travail contre la révision HEAD:

svn diff -r HEAD <file> 

En fait, ça va cracher les changements dans inverse, à savoir qu'il vous indique comment aller de la tête à BASE. Donc techniquement vous voulez:

svn diff -r BASE:HEAD <file> 

Pouvez-vous épargner les coups de clavier? Seulement vous et votre divinité connaissez cette réponse.

+1

+1 pour l'esprit. sélectionné pour l'exactitude –

+9

Le fichier de copie de travail peut être différent de la base (lorsque vous avez des modifications locales dans le fichier).Vous devriez réaliser qu'il diffs le fichier sans les modifications locales avec le serveur. –

+0

La réponse ultérieure adresse la question originale de modifications locales différentes à HEAD – Chadwick

15

La différence entre copie de travail et HEAD; les modifications qui devraient être apportées à ce qui est maintenant dans le référentiel (HEAD), pour produire votre copie de travail :

svn diff -r HEAD --old=<file> 

intérêt possible, la différence entre BASE et HEAD; les changements qui ont été vérifiés dans le référentiel depuis la dernière copie de travail mis à jour:

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> en dernier vérifié sur/mise à jour. Qu'est-ce que copie de travail reprendrait après avoir utilisé svn revert
  • copie de travail: modifications locales à <file> qui a été vérifié/mis à jour récemment que BASE
  • HEAD: les dernières modifications dans le dépôt. Équivalent à BASEss aucun changement n'a été effectué car <file> a été extrait/mis à jour comme copie de travail.
Questions connexes