Jak wyświetlić różnicę między dwiema konkretnymi wersjami w Subversion?

120

Używam Subversion przez interfejs wiersza poleceń Linuksa.

Chcę zobaczyć różnicę między wersjami 11390 i 8979 określonego pliku wywołanego fSupplierModel.phpw moim terminalu. Jak mogę to zrobić?

allen213
źródło
Dodaj tutaj, jak zastosować to z powrotem: stackoverflow.com/questions/10333712/…
Vadzim

Odpowiedzi:

171

Zobacz svn diffw instrukcji:

svn diff -r 8979:11390 http://svn.collab.net/repos/svn/trunk/fSupplierModel.php
RedFilter
źródło
3
Jeśli chcesz mieć ładny wynik, zainstaluj colordiff i dodaj `| colordiff` do końca powyższego polecenia, aby wszystko przez niego przepuścić.
William Turrell
56

Aby porównać całe wersje, wystarczy:

svn diff -r 8979:11390


Jeśli chcesz porównać ostatnio zatwierdzony stan z aktualnie zapisanymi plikami roboczymi, możesz użyć wygodnych słów kluczowych:

svn diff -r PREV:HEAD

(Uwaga: bez późniejszego określenia wszystkich plików w określonych wersjach są porównywane).


Możesz porównać konkretny plik, jeśli później dodasz ścieżkę do pliku:

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

ahnbizcad
źródło
2
umieszczenie HEAD: PREV wydawało mi się bardziej sensowne w wynikach diff, może pomoże innym
Fonix
@Fonix Czy jesteś w paradygmacie „w jaki sposób inne zatwierdzenie różni się od mojego obecnego stanu”? Jeśli tak, zgadzam się. Zwykle myślę o zatwierdzeniach zmian chronologicznych, więc zmiany dokonane w HEAD byłyby nowymi / dodanymi zmianami z PREV, co jest paradygmatem, o którym zwykle myślę. Istnieją przypadki i argumenty, które należy przedstawić dla każdego z paradygmatów.
ahnbizcad