Bagaimana saya bisa mendapatkan yang terbaik untuk uang saya dengan perintah "diff"?

9

Saya telah mencoba menggunakan diffperintah linux di masa lalu tanpa banyak keberuntungan atau kesabaran. Saya biasanya berakhir menggunakan utilitas GUI seperti DiffMerge atau Kdiff.

Baru-baru ini saya mulai mencoba menggunakan difflagi untuk membandingkan file pada sistem jarak jauh melalui ssh, dan saya telah menemukan -y / --side-by-sideopsi untuk menjadi sangat berguna, tetapi saya masih merasa seperti saya tidak memanfaatkan utilitas ini sebaik-baiknya.

Jadi saya ingin tahu bagaimana mencapai hal-hal berikut:

  1. Sorot perubahan atau gunakan kode warna untuk membuat output lebih mudah dibaca
  2. Gabung - Pilih garis dengan perbedaan dan efek perubahan ke salah satu file

Juga, saya belum menemukan banyak contoh bagus saat googling, jadi jika Anda memiliki beberapa rahasia linux-fu untuk mendapatkan hasil maksimal dari diff, dapatkah Anda berbagi? Saya terutama akan membandingkan file konfigurasi berbasis teks tetapi trik dan tip akan sangat bagus.

For Reference - Utilitas DiffMerge dengan mudah menampilkan perubahan berdampingan dengan penyorotan warna. Ikon di bagian atas memungkinkan Anda untuk beralih di antara tampilan "tampilkan semua," "tampilkan perbedaan," dan "tampilkan perbedaan dengan konteks." Akan menyukai beberapa fungsi ini di command prompt.

ps: Saya juga harus mencatat bahwa satu opsi lain yang menurut saya cukup berguna adalah --suppress-common-linesyang saya pelajari tentang posting blog yang ringkas dan mudah dibaca ini .

cwd
sumber
3
Saya menggunakan vimdiff sedikit.
nicerobot
@nicerobot Anda dapat memposting ini sebagai jawaban - ini adalah alat yang sangat berguna dan bermanfaat.
rozcietrzewiacz
Anda tidak bisa, ini Gratis ..... Maaf Tidak bisa menahannya: D
whoami
Saya melakukan sebagian besar perbedaan saya di Emacs.
Gilles 'SANGAT berhenti menjadi jahat'
@whoami - apa?
cwd

Jawaban:

9

Tanpa urutan tertentu:

  • meld adalah program diff yang sangat bagus yang melakukan diff yang sangat bagus dan gabungan tiga arah.
  • git config --global merge.conflictstyle diff3membuat Anda menggabungkan output tiga arah untuk digunakan dengan alat-alat seperti meld.
  • wdiffapakah kata beda, sangat bagus jika diwarnai :wdiff -w "$(tput bold;tput setaf 1)" -x "$(tput sgr0)" -y "$(tput bold;tput setaf 2)" -z "$(tput sgr0)" ...
  • Untuk meminimalkan cacat pada diffoutput, saya biasanya menggunakan opsi --ignore-all-space( -w)
  • diff-ignore-moved-lines* melakukan apa yang tertulis di label.
  • difff* dapat digunakan untuk membedakan hanya garis yang cocok dengan bidang yang diberikan.

* Penafian: Saya penulis, dan mengembangkan ini untuk membantu dengan CLI dan GUI yang berbeda dan menyatu.

l0b0
sumber
1
Saya juga menggunakan diffusesedikit.
Arcege
diff -u juga cukup mudah, saya menemukan.
gabe.
5

Saya vimdiffmerasa sangat berguna.

nicerobot
sumber
3

Untuk mendapatkan pewarnaan dalam diff Anda harus melihat http://colordiff.sourceforge.net/ . Ini hanya pembungkus di sekitar diff dan, dengan demikian, semua opsi perintah masih berfungsi.

Jika Anda memiliki ubuntu cukup tulis:

    # sudo apt-get install colordiff

Menjalankan risiko tidak memenuhi kasus penggunaan Anda, gitadalah VCS yang sangat bagus yang terintegrasi dengan baik dengan banyak alat pembeda dan penggabungan (baik baris perintah maupun yang GUI). Cobalah jika itu pilihan.

Alexandre Martins
sumber
1

Mencoba sdiff

diffjuga memiliki opsi ( -eatau -ed) untuk membuat skrip gabungan untuk digunakan bersamaed

sdiff, diffdan edharus menjadi bagian dari cangkang Anda ke mana pun Anda pergi.

Perangkat lunak kontrol versi Anda mungkin juga dilengkapi dengan diffdan mergealat.

adam f
sumber