Magit baru-baru ini mendapatkan dukungan untuk sesuatu seperti ini, tetapi fitur ini masih agak kasar di sekitar tepi dan harus diaktifkan secara eksplisit.
Fitur serupa telah ada untuk waktu yang lama - ketika Anda berpindah dari satu komit ke komit lain dalam buffer log, dan jendela lain di frame yang sama adalah buffer revisi repositori, maka buffer itu di-refresh untuk menunjukkan komit daripada komit apa pun yang melakukannya. sebelumnya ditampilkan.
Sampai baru-baru ini buffer revisi dibuat ketika Anda pertama kali berpindah dari satu komit ke yang lain. Saya telah mengubah perilaku itu dan sekarang buffer revisi hanya diperbarui . Jika tidak ada jendela dalam bingkai yang sama sudah menampilkan buffer itu, maka bergerak di sekitar log tidak akan lagi menyebabkan buffer ditampilkan di beberapa jendela baru atau jendela yang sudah ada yang sebelumnya menampilkan beberapa buffer lain.
Jadi sekarang Anda harus menekan SPCsekali untuk menampilkan buffer revisi. Hanya kemudian akan mulai diperbarui ketika Anda bergerak di sekitar buffer log.
Jika Anda tidak ingin buffer revisi diperbarui, maka lakukan ini:
(remove-hook 'magit-section-movement-hook
'magit-log-maybe-update-revision-buffer)
Jika di sisi lain Anda juga ingin buffer revisi diperbarui ketika bergerak di buffer status, maka gunakan ini:
(add-hook 'magit-section-movement-hook
'magit-status-maybe-update-revision-buffer)
Sekarang mungkin untuk buffer gumpalan diperbarui secara otomatis dengan cara yang sama. Pertama tambahkan ini:
(add-hook 'magit-section-movement-hook
'magit-log-maybe-update-blob-buffer)
Dan mungkin juga:
(add-hook 'magit-section-movement-hook
'magit-status-maybe-update-blob-buffer)
Kemudian, di dalam buffer log (atau status) tekan RETuntuk menampilkan atau memperbarui buffer revisi, dan juga untuk beralih ke buffer itu. Pindah ke file yang Anda minati dan tekan RETlagi. Anda sekarang berada di buffer "blob-visiting", yang mirip dengan buffer kunjungan-file, kecuali bahwa itu tidak mengunjungi file di pohon kerja tetapi file seperti di beberapa komit.
Beralih kembali ke buffer log (atau status) dan pindah ke komit lain. Buffer gumpalan sedang diperbarui.
Perhatikan bahwa menampilkan gumpalan lain, sebenarnya tidak menggunakan kembali gumpalan buffer yang ada. Alih-alih itu menciptakan buffer baru yang mengunjungi gumpalan itu dan kemudian menampilkan buffer itu di jendela yang sebelumnya menampilkan buffer gumpalan lainnya. Buffer lain itu tidak sedang dihapus, yang sayangnya berarti bahwa beberapa buffer dapat terakumulasi dalam waktu singkat. Yang akan menjadi salah satu ujung yang kasar, saya sebutkan sebelumnya. Menekan qdalam buffer gumpalan tidak menghapusnya, sehingga Anda dapat membersihkan dengan pergi ke jendela yang digunakan untuk menampilkan berbagai buffer gumpalan dan terus menekan qsampai semua buffer telah dihapus.
Selain itu dimungkinkan untuk menavigasi ke gumpalan berikutnya atau sebelumnya dari dalam buffer gumpalan menggunakan pdan n. Saya berasumsi bahwa dalam kebanyakan kasus Anda mulai dengan gumpalan baru dan kemudian pindah kembali ke gumpalan yang lebih tua menggunakan p. Jika Anda melakukan itu dan kemudian ingin bergerak ke arah lain, saya sarankan Anda gunakan quntuk membunuh buffer saat ini dan dengan demikian pindah ke buffer sebelumnya yaitu gumpalan berikutnya .
Perhatikan juga bahwa Anda tidak harus terlebih dahulu mengunjungi revisi untuk dapat mengunjungi gumpalan. Anda juga bisa menggunakan M-x magit-find-file RET <revision> RET <file> RET
secara langsung, tetapi saya merasa kurang nyaman.