Browse Source

Add some changes

master
10sr 5 years ago
parent
commit
a12893b869
Signed by: 10sr GPG Key ID: 7BEC428194130EB2
1 changed files with 19 additions and 19 deletions
  1. +19
    -19
      emacs.el

+ 19
- 19
emacs.el View File

@@ -2275,7 +2275,8 @@ use for the buffer. It defaults to \"*recetf-show*\"."
(make-variable-buffer-local 'git-walktree-current-commitish) (make-variable-buffer-local 'git-walktree-current-commitish)


(defvar git-walktree-current-path nil (defvar git-walktree-current-path nil
"Path name currently visiting without leading slash.")
"Path name currently visiting without leading slash.
This path is always relative to repository root.")
(make-variable-buffer-local 'git-walktree-current-path) (make-variable-buffer-local 'git-walktree-current-path)


(defvar git-walktree-buffer-file-name nil (defvar git-walktree-buffer-file-name nil
@@ -2289,6 +2290,9 @@ use for the buffer. It defaults to \"*recetf-show*\"."
(defvar git-walktree-repository-root nil (defvar git-walktree-repository-root nil
"Repository root path of current buffer.") "Repository root path of current buffer.")
(make-variable-buffer-local 'git-walktree-repository-root) (make-variable-buffer-local 'git-walktree-repository-root)
(put 'git-walktree-repository-root
'permanent-local
t)


(defun git-walktree--commitish-fordisplay (commitish) (defun git-walktree--commitish-fordisplay (commitish)
"Convert COMMITISH and return is a suitable format for displaying." "Convert COMMITISH and return is a suitable format for displaying."
@@ -2454,14 +2458,9 @@ Result will be inserted into current buffer."
blob) blob)
(git-walktree--replace-into-buffer buf))) (git-walktree--replace-into-buffer buf)))
(setq git-walktree-buffer-file-name (setq git-walktree-buffer-file-name
(concat (git-walktree--git-plumbing "rev-parse"
"--show-toplevel")
"/git@"
commitish
":"
path))
(concat git-walktree-repository-root "/git@" commitish ":" path))
(setq buffer-file-name (setq buffer-file-name
git-walktree-buffer-file-name)
(concat git-walktree-repository-root "/" path))
(normal-mode t) (normal-mode t)
;; For asking filename when C-xC-s ;; For asking filename when C-xC-s
(setq buffer-file-name nil) (setq buffer-file-name nil)
@@ -2482,9 +2481,9 @@ Result will be inserted into current buffer."
buf)) buf))


;; TODO: Fix name ;; TODO: Fix name
(defun git-walktree--open-noselect-until-found (commitish &optional path)
(defun git-walktree--open-noselect-safe-path (commitish &optional path)
"Open git object of COMMITISH:PATH. "Open git object of COMMITISH:PATH.
If PATH not found in COMMITISH tree, go up directory and try again.
If PATH not found in COMMITISH tree, go up path and try again until found.
When PATH is omitted or nil, it is calculated from current file or directory." When PATH is omitted or nil, it is calculated from current file or directory."
(cl-assert commitish) (cl-assert commitish)
(let ((type (git-walktree--git-plumbing "cat-file" (let ((type (git-walktree--git-plumbing "cat-file"
@@ -2781,10 +2780,9 @@ PARENT should be a full SHA-1 object name."
PARENT should be a full SHA-1 object name." PARENT should be a full SHA-1 object name."
(gethash parent git-walktree-known-child-revisions)) (gethash parent git-walktree-known-child-revisions))


;; TODO: Fix name
(defun git-walktree--completing-read-commitish (prompt-format collection)
(defun git-walktree--choose-commitish (prompt-format collection)
"Emit PROMPT-FORMAT and ask user to which commitish of COLLECTION to use. "Emit PROMPT-FORMAT and ask user to which commitish of COLLECTION to use.
When collection has just one element, return without asking."
When collection has just one element, return the first element without asking."
(cl-assert collection) (cl-assert collection)
(if (< (length collection) 2) (if (< (length collection) 2)
(car collection) (car collection)
@@ -2805,11 +2803,14 @@ If current path was not found in the parent revision try to go up path."
(let* ((commitid (git-walktree--git-plumbing "rev-parse" (let* ((commitid (git-walktree--git-plumbing "rev-parse"
git-walktree-current-commitish)) git-walktree-current-commitish))
(parents (git-walktree--parent-commitid commitid))) (parents (git-walktree--parent-commitid commitid)))
(dolist (parent parents)
(git-walktree--put-child parent
commitid))
(if (< (length parents) (if (< (length parents)
1) 1)
(message "This revision has no parent revision") (message "This revision has no parent revision")
(let* ((parent (git-walktree--completing-read-commitish "This revision has multiple parents. Which to open? (%s) "
parents))
(let* ((parent (git-walktree--choose-commitish "This revision has multiple parents. Which to open? (%s) "
parents))
(path git-walktree-current-path) (path git-walktree-current-path)
(obj (git-walktree--resolve-object parent path))) (obj (git-walktree--resolve-object parent path)))
(cl-assert path) (cl-assert path)
@@ -2821,8 +2822,7 @@ If current path was not found in the parent revision try to go up path."
(switch-to-buffer (git-walktree--open-noselect parent (switch-to-buffer (git-walktree--open-noselect parent
path path
obj)) obj))
(git-walktree--put-child parent
commitid)))))
))))


(defun git-walktree--parent-commitid (commitish) (defun git-walktree--parent-commitid (commitish)
"Return list of parent commits of COMMITISH in sha1 string." "Return list of parent commits of COMMITISH in sha1 string."
@@ -2847,8 +2847,8 @@ If current path was not found in the parent revision try to go up path."
(if (< (length children) (if (< (length children)
1) 1)
(message "There are no known child revision") (message "There are no known child revision")
(let* ((child (git-walktree--completing-read-commitish "There are multiple known childrens. Which to open? (%s)"
children))
(let* ((child (git-walktree--choose-commitish "There are multiple known childrens. Which to open? (%s)"
children))
(path git-walktree-current-path) (path git-walktree-current-path)
(obj (git-walktree--resolve-object child path))) (obj (git-walktree--resolve-object child path)))
(cl-assert path) (cl-assert path)


Loading…
Cancel
Save