Monky is an emacs extension, provides an interactive interface for Hg
Monky provides an interactive interface for Hg. Using Monky, your can selectively commit files, view the diffs and other things.
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.
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.
you can add a untracked file by typing key s. Type k to delete the file.
This section list the files missing from the repo. Typing s will remove the file from the repo. To restore the file type k.
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.
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.
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.
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.
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.
Typing b will bring up the branch buffer. This will list all the branches. You can use C to checkout a branch.
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.
|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
|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
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 $.