Überprüfen Sie den Unterschied anhand der Datei auf dem Server

76

Ich habe eine Arbeitskopie eines Repositorys auf meinem Computer und weiß, dass es auf dem Server aktualisiert wurde. Ich möchte wissen, wie ich mithilfe von svnBefehlszeilenargumenten den Unterschied zwischen der neuen Version und der Version in meiner Arbeitskopie ermitteln kann .

Gibt es eine Möglichkeit für mich, dies zu tun?

Mantas Vidutis
quelle

Antworten:

118

Die Arbeitskopie ist Revision BASE. Die neueste Kopie aus dem Repository ist Revision HEAD. Dadurch wird Ihre Arbeitskopie mit der HEAD-Revision verglichen:

svn diff -r HEAD <file>

Tatsächlich spuckt das die Änderungen in umgekehrter Reihenfolge aus, dh es zeigt Ihnen, wie Sie von HEAD zu BASE wechseln. Also technisch wollen Sie:

svn diff -r BASE:HEAD <file>

Können Sie die Tastaturanschläge schonen? Nur Sie und Ihre Gottheit kennen diese Antwort.

John Kugelman
quelle
9
Die Arbeitskopiedatei kann sich von der Basisdatei unterscheiden (wenn Sie lokale Änderungen an der Datei vorgenommen haben). Sie sollten sich darüber im Klaren sein, dass sich die Datei ohne die lokalen Änderungen am Server unterscheidet.
Sander Rijken
Die spätere Antwort befasst sich mit der ursprünglichen Frage nach unterschiedlichen lokalen Änderungen an HEAD
Chadwick am
3
BASE ist nicht die Arbeitskopie, siehe svnbook.red-bean.com/de/1.7/svn.tour.revs.specifiers.html
Aaron J Lang
17

Der Unterschied zwischen Arbeitskopie und HEAD; die Änderungen, die an dem vorgenommen werden müssten, was sich jetzt im Repository ( HEAD) befindet, um Ihre Arbeitskopie zu erstellen :

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

Von möglichem Interesse ist der Unterschied zwischen BASEund HEAD; Änderungen, die seit der letzten Aktualisierung der Arbeitskopie in das Repository eingecheckt wurden :

svn diff -r BASE:HEAD <file>

Und natürlich der Unterschied zwischen BASEund Arbeitskopie ; die Änderungen, die Sie seit der letzten Aktualisierung der Arbeitskopie vorgenommen haben :

svn diff <file>


Es gibt drei Versionen diskutiert: BASE, Arbeitskopie , und HEAD.

  • BASE: <file>wie zuletzt ausgecheckt / aktualisiert. Auf welche Arbeitskopie würde nach der Verwendung zurückgegriffen werden ?svn revert
  • Arbeitskopie : Lokale Änderungen, <file>die erst kürzlich ausgecheckt / aktualisiert wurdenBASE
  • HEAD: Neueste Änderungen im Repository. Entspricht BASE iff, da keine Änderungen festgeschrieben wurden, seit <file>sie als Arbeitskopie ausgecheckt / aktualisiert wurden .
Chadwick
quelle