Procházet zdrojové kódy

Add git-worktree

master
10sr před 6 roky
rodič
revize
ad5c9f2341
Podepsáno: 10sr ID GPG klíče: 7BEC428194130EB2
1 změnil soubory, kde provedl 34 přidání a 0 odebrání
  1. +34
    -0
      emacs.el

+ 34
- 0
emacs.el Zobrazit soubor

@@ -2949,6 +2949,40 @@ If target path is not found in COMMITISH tree, go up path and try again until fo
;; (git-revision--git-plumbing "cat-file" "-t" "HEAD")


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; git-worktree

(defun git-worktree-get-current-list ()
"Get current worktree list."
(with-temp-buffer
(let ((trees nil)
(status (call-process "git"
nil
t
nil
"worktree" "list" "--porcelain")))
(cl-assert (eq status 0))
(goto-char (point-min))
(save-match-data
(while (not (eq (point) (point-max)))
(let ((worktree nil)
(head nil)
(branch nil))
(while (re-search-forward "^\\([^ ]\+\\) \\(.*\\)$" (point-at-eol) t)
(pcase (match-string 1)
("worktree" (setq worktree (match-string 2)))
("HEAD" (setq head (match-string 2)))
("branch" (setq branch (match-string 2))))
(forward-line 1)
(goto-char (point-at-bol)))
(setq trees `(,@trees
(:worktree ,worktree :head ,head :branch ,branch)))
(forward-line 1)
(goto-char (point-at-bol)))
))
trees)))


;; Local Variables:
;; flycheck-disabled-checkers: (emacs-lisp-checkdoc)
;; flycheck-checker: emacs-lisp


Načítá se…
Zrušit
Uložit