#pragma section-numbers 2 = Crecord Extension = <> == Status == '''This extension has been incorporated into Mercurial''' (since v3.8.1). ''Author: Mark Edgington'' Web page: http://www.bitbucket.org/edgimar/crecord/wiki/Home Repository: https://bitbucket.org/edgimar/crecord == Overview == The crecord extension is a curses (i.e. text-based GUI) interface which provides the `crecord` and `qcrecord` commands that may be used in lieu of `commit` or `qnew -f`. These commands let you choose which parts of the changes in a working directory you'd like to commit, at the granularity of patch hunks or lines. It is similar in spirit to the [[http://darcs.net/manual/node7.html#SECTION00761000000000000000|darcs record]] command and the RecordExtension. == Features == In addition to allowing you to choose changes to commit at a line-level granularity, crecord has the following advantages over the text-only RecordExtension: * Ability to scroll through all changes, jumping back and forth between changes. * Patch headers and hunks can be folded to make it easy to view only the changes you're interested in. * Commit message can be incrementally edited as you work through the changes * Color display of changes and trailing whitespace * Final patch can be reviewed / modified in an external editor prior to committing == Configuration == === For Mercurial v3.8.1 and later === Configure your `.hgrc` file to enable the extension by adding following lines: {{{ [ui] interface = curses }}} The curses interface will be used by all interactive commits, e.g. {{{ hg commit -i }}} You may add an alias to the `.hgrc` to mimic the old call to crecord: {{{ [alias] crecord = commit -i }}} === For older Mercurial versions === Users of older versions of Mercurial (< 3.8.1) can install the extension by downloading the crecord archive from the site above, and extracting it to a folder where you prefer to keep extensions (e.g. `$HOME/hgext`). Enable the extension by adding the following to your `.hgrc`: {{{ [extensions] hgext.crecord=/path/to/crecord/package }}} (note: the package directory is the one containing the `__init__.py` file) ---- CategoryExtensionsByOthers