Modificați vizibilitatea implicită a unei secțiuni Magit

Am o furculiță de repo populare, vreau să fiu capabil să țină evidența angajamentelor care sunt împingătoare la acel repo în timp ce, de asemenea, am propriile mele comiteri personale la furculita mea. Nu vreau cu adevărat modificările mele să fie fuzionate în amonte, așa că sunt bine în fuzionarea/rebazarea de fiecare dată când cineva se angajează la repo în amonte.

Am citit despre fluxul de lucru triunghiular și sprijinul lui Magit pentru asta și l-am crezut minunat. Ea face exact ceea ce am nevoie, cu excepția faptului că insistă că comitetele mele locale ar trebui să fie în cele din urmă fuzionate în repo principal, afișând astfel o listă a comitetelor mele locale sub secțiunea Unmerged to upstream/master :

Head:     
Merge:    upstream/master 
Push:     origin/master 

Unpulled from upstream/master (1)
987ac90 upstream/master 

Unmerged into upstream/master (1)
123baf8 master origin/master 

Acest lucru este bine dacă există o serie de angajamente, dar mai târziu modificările mele personale se vor acumula și lista va crește. Există vreo modalitate de a seta secțiunea Unmerged to upstream/master pentru a fi întotdeauna ascunsă?

8

1 răspunsuri

Nu există nicio opțiune pentru a face acest lucru cu ușurință, mai ales pentru că această caracteristică nu a fost solicitată frecvent. (Nu-mi amintesc că a fost vreodată solicitat vreodată, ceea ce mi se pare surprinzător.) Vreau să adaug o astfel de opțiune, dar nu până când nu voi face alte schimbări fundamentale ale codului secțiunii.

Dar există un cârlig care poate fi folosit pentru a face acest lucru. Va trebui să scrie un pic de boilerplate, deși:

(defun local-magit-initially-hide-unmerged (section)
  (and (not magit-insert-section--oldroot)
       (eq (magit-section-type section) 'unpushed)
       (equal (magit-section-value section) "@{upstream}..")
       'hide))

(add-hook 'magit-section-set-visibility-hook
          'local-magit-initially-hide-unmerged)
  • Dacă magit-insert-section - oldroot este zero atunci tamponul este inițial creat. Vrem doar să ne întoarcem non-zero în acel caz.
  • Pentru a obține valoarea și tipul unei secțiuni, folosiți M-x magit-describe-section .
  • Valoarea returnată trebuie să fie hide , show sau zero
  • Aceste funcții trebuie să vină înainte de magit-section-set-visibility-from-cache

E un pic cam dur în jurul marginilor, iar din nou acest lucru a fost destinat numai scopurilor interne.

9
adăugat
Oh, multumesc mult! Acesta este exact ceea ce am nevoie.
adăugat autor titanous, sursa