(propertize
(substitute-command-keys "--\n\"\\[stgit-toggle-worktree]\"\
shows the working tree\n")
- 'face 'stgit-description-face)))
+ 'face 'stgit-description-face)))
(stgit-run-series stgit-ewoc)
(if curpatch
(stgit-goto-patch curpatch (and curfile (stgit-file-file curfile)))
old-perm new-perm copy-or-rename cr-score cr-from cr-to status file)
(defun stgit-describe-copy-or-rename (file)
- (let (from to common-head common-tail
- (arrow (concat " "
- (propertize "->" 'face 'stgit-description-face)
- " ")))
+ (let ((arrow (concat " " (propertize "->" 'face 'stgit-description-face) " "))
+ from to common-head common-tail)
(when stgit-abbreviate-copies-and-renames
(setq from (split-string (stgit-file-cr-from file) "/")
("M" . stgit-move-patches)
("S" . stgit-squash)
("N" . stgit-new)
+ ("c" . stgit-new-and-refresh)
("\C-c\C-c" . stgit-commit)
("\C-c\C-u" . stgit-uncommit)
("U" . stgit-revert-file)
\\[stgit-diff] Show the patch log and diff
\\[stgit-new] Create a new, empty patch
+\\[stgit-new-and-refresh] Create a new patch from index or work tree
\\[stgit-rename] Rename patch
\\[stgit-edit] Edit patch description
\\[stgit-delete] Delete patch(es)
(let ((name-sym (intern name)))
(when (memq old-patchsym stgit-expanded-patches)
(setq stgit-expanded-patches
- (cons name-sym (delq old-patchsym stgit-expanded-patches))))
+ (cons name-sym (delq old-patchsym stgit-expanded-patches))))
(when (memq old-patchsym stgit-marked-patches)
(setq stgit-marked-patches
- (cons name-sym (delq old-patchsym stgit-marked-patches))))
+ (cons name-sym (delq old-patchsym stgit-marked-patches))))
(stgit-reload)
(stgit-goto-patch name-sym))))
(and space-arg (list "-O" space-arg))
(list (stgit-patch-name-at-point)))))
(apply 'stgit-run args)))))
- (t
- (error "No patch or file at point")))
+ (t
+ (error "No patch or file at point")))
(with-current-buffer standard-output
(goto-char (point-min))
(diff-mode)))))
(stgit-file-cr-to patched-file)
(stgit-file-file patched-file)))
(point-file (if (eq patched-status 'rename)
- (stgit-file-cr-from patched-file)
- (stgit-neighbour-file))))
+ (stgit-file-cr-from patched-file)
+ (stgit-neighbour-file))))
(cond ((eq patch-name :work)
(stgit-move-change-to-index (stgit-file-file patched-file)
(with-current-buffer log-edit-parent-buffer
(stgit-reload))))
-(defun stgit-new (add-sign)
+(defun stgit-new (add-sign &optional refresh)
"Create a new patch.
With a prefix argument, include a \"Signed-off-by:\" line at the
end of the patch."
(dir default-directory))
(log-edit 'stgit-confirm-new t nil edit-buf)
(setq default-directory dir)
+ (set (make-local-variable 'stgit-refresh-after-new) refresh)
(when add-sign
(save-excursion
(let ((standard-output (current-buffer)))
(defun stgit-confirm-new ()
(interactive)
- (let ((file (make-temp-file "stgit-edit-")))
+ (let ((file (make-temp-file "stgit-edit-"))
+ (refresh stgit-refresh-after-new))
(write-region (point-min) (point-max) file)
(stgit-capture-output nil
(stgit-run "new" "-f" file))
(with-current-buffer log-edit-parent-buffer
- (stgit-reload))))
+ (if refresh
+ (stgit-refresh)
+ (stgit-reload)))))
+
+(defun stgit-new-and-refresh (add-sign)
+ "Create a new patch and refresh it with the current changes.
+
+With a prefix argument, include a \"Signed-off-by:\" line at the
+end of the patch.
+
+This works just like running `stgit-new' followed by `stgit-refresh'."
+ (interactive "P")
+ (stgit-new add-sign t))
(defun stgit-create-patch-name (description)
"Create a patch name from a long description"