Змінити видимість розділу Magit за замовчуванням

У мене є розвилка популярної репо, я хочу, щоб я мав змогу відстежувати, як здійснює поштовх до цього репо, а також маю власний особистий внесок у свою вилку. Я дійсно не хочу, щоб мої зміни були об'єднані вгору, так що я в порядку злиття/переробки кожного разу, коли хтось здійснює репо вверх.

Я читав про робочий процес трикутника та підтримку Magit для нього і вважав це чудовим. Це робить саме те, що мені потрібно, за винятком того, що він наполягає на тому, що мої місцеві зобов'язання, нарешті, повинні бути об'єднані в основний репо, таким чином, відображати список моїх місцевих повноважень у розділі 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 

Це нормально, якщо існує кілька завдань, але пізніше мої особисті зміни будуть накопичені, і список зростатиме. Чи можна будь-коли приховати розділ Unmerged to upstream/master ?

8

1 Відповіді

Немає можливості зробити це легко, головним чином тому, що цю функцію часто не запитують. (Я не можу пам'ятати, що його раніше запитували раніше, що я вважаю трохи дивним.) Я маю намір зрештою додати такий варіант, але поки не внося інші, більш фундаментальні зміни в код розділу.

Але існує гачок, який може бути використаний для цього. Вам доведеться написати трохи шаблону, хоча:

(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)
  • Якщо magit-insert-section-oldroot є nil , тоді спочатку створюється буфер (не оновлюється). У цьому випадку ми хочемо повернути не нуль.
  • Щоб отримати значення та тип розділу, скористайтеся командою M-x magit-describe-section .
  • Повертає значення має бути hide , show або nil (дозволити щось інше).
  • Такі функції повинні з'явитися перед magit-section-set-visible-from-cache в крючці.

Це трохи грубі по краях, потім знову це було призначено лише для внутрішніх цілей.

9
додано
Ой, дякую, спасибі! Це саме те, що мені потрібно.
додано Автор titanous, джерело