Thay đổi mức độ hiển thị mặc định của phần Magit


8

Tôi có một ngã ba repo phổ biến, tôi muốn có thể theo dõi các cam kết được đẩy đến repo đó trong khi cũng có các cam kết cá nhân của riêng tôi đối với ngã ba của tôi. Tôi thực sự không muốn các thay đổi của mình được hợp nhất ngược dòng vì vậy tôi ổn với việc hợp nhất / nổi loạn mỗi khi ai đó cam kết với repo ngược dòng.

Tôi đã đọc về quy trình làm việc của tam giác và sự hỗ trợ của Magit cho nó và nghĩ rằng nó thật tuyệt. Nó thực hiện chính xác những gì tôi cần, ngoại trừ việc nó khẳng định các cam kết cục bộ của tôi cuối cùng sẽ được sáp nhập vào repo chính, do đó hiển thị danh sách các cam kết cục bộ của tôi trong phần Unmerged into upstream/master:

Head:     <local commit>
Merge:    upstream/master <upstream commit>
Push:     origin/master <local commit>

Unpulled from upstream/master (1)
987ac90 upstream/master <upstream commit>

Unmerged into upstream/master (1)
123baf8 master origin/master <local commit>

Điều này là tốt nếu có một vài cam kết, nhưng sau đó sửa đổi cá nhân của tôi sẽ được bổ sung và danh sách sẽ phát triển. Có cách nào để đặt phần Unmerged into upstream/masterluôn bị ẩn không?

Câu trả lời:


8

Mặc dù không có tùy chọn nào như vậy tồn tại khi câu hỏi này được hỏi, nhưng bây giờ nó đã : magit-section-initial-visibility-alist.


Câu trả lời cũ:

Không có tùy chọn nào tồn tại để thực hiện việc này một cách dễ dàng, chủ yếu là vì tính năng này không được yêu cầu thường xuyên. (Tôi không thể nhớ rằng nó đã từng được yêu cầu trước đây, điều mà tôi thấy hơi ngạc nhiên.) Tôi dự định cuối cùng sẽ thêm một tùy chọn như vậy, nhưng cho đến khi tôi thực hiện các thay đổi khác, cơ bản hơn, cho mã phần.

Nhưng một cái móc tồn tại có thể được sử dụng để làm điều này. Bạn sẽ phải viết một chút về cái nồi hơi mặc dù:

(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)
  • Nếu magit-insert-section--oldrootnilthì bộ đệm đang được tạo đầu tiên (không được cập nhật). Chúng tôi chỉ muốn trả lại non-nil trong trường hợp đó.
  • Để có được giá trị và loại của một phần sử dụng M-x magit-describe-section.
  • Giá trị trả về có được hide, showhoặc nil(cho phép cái gì khác quyết định).
  • Các chức năng như vậy phải đến trước magit-section-set-visibility-from-cache trong hook.

Đó là một chút xung quanh các cạnh, sau đó một lần nữa điều này chỉ dành cho mục đích nội bộ.


Ồ wow, cảm ơn rất nhiều! Đây chính xác là những gì tôi cần.
Ammar Alammar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.