一人でバージョン管理 5(Emacs 編)
vc-mode
Emacs には バージョン管理用に vc-mode というのがあるので、それを使ってみることに。Mercurial の管理下にあるファイルを Emacs で開くと勝手に vc-mode になり、モードラインに
Hg-10
みたいな表示が出る。ここで、Hg は管理システムの略称、`-' は管理状態(`-' は変更なし、`:' は変更あり)、最後の番号は RevisionNumber を表す。vc-mode では C-x v を prefix とするキーバインドが使えるようになる。
入力 | vc-mode | Mercurial での動作 |
---|---|---|
C-x v = | vc-diff | hg diff |
C-x v a | vc-update-change-log | |
C-x v b | vc-switch-backend | |
C-x v c | vc-cancel-version | |
C-x v d | vc-directory | hg status |
C-x v g | vc-annotate | hg annotate |
C-x v h | vc-insert-headers | |
C-x v i | vc-register | |
C-x v l | vc-print-log | hg log |
C-x v m | vc-merge | hg merge |
C-x v r | vc-retrieve-snapshot | |
C-x v s | vc-create-snapshot | |
C-x v u | vc-revert-buffer | hg revert |
C-x v v | vc-next-action | hg add, hg commit (C-c C-c) |
C-x v ~ | vc-version-other-window | hg cat -r N -o hoge.~N~ hoge |
mercurial.el(hg-mode)
ローカルで使う分には vc-mode で十分だけど、push や pull も出来るように Mercurial 同梱の mercurial.el を導入する。mercurial.el を load-path に置いて .emacs に
(require 'mercurial)
と書くだけ。hg-mode では C-c h を prefix としたキーバインドも使えるようになる(help は C-c h h)。r オプションとかを使いたい場合は C-u 付きで呼び出せばいい。
C-x v | hg-mode | C-c h | hg-mode |
---|---|---|---|
C-x v = | hg-diff | C-c h , | hg-incoming |
C-x v a | vc-update-change-log | C-c h . | hg-outgoing |
C-x v b | vc-switch-backend | C-c h | hg-pull |
C-x v c | hg-undo | C-c h = | hg-diff-repo |
C-x v d | vc-directory | C-c h > | hg-push |
C-x v g | hg-annotate | C-c h ? | hg-help-overview |
C-x v h | vc-insert-headers | C-c h A | hg-addremove |
C-x v i | hg-add | C-c h U | hg-revert |
C-x v l | hg-log | C-c h a | hg-add |
C-x v m | vc-merge | C-c h c | hg-commit-start |
C-x v n | hg-commit-start | C-c h f | hg-forget |
C-x v r | vc-retrieve-snapshot | C-c h h | hg-help-overview |
C-x v s | vc-create-snapshot | C-c h i | hg-init |
C-x v u | hg-revert-buffer | C-c h l | hg-log-repo |
C-x v v | vc-next-action | C-c h r | hg-root |
C-x v ~ | hg-version-other-window | C-c h s | hg-status |
- | - | C-c h u | hg-update |