Bagaimana saya bisa membuat flag `--verbose` diaktifkan secara default di layar commit magit?

16

Saat ini, alih-alih menekan hanya ccdalam mode magit, saya harus menekan c-vcsetiap waktu untuk mengaktifkan --verbose.

Apakah mungkin untuk mengaktifkannya secara default?

Dogbert
sumber

Jawaban:

17

Dimulai dengan v2.1.0, Magit menggunakan perpustakaan magit-popup.eluntuk mengimplementasikan "popup buffer" atau "prefix-infix-suffix combo". Terlepas dari namanya, perpustakaan itu dapat digunakan oleh paket yang tidak terkait dengan Magit, dan karena itu tersedia sebagai paket Elpa yang terpisah. Bahkan memiliki manual sendiri sekarang!

Argumen default sekarang dapat diatur langsung dari buffer popup. Untuk selalu menggunakan --verboseketika melakukan lakukan ini:

  1. c Tampilkan munculan yang berkomitmen
  2. - v Nyalakan --verbose
  3. C-x C-sSimpan argumen yang saat ini ditetapkan sebagai default (dalam opsi khusus magit-commit-arguments)

Secara default semua buffer popup diakhiri dengan bagian bernama "Perintah Umum". Jika tidak, gunakan C-tuntuk menunjukkannya. Anda mungkin tidak ingin melihat bagian itu sepanjang waktu dan karenanya harus diatur magit-popup-show-common-commandske nil.

Tentu saja juga dimungkinkan untuk mengatur nilai magit-commit-argumentsdan variabel lainnya menggunakan antarmuka Kustom setq,, atau add-to-list. Tapi saya sarankan menentang itu, karena itu akan membuat tidak mungkin untuk mengubah default on-the-fly.

tarsius
sumber
7

Sejauh yang saya tahu Magit tidak melacak "default" pilihan, tapi kita bisa membuat itu "press -v" setiap kali buffer Melakukan muncul:

(advice-add #'magit-key-mode-popup-committing :after
            (lambda ()
              (magit-key-mode-toggle-option (quote committing) "--verbose")))

Untuk menemukan fungsi yang disarankan, saya membuka magic-statusbuffer dan menekan C-h k c. Ini membawa saya ke magit-key-mode-popup-committing. Kemudian (dengan buffer Komit masih ditampilkan) saya menekan C-h k -vuntuk menemukan lambdaformulir panggilan Magit ketika Anda menekan -vdi jendela Komit.

Pembaruan: Saya memang menulis jawaban ini secara independen, tetapi lihat Dapatkah saya memiliki opsi git-log “--all” dipilih pada awalnya? , jawaban yang diberikan di sana, dan komentar untuk jawaban itu.

Constantine
sumber
1
Itu menarik! Terima kasih karena telah menjelaskan bagaimana Anda menemukan fungsi-fungsi itu :)
Dogbert
@Dogbert: silakan lihat tautan dalam jawaban yang diperbarui jika Anda ingin tahu bahwa orang lain memikirkan opsi git default belum lama ini. :-) (Saya tidak tahu bagaimana saya melewatkannya kemarin.)
Constantine
4

Di versi magit yang menggunakan transient (setelah Februari 2019 atau lebih), atur flag, dan kemudian simpan selagi masih dalam buffer transient.

Jadi untuk komit, urutan kuncinya adalah sesuatu seperti

C-x g # start magit
s # to stage changes
c # start commiting
-v # enable verbose
C-x C-s # Save the setting persistently across sessions
c # do the actual commit

Setelah itu, waktu berikutnya commit dipanggil, verbose masih akan ditetapkan. (Anda tidak harus menyelesaikan komit, dan dapat keluar setelah menyimpan dengan C-x C-s.)

Default sebenarnya disimpan dalam transient/direktori di .emacs.d/.

Lihat manual sementara https://magit.vc/manual/transient.html#Saving-Values

mhb
sumber
0

Meskipun tidak persis seperti yang Anda inginkan (beda dalam buffer komit Anda), Anda dapat mengatur magit untuk memperluas perbedaan yang dipentaskan di jendela status :

(setq magit-expand-staged-on-commit 'full)

Alur kerja magit tampaknya selalu menjadi buffer status terbuka dan kemudian buka split dengan buffer komit, Anda selalu berakhir dengan dua buffer ditampilkan. Pengaturan di atas akan membuat buffer kedua (sebelumnya tidak berguna) menampilkan diff Anda.

Anda juga dapat menggunakan tuntuk hanya memperluas header yang berbeda (sehingga ini menunjukkan nomor baris):

(setq magit-expand-staged-on-commit t)

Saat menulis diff Anda, Anda dapat beralih ke buffer status dan gunakan TABuntuk memperluas (atau melipat) diffs.


Atau, Anda dapat menggunakan C-c C-ddari buffer komit untuk membuka buffer lain dengan diff magit-diff-staged. (Lihat masalah ini .)

idbrii
sumber
0

Pada magitversi 2.1, Anda dapat menggunakan ini di konfigurasi Anda:

;; When commiting enable verbose mode by default.
(setq magit-commit-arguments (quote ("--verbose")))
Maiku Mori
sumber
Anda seharusnya tidak melakukan itu. Lihat jawaban saya.
tarsius
@tarsius Anda memiliki poin yang valid. Usecase saya adalah bahwa saya menyinkronkan dotfile saya antara beberapa komputer dan ketika saya menetapkan default itu harus default pada semua komputer saya. Jika saya ingin mengubahnya, saya hanya akan mengubahnya di konfigurasi saya dan itu akan disinkronkan di semua komputer saya.
Maiku Mori
1
Oh dan saya tidak menggunakan opsi kustom karena membuat konfigurasi saya sulit untuk didokumentasikan. Saya lebih suka mengatur semuanya secara eksplisit.
Maiku Mori
Selain itu, pengaturan --no-verifyberguna ketika Anda memiliki proyek yang menggunakan kait git (gunakan dengan hati-hati, jelas).
Droogans