Mercurial > emacs
changeset 106492:88a0c109936e
Add support for stashing a snapshot of the current tree.
* vc-git.el (vc-git-stash-snapshot): New function.
(vc-git-stash-map, vc-git-extra-menu-map): Add a mapping for it.
author | Dan Nicolaescu <dann@ics.uci.edu> |
---|---|
date | Tue, 08 Dec 2009 15:56:57 +0000 |
parents | fbfaf7bb384e |
children | e2e186a38058 |
files | lisp/ChangeLog lisp/vc-git.el |
diffstat | 2 files changed, 23 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Tue Dec 08 11:27:53 2009 +0000 +++ b/lisp/ChangeLog Tue Dec 08 15:56:57 2009 +0000 @@ -1,3 +1,9 @@ +2009-12-08 Dan Nicolaescu <dann@ics.uci.edu> + + Add support for stashing a snapshot of the current tree. + * vc-git.el (vc-git-stash-snapshot): New function. + (vc-git-stash-map, vc-git-extra-menu-map): Add a mapping for it. + 2009-12-08 Jose E. Marchesi <jemarch@gnu.org> * play/gomoku.el (gomoku-mode-map): Remap `move-(beginning|end)-of-line'
--- a/lisp/vc-git.el Tue Dec 08 11:27:53 2009 +0000 +++ b/lisp/vc-git.el Tue Dec 08 15:56:57 2009 +0000 @@ -414,6 +414,7 @@ (define-key map "\C-m" 'vc-git-stash-show-at-point) (define-key map "A" 'vc-git-stash-apply-at-point) (define-key map "P" 'vc-git-stash-pop-at-point) + (define-key map "S" 'vc-git-stash-snapshot) map)) (defvar vc-git-stash-menu-map @@ -756,8 +757,11 @@ (define-key map [git-grep] '(menu-item "Git grep..." vc-git-grep :help "Run the `git grep' command")) + (define-key map [git-sn] + '(menu-item "Stash a snapshot" vc-git-stash-snapshot + :help "Stash the current state of the tree and keep the current state")) (define-key map [git-st] - '(menu-item "Stash..." vc-git-stash + '(menu-item "Create Stash..." vc-git-stash :help "Stash away changes")) (define-key map [git-ss] '(menu-item "Show Stash..." vc-git-stash-show @@ -863,6 +867,17 @@ (vc-git-command "*vc-git-stash*" 0 nil "stash" "pop" "-q" name) (vc-resynch-buffer (vc-git-root default-directory) t t)) +(defun vc-git-stash-snapshot () + "Create a stash with the current tree state." + (interactive) + (vc-git--call nil "stash" "save" + (let ((ct (current-time))) + (concat + (format-time-string "Snapshot on %Y-%m-%d" ct) + (format-time-string " at %H:%M" ct)))) + (vc-git-command "*vc-git-stash*" 0 nil "stash" "apply" "-q" "stash@{0}") + (vc-resynch-buffer (vc-git-root default-directory) t t)) + (defun vc-git-stash-list () (delete "" @@ -882,7 +897,7 @@ (defun vc-git-stash-delete-at-point () (interactive) (let ((stash (vc-git-stash-get-at-point (point)))) - (when (y-or-n-p (format "Remove stash %s ?" stash)) + (when (y-or-n-p (format "Remove stash %s ? " stash)) (vc-git--run-command-string nil "stash" "drop" (format "stash@%s" stash)) (vc-dir-refresh))))