+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'
(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
(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
(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
""
(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))))