X-Git-Url: https://git.distorted.org.uk/~mdw/stgit/blobdiff_plain/08f8447da694e01d6092f8b376c11ccf1e4a2630..306b37a63112bf26cac29474116490376537f04f:/contrib/stgit.el diff --git a/contrib/stgit.el b/contrib/stgit.el index c013a83..c4ed958 100644 --- a/contrib/stgit.el +++ b/contrib/stgit.el @@ -876,13 +876,14 @@ If PATCHSYM is a keyword, returns PATCHSYM unmodified." (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" - (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-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))) @@ -895,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) - (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) - (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)