Terkadang akan menyenangkan untuk mengatakan sesuatu seperti:
(git|svn|hg|etc) diff Foo.c:main
(git|svn|hg|etc) log log Foo.c:main
untuk melihat perubahan yang dilakukan pada fungsi tertentu dalam file sumber sejak komit terakhir, atau riwayat lengkap perubahan. Pertanyaan saya ada dua:
- Apakah ada sesuatu yang melakukan ini?
- Apakah alat seperti itu praktis? Itu harus melakukan beberapa penguraian sederhana kode pada setiap revisi untuk membandingkan versi fungsi yang berbeda; Apakah overhead terlalu banyak untuk menjadi efisien?
version-control
tools
Jches
sumber
sumber
Jawaban:
Tetapi yang lebih penting, Anda perlu melakukan hal yang sama untuk setiap bahasa yang ingin Anda dukung. VCS yang nilai jualnya hanya bekerja pada kode C tidak akan mendapatkan banyak daya tarik. Bahkan jika Anda mengabaikan semua bahasa yang tidak jelas, itu akan menjadi upaya besar untuk mendukung bahkan 10 bahasa teratas.
Dan seperti yang ditunjukkan Robert, bisa langsung beralih ke metode bukanlah keuntungan besar karena harus secara manual melompat ke metode dalam alat diff.
sumber
svn sebenarnya melakukan sesuatu yang dekat dengan apa yang Anda inginkan.
Anda dapat menggunakan perintah:
The
-x -p
menyediakan 'C' nama fungsi di atas set perubahan. yang terlihat seperti ini.Itu tidak menyaring tetapi Anda dapat grep / pencarian untuk melayani tujuan Anda dengan cermat.
Saya kira ini hanya untuk 'C' (atau C / C ++). Namun, saya kira, jika ada permintaan svn akan membuatnya tersedia untuk bahasa lain juga.
Saya tidak cukup berlangganan argumen bahwa VCS TIDAK boleh melakukan itu. Lagi pula kami ingin semua IDE atau editor (seperti VIM, EMACS) untuk melakukan penyorotan sintaksis yang khusus untuk setiap bahasa dan mendukung banyak secara bersamaan. Jadi VCS menjadi alat pengembang, juga harus mendukung fungsi tersebut.
Tentu saja, terima kasih atas pertanyaan Anda bahwa saya menemukannya. Saya belum pernah menggunakannya sebelumnya.
sumber
Tanpa membahas secara spesifik, ... tetapi Anda dapat memeriksa situs Desain Semantik dan berbagai produk mereka. Mereka menawarkan beberapa alat yang peka bahasa , sehingga bisa dikatakan, tidak memiliki istilah yang lebih baik.
sumber
Monticello dapat melakukan ini (mis. Http://wiresong.ca/monticello/v2/docs/changes-browser.html ) tetapi ini tentu saja menipu dengan sangat keterlaluan karena itu hanya bekerja untuk Smalltalk.
sumber
Untuk menampilkan revisi dan penulis yang terakhir diubah setiap baris file:
sumber
ENVY dan STORE melakukan hal itu. Sangat menarik bahwa, seperti halnya Monicello yang disebutkan Logan Capaldo di atas, ini juga untuk Smalltalk.
sumber