about summary refs log tree commit diff
path: root/configs/shared/emacs/.emacs.d/elpa/magit-20180913.1247/magit-worktree.el
diff options
context:
space:
mode:
Diffstat (limited to 'configs/shared/emacs/.emacs.d/elpa/magit-20180913.1247/magit-worktree.el')
-rw-r--r--configs/shared/emacs/.emacs.d/elpa/magit-20180913.1247/magit-worktree.el174
1 files changed, 0 insertions, 174 deletions
diff --git a/configs/shared/emacs/.emacs.d/elpa/magit-20180913.1247/magit-worktree.el b/configs/shared/emacs/.emacs.d/elpa/magit-20180913.1247/magit-worktree.el
deleted file mode 100644
index 107e2cb7cc0d..000000000000
--- a/configs/shared/emacs/.emacs.d/elpa/magit-20180913.1247/magit-worktree.el
+++ /dev/null
@@ -1,174 +0,0 @@
-;;; magit-worktree.el --- worktree support  -*- lexical-binding: t -*-
-
-;; Copyright (C) 2010-2018  The Magit Project Contributors
-;;
-;; You should have received a copy of the AUTHORS.md file which
-;; lists all contributors.  If not, see http://magit.vc/authors.
-
-;; Author: Jonas Bernoulli <jonas@bernoul.li>
-;; Maintainer: Jonas Bernoulli <jonas@bernoul.li>
-
-;; Magit is free software; you can redistribute it and/or modify it
-;; under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 3, or (at your option)
-;; any later version.
-;;
-;; Magit is distributed in the hope that it will be useful, but WITHOUT
-;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-;; or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
-;; License for more details.
-;;
-;; You should have received a copy of the GNU General Public License
-;; along with Magit.  If not, see http://www.gnu.org/licenses.
-
-;;; Commentary:
-
-;; This library implements support for `git-worktree'.
-
-;;; Code:
-
-(require 'magit)
-
-;;; Commands
-
-;;;###autoload (autoload 'magit-worktree-popup "magit-worktree" nil t)
-(magit-define-popup magit-worktree-popup
-  "Popup console for worktree commands."
-  :man-page "git-worktree"
-  :actions  `((?b "Create new worktree"            magit-worktree-checkout)
-              (?c "Create new branch and worktree" magit-worktree-branch)
-              ,@(and (not (require (quote forge) nil t))
-                     '((?p "Create new worktree from pull-request"
-                           magit-worktree-checkout-pull-request)))
-              (?k "Delete worktree"                magit-worktree-delete)
-              (?g "Show status for worktree"       magit-worktree-status))
-  :max-action-columns 1)
-
-;;;###autoload
-(defun magit-worktree-checkout (path branch)
-  "Checkout BRANCH in a new worktree at PATH."
-  (interactive
-   (let ((branch (magit-read-local-branch-or-commit "Checkout")))
-     (list (read-directory-name (format "Checkout %s in new worktree: " branch))
-           branch)))
-  (magit-run-git "worktree" "add" (expand-file-name path) branch)
-  (magit-diff-visit-directory path))
-
-(defun magit-worktree-checkout-pull-request (path pr)
-  "Create, configure and checkout a new worktree from a pull-request.
-This is like `magit-checkout-pull-request', except that it
-also creates a new worktree. Please see the manual for more
-information."
-  (interactive
-   (let ((pr (magit-read-pull-request "Checkout pull request")))
-     (let-alist pr
-       (let ((path (let ((branch (magit--pullreq-branch pr t)))
-                     (read-directory-name
-                      (format "Checkout #%s as `%s' in new worktree: "
-                              .number branch)
-                      (file-name-directory
-                       (directory-file-name default-directory))
-                      nil nil
-                      (if (string-match-p "\\`pr-[0-9]+\\'" branch)
-                          (number-to-string .number)
-                        (format "%s-%s" .number .head.ref))))))
-         (when (equal path "")
-           (user-error "The empty string isn't a valid path"))
-         (list path pr)))))
-  (when (and (file-exists-p path)
-             (not (and (file-directory-p path)
-                       (= (length (directory-files "/tmp/testing/")) 2))))
-    (user-error "%s already exists and isn't empty" path))
-  (magit-worktree-checkout path
-                           (let ((inhibit-magit-refresh t))
-                             (magit-branch-pull-request pr))))
-
-;;;###autoload
-(defun magit-worktree-branch (path branch start-point &optional force)
-  "Create a new BRANCH and check it out in a new worktree at PATH."
-  (interactive
-   `(,(read-directory-name "Create worktree: ")
-     ,@(butlast (magit-branch-read-args "Create and checkout branch"))
-     ,current-prefix-arg))
-  (magit-run-git "worktree" "add" (if force "-B" "-b")
-                 branch (expand-file-name path) start-point)
-  (magit-diff-visit-directory path))
-
-(defun magit-worktree-delete (worktree)
-  "Delete a worktree, defaulting to the worktree at point.
-The primary worktree cannot be deleted."
-  (interactive
-   (list (magit-completing-read "Delete worktree"
-                                (cdr (magit-list-worktrees))
-                                nil t nil nil
-                                (magit-section-when (worktree)))))
-  (if (file-directory-p (expand-file-name ".git" worktree))
-      (user-error "Deleting %s would delete the shared .git directory" worktree)
-    (let ((primary (file-name-as-directory (caar (magit-list-worktrees)))))
-      (magit-confirm-files (if magit-delete-by-moving-to-trash 'trash 'delete)
-                           (list "worktree"))
-      (when (file-exists-p worktree)
-        (let ((delete-by-moving-to-trash magit-delete-by-moving-to-trash))
-          (delete-directory worktree t magit-delete-by-moving-to-trash)))
-      (if (file-exists-p default-directory)
-          (magit-run-git "worktree" "prune")
-        (let ((default-directory primary))
-          (magit-run-git "worktree" "prune"))
-        (when (derived-mode-p 'magit-status-mode)
-          (kill-buffer)
-          (magit-status-internal primary))))))
-
-(defun magit-worktree-status (worktree)
-  "Show the status for the worktree at point.
-If there is no worktree at point, then read one in the
-minibuffer.  If the worktree at point is the one whose
-status is already being displayed in the current buffer,
-then show it in Dired instead."
-  (interactive
-   (list (or (magit-section-when (worktree))
-             (magit-completing-read
-              "Show status for worktree"
-              (cl-delete (directory-file-name (magit-toplevel))
-                         (magit-list-worktrees)
-                         :test #'equal :key #'car)))))
-  (magit-diff-visit-directory worktree))
-
-;;; Sections
-
-(defvar magit-worktree-section-map
-  (let ((map (make-sparse-keymap)))
-    (define-key map [remap magit-visit-thing]  'magit-worktree-status)
-    (define-key map [remap magit-delete-thing] 'magit-worktree-delete)
-    map)
-  "Keymap for `worktree' sections.")
-
-(defun magit-insert-worktrees ()
-  "Insert sections for all worktrees.
-If there is only one worktree, then insert nothing."
-  (let ((worktrees (magit-list-worktrees)))
-    (when (> (length worktrees) 1)
-      (magit-insert-section (worktrees)
-        (magit-insert-heading "Worktrees:")
-        (let* ((cols
-                (mapcar (pcase-lambda (`(,path ,barep ,commit ,branch))
-                          (cons (cond
-                                 (branch (propertize branch
-                                                     'face 'magit-branch-local))
-                                 (commit (propertize (magit-rev-abbrev commit)
-                                                     'face 'magit-hash))
-                                 (barep  "(bare)"))
-                                path))
-                        worktrees))
-               (align (1+ (-max (--map (string-width (car it)) cols)))))
-          (pcase-dolist (`(,head . ,path) cols)
-            (magit-insert-section (worktree path)
-              (insert head)
-              (indent-to align)
-              (insert (let ((r (file-relative-name path))
-                            (a (abbreviate-file-name path)))
-                        (if (< (string-width r) (string-width a)) r a)))
-              (insert ?\n))))
-        (insert ?\n)))))
-
-(provide 'magit-worktree)
-;;; magit-worktree.el ends here