Изменение видимости по умолчанию в разделе Magit

У меня есть вилка популярного репо, я хочу иметь возможность отслеживать, что коммиты нажимаются на это репо, а также мои личные личные обязательства перед моей вилкой. Я не хочу, чтобы мои изменения были объединены вверх по течению, поэтому я в порядке с слиянием/переустановкой каждый раз, когда кто-то совершает восходящее репо.

Я читал о рабочем процессе треугольника и поддержке Магита и считал это замечательным. Он делает именно то, что мне нужно, за исключением того, что он настаивает на том, что мои локальные коммиты должны быть окончательно объединены в основное репо, таким образом отображая список моих локальных коммитов в разделе Unmerged into 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 in 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 , тогда буфер сначала создается (не обновляется). В этом случае мы хотим вернуть не-nil.
  • Чтобы получить значение и тип раздела, используйте M-x magit-describe-section .
  • Возвращаемое значение должно быть hide , show или nil (пусть что-то другое решит).
  • Такие функции должны прийти до magit-section-set-visibility-from-cache в hook.

Это немного грубо по краям, и снова это предназначалось только для внутренних целей.

9
добавлено
О, вау, большое спасибо! Это именно то, что мне нужно.
добавлено автор titanous, источник