Merge commit 'refs/merge-requests/11' of git://gitorious.org/magit/mainline

This commit is contained in:
Phil Jackson 2010-03-20 16:24:05 +00:00
commit 0fc398039d

View file

@ -401,13 +401,11 @@ Many Magit faces inherit from this one by default."
(defun magit-get-top-dir (cwd) (defun magit-get-top-dir (cwd)
(let ((cwd (expand-file-name cwd))) (let ((cwd (expand-file-name cwd)))
(and (file-directory-p cwd) (when (file-directory-p cwd)
(let* ((default-directory cwd) (let* ((default-directory cwd)
(magit-dir (cdup (magit-git-string "rev-parse" "--show-cdup")))
(magit-git-string "rev-parse" "--git-dir"))) (when cdup
(and magit-dir (file-name-as-directory (expand-file-name cdup cwd)))))))
(file-name-as-directory
(or (file-name-directory magit-dir) cwd)))))))
(defun magit-get-ref (ref) (defun magit-get-ref (ref)
(magit-git-string "symbolic-ref" "-q" ref)) (magit-git-string "symbolic-ref" "-q" ref))
@ -801,6 +799,12 @@ Many Magit faces inherit from this one by default."
(magit-show-commit (or prev section))) (magit-show-commit (or prev section)))
(goto-char (magit-section-beginning (or prev section)))))))) (goto-char (magit-section-beginning (or prev section))))))))
(defun magit-goto-parent-section ()
(interactive)
(let ((parent (magit-section-parent (magit-current-section))))
(when parent
(goto-char (magit-section-beginning parent)))))
(defun magit-goto-section (path) (defun magit-goto-section (path)
(let ((sec (magit-find-section path magit-top-section))) (let ((sec (magit-find-section path magit-top-section)))
(if sec (if sec
@ -877,6 +881,13 @@ Many Magit faces inherit from this one by default."
(interactive) (interactive)
(magit-section-hideshow #'magit-section-expand)) (magit-section-hideshow #'magit-section-expand))
(defun magit-toggle-file-section ()
"Like `magit-toggle-section' but toggles at file granularity."
(interactive)
(when (eq 'hunk (first (magit-section-context-type (magit-current-section))))
(magit-goto-parent-section))
(magit-toggle-section))
(defun magit-toggle-section () (defun magit-toggle-section ()
(interactive) (interactive)
(magit-section-hideshow (magit-section-hideshow
@ -1243,6 +1254,7 @@ Many Magit faces inherit from this one by default."
(define-key map (kbd "M-H") 'magit-show-only-files-all) (define-key map (kbd "M-H") 'magit-show-only-files-all)
(define-key map (kbd "M-s") 'magit-show-level-4) (define-key map (kbd "M-s") 'magit-show-level-4)
(define-key map (kbd "M-S") 'magit-show-level-4-all) (define-key map (kbd "M-S") 'magit-show-level-4-all)
(define-key map (kbd "<M-left>") 'magit-goto-parent-section)
(define-key map (kbd "g") 'magit-refresh) (define-key map (kbd "g") 'magit-refresh)
(define-key map (kbd "G") 'magit-refresh-all) (define-key map (kbd "G") 'magit-refresh-all)
(define-key map (kbd "s") 'magit-stage-item) (define-key map (kbd "s") 'magit-stage-item)
@ -2412,10 +2424,16 @@ branch."
(magit-run-git "reset" (if hard "--hard" "--soft") (magit-run-git "reset" (if hard "--hard" "--soft")
(magit-rev-to-git rev)))) (magit-rev-to-git rev))))
(defun magit-reset-head-hard (rev)
(interactive (list (magit-read-rev (format "Hard reset head to")
(or (magit-default-rev)
"HEAD"))))
(magit-reset-head rev t))
(defun magit-reset-working-tree () (defun magit-reset-working-tree ()
(interactive) (interactive)
(if (yes-or-no-p "Discard all uncommitted changes? ") (when (yes-or-no-p "Discard all uncommitted changes? ")
(magit-run-git "reset" "--hard"))) (magit-reset-head-hard "HEAD")))
;;; Rewriting ;;; Rewriting
@ -2592,7 +2610,7 @@ branch."
;;; Log edit mode ;;; Log edit mode
(defvar magit-log-edit-map (defvar magit-log-edit-mode-map
(let ((map (make-sparse-keymap))) (let ((map (make-sparse-keymap)))
(define-key map (kbd "C-c C-c") 'magit-log-edit-commit) (define-key map (kbd "C-c C-c") 'magit-log-edit-commit)
(define-key map (kbd "C-c C-a") 'magit-log-edit-toggle-amending) (define-key map (kbd "C-c C-a") 'magit-log-edit-toggle-amending)
@ -2618,8 +2636,7 @@ Prefix arg means justify as well."
(define-derived-mode magit-log-edit-mode text-mode "Magit Log Edit" (define-derived-mode magit-log-edit-mode text-mode "Magit Log Edit"
(set (make-local-variable 'fill-paragraph-function) (set (make-local-variable 'fill-paragraph-function)
'magit-log-fill-paragraph) 'magit-log-fill-paragraph))
(use-local-map magit-log-edit-map))
(defun magit-log-edit-cleanup () (defun magit-log-edit-cleanup ()
(save-excursion (save-excursion