Next: , Up: (dir)

Monky User Manual

Monky is an emacs extension, provides an interactive interface for Hg


Next: , Previous: Top, Up: Top

1 Introduction

Monky provides an interactive interface for Hg. Using Monky, your can selectively commit files, view the diffs and other things.


Next: , Previous: Introduction, Up: Top

2 Sections

All items in the Monky buffers are nested 'sections'. The visibility of the current section can be toggled using TAB key. When a section is hidden, only its first line is shown and all its children are completely invisible.


Next: , Previous: Sections, Up: Top

3 Status

Running M-x monky-status while visiting any file in a repo displays the status of the hg repo. The status buffer list down the missing files, untracked files and changed files. By default the diff of the files are invisible. Use TAB key to toggle the visibility.

During a merge the buffer will show the list of merged files, and files unmodified during the merge.


Next: , Previous: Status, Up: Top

4 Untracked files

you can add a untracked file by typing key s. Type k to delete the file.


Next: , Previous: Untracked files, Up: Top

5 Missing Files

This section list the files missing from the repo. Typing s will remove the file from the repo. To restore the file type k.


Next: , Previous: Missing Files, Up: Top

6 Staging and Committing

Changes section will list all the changes in the repo. Using monky you can select a subset of your changes and commit it. Type s to stage a file. Typing S will stage all files.

Staged Changes section will list all the staged changes in the repo. Type u to unstage a file. Typing U will unstage all the previously staged files.

Once you staged all the necessary files type c. This will pop-up a buffer for the commit message. Typing C-c C-c will commit all the staged files.

You can reset the current working directory by typing X.

Hg doesn't have any staging area. So staging and unstaging won't make any changes to your repo unless you commit.


Next: , Previous: Staging and Committing, Up: Top

7 Merged Files

After a merge, this section will list the files merged. Typing m will mark the file as resolved and x will mark the file as unresolved. After a merge, Hg doesn't allows to commit a subset of changes. so files can't be staged or unstaged. So committing after a merge will commit all the merged and unmodified files during the merge.


Next: , Previous: Merged Files, Up: Top

8 Pushing and Pulling

Type P to push the current branch, f to pull changes from remote and F to fetch changes from the remote. You can specify the source/destination to the previous commands with a prefix argument.


Next: , Previous: Pushing and Pulling, Up: Top

9 Log

Typing l will bring up the log buffer. This will list the commit logs of the repo. You can use n and p to move to the previous and next commit. Type RET to see the commit information, C to checkout the commit.

Monky will show only monky-log-cutoff-length entries. Typing e will show twice as many entries. C-u e will show all entries, and given a numeric prefix argument, e will add this number of entries.


Next: , Previous: Log, Up: Top

10 Blame

Run M-x monky-blame-current-file to see the annotation of the current file. Type RET to see the commit which introduced/changed the current line.


Next: , Previous: Blame, Up: Top

11 Branch

Typing b will bring up the branch buffer. This will list all the branches. You can use C to checkout a branch.


Next: , Previous: Branch, Up: Top

12 Queue

Use M-x monky-queue or Q from the status buffer to view the queue buffer. The queue buffer will list the Applied Patches, UnApplied Patches and the Series.

Key Description
u pop the selected patch and all the patches before it
U pop all the applied patches
s push the selected patch and all the patches before it
S push all the unapplied patches
r refresh(update) the current patch with the changes in working directory
C-u r refresh the current patch and allows to edit the commit message
R rename the selected patch
k remove the selected patch
N create a new patch on top of current patch
C-u N same as N except this will also read the commit message for the patch
i import(qimport) patches from change sets. a change set at the point or change sets in a selected region (when selected) will be imported.
d fold the selected patch into the current patch
f apply(qfinish) the selected patch into repo history
F apply(qfinish) all applied patches into repo history
G reset the guards of the selected patch with new guards
o pop all patches and edit .hg/patches/series file to reorder them


Previous: Queue, Up: Top

13 Using Hg Directly

To run a Hg command directly type : and enter the command in the minibuffer. This will refresh the status buffer after the execution of command. The output of the command can be viewed by typing $.