Saya dulu menggunakan Windows, SVN, Tortoise SVN, dan Beyond Compare. Itu adalah kombinasi yang bagus untuk melakukan tinjauan kode.
Sekarang saya menggunakan OSX dan Git. Saya telah berhasil menggabungkan skrip bash bersama dengan Gitx dan DiffMerge untuk menghasilkan solusi yang hampir tidak dapat diterima.
Saya telah kacau dengan pengaturan ini, dan yang serupa, selama lebih dari setahun. Saya juga sudah mencoba menggunakan penampil diff Github dan penampil diff Gitx, jadi saya tidak memberi mereka kesempatan.
Ada begitu banyak orang pintar melakukan hal-hal hebat dengan Git. Mengapa tidak bersebelahan dengan opsi melihat seluruh file? Dengan orang-orang yang telah menggunakan keduanya, saya belum pernah mendengar ada orang yang menyukai tampilan +/- lebih baik, setidaknya untuk lebih dari sekadar pemeriksaan cepat.
Jawaban:
Saya tidak dapat berbicara untuk Linus mengenai hal ini, tetapi cara git menangani difftools sangat tidak umum, secara filosofis. git melakukan apa yang dilakukannya dengan sangat baik, dan menggunakan alat-alat eksternal untuk yang lainnya, termasuk diffing dan penggabungan yang lebih canggih.
Saya menggunakan DiffMerge dengan git di OS X juga, dan saya tidak perlu menggunakan shell bash. Itu rumit, tetapi saya mengkonfigurasi pengaturan gt's difftool dan mergetool untuk memanggil DiffMerge secara langsung, dan sekarang saya dapat melihat diff dan menyelesaikan konflik penggabungan dalam alat pihak ketiga visual yang luar biasa.
Ini konfigurasi saya:
sumber
git diff --stat
. Memberi Anda daftar grafis yang bagus dari semua file yang diubah, dengan jumlah baris yang diubah.Anda akan melihat bahwa SVN sendiri tidak menawarkan solusi berdampingan. Apa yang Anda daftarkan adalah alat pihak ketiga. Seperti kebanyakan hal di git, ini sangat dapat dikonfigurasi, dan memiliki dukungan alat luar biasa. Apakah Anda memiliki mergetool yang diatur? Jika tidak, Anda harus melakukannya. Jika ya, coba
git difftool
. Kemudian lihat halaman manual untuk opsi-opsi konfigurasi.Saya menggunakan KDiff3 sebagai mergetool saya karena ini adalah alat lintas platform yang bagus, dan tanpa konfigurasi lebih lanjut,
git difftool
melakukan persis apa yang Anda minta.sumber
Ini adalah filosofi * nix. Banyak orang yang menggunakan alat ini menghabiskan banyak waktu di terminal. Terminal tidak mengharuskan kita untuk memindahkan tangan kita dari keyboard ke mouse. Saya tahu bahwa saya lebih suka gaya +/- daripada alat diff / penggabungan visual, terutama karena saya hanya peduli dengan perbedaannya. Saya peduli dengan 3-4 baris di sekitar perubahan dan perubahan itu sendiri. Yang lebih penting adalah informasi tambahan yang benar-benar tidak membantu saya.
Diff's biasanya digunakan untuk melihat sekilas apa yang telah diubah. Tidak membaca kodenya.
Saya belum pernah menemukan alat diff visual yang sangat berguna dibandingkan dengan diff default pada sistem GNU. Yang mereka pernah lakukan adalah mulai mengacaukan mouse dan memaksa saya untuk menggulir file, mencari tahu antarmuka pengguna mereka, dan kemudian berjuang untuk kembali ke baris perintah di mana saya dapat melakukan sesuatu tentang masalah yang saya lihat di .
sumber
Dari penggunaan pribadi saya, saya pikir jawabannya adalah sebagian besar diffs cukup pendek sehingga tidak masalah.
Untuk ulasan kode, saya menggunakan alat review kode berfitur lengkap, yang memberi saya semua hal yang saya suka - seperti komentar, penyorotan sintaksis, dan tampilan berdampingan.
Saya menggunakan
git diff
hampir secara eksklusif selama saat pementasan kode untuk melakukan; Ketika itu terjadi, perbedaannya cukup kecil, dan cukup baru, sehingga saya tidak perlu melihat konteksnya untuk mengingat apa yang terjadi.Alat peninjau kode saya untuk Phabricator pilihan , atau mungkin alat yang terintegrasi IDE, yang sadar konteks bahasa. Saya pikir aliran tarik-permintaan github mengerikan untuk review kode, sebagian besar karena itu menunjukkan unified diff dan tidak berdampingan.
sumber