~mdw
/
stgit
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
stgit.el: Bugfix moving symlinks to/from index
[stgit]
/
contrib
/
stgit.el
diff --git
a/contrib/stgit.el
b/contrib/stgit.el
index
7e0c10d
..
c4ed958
100644
(file)
--- a/
contrib/stgit.el
+++ b/
contrib/stgit.el
@@
-444,8
+444,6
@@
at point."
"-C")))
(ewoc (ewoc-create #'stgit-file-pp nil nil t)))
(setf (stgit-patch-files-ewoc patch) ewoc)
"-C")))
(ewoc (ewoc-create #'stgit-file-pp nil nil t)))
(setf (stgit-patch-files-ewoc patch) ewoc)
- (when (eq patchsym :work)
- (setq stgit-work-ewoc ewoc))
(with-temp-buffer
(apply 'stgit-run-git
(cond ((eq patchsym :work)
(with-temp-buffer
(apply 'stgit-run-git
(cond ((eq patchsym :work)
@@
-878,13
+876,14
@@
If PATCHSYM is a keyword, returns PATCHSYM unmodified."
(goto-char (point-min))
(diff-mode))))
(goto-char (point-min))
(diff-mode))))
-(defun stgit-move-change-to-index (file
status
)
+(defun stgit-move-change-to-index (file)
"Copies the workspace state of FILE to index, using git add or git rm"
"Copies the workspace state of FILE to index, using git add or git rm"
- (let ((op (if (file-exists-p file) "add" "rm")))
+ (let ((op (if (or (file-exists-p file) (file-symlink-p file))
+ '("add") '("rm" "-q"))))
(stgit-capture-output "*git output*"
(stgit-capture-output "*git output*"
- (
stgit-run-git op "--" file
))))
+ (
apply 'stgit-run-git (append op '("--") (list file))
))))
-(defun stgit-remove-change-from-index (file
status
)
+(defun stgit-remove-change-from-index (file)
"Unstages the change in FILE from the index"
(stgit-capture-output "*git output*"
(stgit-run-git "reset" "-q" "--" file)))
"Unstages the change in FILE from the index"
(stgit-capture-output "*git output*"
(stgit-run-git "reset" "-q" "--" file)))
@@
-897,11
+896,9
@@
If PATCHSYM is a keyword, returns PATCHSYM unmodified."
(error "No file on the current line"))
(let ((patch-name (stgit-patch-name-at-point)))
(cond ((eq patch-name :work)
(error "No file on the current line"))
(let ((patch-name (stgit-patch-name-at-point)))
(cond ((eq patch-name :work)
- (stgit-move-change-to-index (stgit-file-file patched-file)
- (stgit-file-status patched-file)))
+ (stgit-move-change-to-index (stgit-file-file patched-file)))
((eq patch-name :index)
((eq patch-name :index)
- (stgit-remove-change-from-index (stgit-file-file patched-file)
- (stgit-file-status patched-file)))
+ (stgit-remove-change-from-index (stgit-file-file patched-file)))
(t
(error "Can only move files in the working tree to index")))))
(stgit-refresh-worktree)
(t
(error "Can only move files in the working tree to index")))))
(stgit-refresh-worktree)