Bagaimana cara mengeluarkan perbedaan antara dua revisi tertentu di Subversion?

120

Saya menggunakan Subversion melalui antarmuka baris perintah Linux.

Saya ingin melihat perbedaan antara revisi 11390 dan 8979 dari file tertentu yang dipanggil fSupplierModel.phpdi terminal saya. Bagaimana saya bisa melakukan itu?

allen213
sumber
Tambahkan di sini adalah cara menerapkannya kembali: stackoverflow.com/questions/10333712/…
Vadzim

Jawaban:

171

Lihat svn diffdi manual:

svn diff -r 8979:11390 http://svn.collab.net/repos/svn/trunk/fSupplierModel.php
RedFilter
sumber
3
Jika Anda menginginkan keluaran yang cantik, instal colordiff dan tambahkan `| colordiff` ke akhir perintah di atas untuk menyalurkan semuanya melalui itu.
William Turrell
56

Untuk membandingkan seluruh revisi, cukup:

svn diff -r 8979:11390


Jika Anda ingin membandingkan status komitmen terakhir dengan file kerja yang saat ini disimpan, Anda dapat menggunakan kata kunci praktis:

svn diff -r PREV:HEAD

(Catatan, tanpa apa pun yang ditentukan setelah itu, semua file dalam revisi yang ditentukan akan dibandingkan.)


Anda dapat membandingkan file tertentu jika Anda menambahkan jalur file setelahnya:

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

ahnbizcad
sumber
2
menempatkan HEAD: PREV tampaknya lebih masuk akal bagi saya dalam keluaran diff, mungkin akan membantu orang lain
Fonix
@Fonix apakah Anda berparadigma "bagaimana cara lain melakukan berbeda dari keadaan saya saat ini"? Jika demikian, saya setuju. Saya biasanya memikirkan perubahan kronologis yang dilakukan, jadi perubahan yang dibuat di HEAD akan menjadi perubahan baru / tambahan dari PREV, yang merupakan paradigma yang biasanya saya pikirkan. Ada kasus dan argumen yang harus dibuat untuk kedua paradigma tersebut.
ahnbizcad