Wijzig de standaard zichtbaarheid van een Magit-sectie

Ik heb een vork van populaire repo, ik wil kunnen bijhouden welke commits duwen naar die repo terwijl ik ook mijn eigen persoonlijke commits aan mijn vork houd. Ik wil niet echt dat mijn wijzigingen stroomopwaarts worden samengevoegd, dus ik vind het prima om elke keer dat iemand zich naar de upstream-repo begeeft, te fuseren/rebasen.

Ik las over driehoeksworkflow en Magit's ondersteuning ervoor en vond dat geweldig. Het doet precies wat ik nodig heb, behalve dat het erop staat dat mijn lokale commits uiteindelijk worden samengevoegd in de hoofdrepo en dus een lijst van mijn lokale commits worden weergegeven onder de sectie Unmerged in 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 

Dit is prima als er een aantal commits zijn, maar later zullen mijn persoonlijke aanpassingen doorgaan en zal de lijst groeien. Is er een manier om de sectie Unmerged in upstream/master in te stellen om altijd verborgen te blijven?

8

1 antwoord

Er is geen optie om dit eenvoudig te doen, voornamelijk omdat deze functie niet vaak is aangevraagd. (Ik kan me niet herinneren dat het ooit eerder werd gevraagd, wat ik een beetje verrassend vind.) Ik ben wel van plan om uiteindelijk een dergelijke optie toe te voegen, maar pas als ik andere, meer fundamentele wijzigingen in de sectiecode aanbreng.

Maar er bestaat een haak die kan worden gebruikt om dit te doen. Je moet wel een beetje overzicht schrijven:

(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)
  • Als magit-insert-section - oldroot nil is, wordt de buffer eerst gemaakt (niet bijgewerkt). We willen in dat geval alleen niet-nul teruggeven.
  • Gebruik M-x magit-describe-section om de waarde en het type van een sectie op te halen.
  • De retourwaarde moet hide , show of nil zijn (laat iets anders beslissen).
  • Dergelijke functies moeten vóór magit-section-set-visibility-from-cache in de haak komen.

Dat is een beetje ruw aan de randen, maar dit was ook alleen maar bedoeld voor interne doeleinden.

9
toegevoegd
Oh wauw, heel erg bedankt! Dit is precies wat ik nodig heb.
toegevoegd de auteur titanous, de bron