Wie gebe ich den Unterschied zwischen zwei bestimmten Revisionen in Subversion aus?

120

Ich verwende Subversion über die Linux-Befehlszeilenschnittstelle.

Ich möchte den Unterschied zwischen der Revision 11390 und 8979 einer bestimmten Datei sehen, die fSupplierModel.phpin meinem Terminal aufgerufen wird . Wie kann ich das machen?

allen213
quelle
Fügen Sie hier hinzu, wie Sie es wieder anwenden können: stackoverflow.com/questions/10333712/…
Vadzim

Antworten:

171

Siehe svn diffim Handbuch:

svn diff -r 8979:11390 http://svn.collab.net/repos/svn/trunk/fSupplierModel.php
RedFilter
quelle
3
Wenn Sie eine schöne Ausgabe wünschen, installieren Sie colordiff und fügen Sie `| hinzu colordiff` bis zum Ende des obigen Befehls, um alles durchzuleiten.
William Turrell
56

Um ganze Revisionen zu vergleichen, ist es einfach:

svn diff -r 8979:11390


Wenn Sie den zuletzt festgeschriebenen Status mit Ihren aktuell gespeicherten Arbeitsdateien vergleichen möchten, können Sie Convenience-Schlüsselwörter verwenden:

svn diff -r PREV:HEAD

(Beachten Sie, dass alle Dateien in den angegebenen Revisionen verglichen werden, ohne dass danach etwas angegeben wird.)


Sie können eine bestimmte Datei vergleichen, wenn Sie anschließend den Dateipfad hinzufügen:

svn diff -r 8979:HEAD /path/to/my/file.php

ahnbizcad
quelle
2
HEAD setzen: PREV schien mir in der Diff-Ausgabe sinnvoller zu sein, wird vielleicht anderen helfen
Fonix
@Fonix befinden Sie sich im Paradigma "Wie unterscheidet sich ein anderes Commit von meinem aktuellen Status?" Wenn ja, stimme ich zu. Ich denke normalerweise an chronologische Änderungen, also wären Änderungen, die in HEAD vorgenommen wurden, die neuen / hinzugefügten Änderungen von PREV gewesen, dem Paradigma, an das ich normalerweise denke. Es gibt Fälle und Argumente für beide Paradigmen.
Ahnbizcad