1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
  
     | 
    
      # git-messenger.el
`git-messenger.el` is Emacs port of [git-messenger.vim](https://github.com/rhysd/git-messenger.vim).
`git-messenger.el` provides function that popup commit message at current line.
This is useful when you want to know why this line was changed.
## Installation
`git-messenger` is available on [MELPA](https://melpa.org/) and [MELPA stable](https://stable.melpa.org/)
You can install `git-messenger` with the following command.
<kbd>M-x package-install [RET] git-messenger [RET]</kbd>
## Dependency
* [popup](https://github.com/auto-complete/popup-el)
## Supported VCS
- Git
- Subversion
- Mercurial
## Commands
### `git-messenger:popup-message`
Pop up last commit message at current line. Show detail message, Commit ID, Author,
Date and commit message with `C-u` prefix
## Key Bindings
You can modify key bindings by customizing `git-messenger-map`.
| Key                  | Command                                                 |
|:--------------------:|:--------------------------------------------------------|
| `M-w`                | Copy commit message and quit                            |
| `c`                  | Copy commit ID and quit                                 |
| `d`                  | Pop up `git diff` of last change of this line           |
| `s`                  | Pop up `git show --stat` of last change of this line    |
| `S`                  | Pop up `git show --stat -p` of last change of this line |
| `q`                  | Quit                                                    |
## Customize
### `git-messenger:show-detail`(Default `nil`)
Always show detail message if this value is `t`.
### `git-messenger:handled-backends`(Default `'(git svn)`)
Handled VCS which `git-messenger` uses.
Entries in this list will be tried in order to determine whether a
file is under that sort of version control.
### `git-messenger:use-magit-popup`(Default `nil`)
Use `magit-show-commit` instead of `pop-to-buffer`.
## Hooks
### `git-messenger:before-popup-hook`
Run before popup commit message. Hook function take one argument, commit message.
### `git-messenger:after-popup-hook`
Run after popup commit message. Hook function take one argument, commit message.
### `git-messenger:popup-buffer-hook`
Run after popup buffer.
## Global Variables
You may be able to use these variables useful in commands of `git-messenger-map`.
#### `git-messenger:last-message`
Last popup-ed commit message
#### `git-messenger:last-commit-id`
Last popup-ed commit ID
## Sample Configuration
```lisp
(require 'git-messenger) ;; You need not to load if you install with package.el
(global-set-key (kbd "C-x v p") 'git-messenger:popup-message)
(define-key git-messenger-map (kbd "m") 'git-messenger:copy-message)
;; Enable magit-show-commit instead of pop-to-buffer
(custom-set-variables
 '(git-messenger:use-magit-popup t))
```
[melpa-link]: https://melpa.org/#/git-messenger
[melpa-stable-link]: https://stable.melpa.org/#/git-messenger
[melpa-badge]: https://melpa.org/packages/git-messenger-badge.svg
[melpa-stable-badge]: https://stable.melpa.org/packages/git-messenger-badge.svg
 
     |