Version control information in your prompt.
This project is not under active development. Forks are encouraged!
Download vcprompt, make it executable and add it to your prompt:
$ curl -sL https://github.com/djl/vcprompt/raw/master/bin/vcprompt > ~/bin/vcprompt
$ chmod 755 ~/bin/vcprompt
For bash, you'll want to do something like this:
$ export PS1='\u@\h:\w \$(vcprompt)\$'
ZSH users should be aware that they will have to set the
PROMPT_SUBST option first:
$ setopt prompt_subst
$ export PS1='%n@%m:%~ $(vcprompt)$ '
-
-f, --format FORMATPasses a custom output format to
vcprompt. Defaults to%s:%b. See below for more details. -
-p, --path PATHThe path on which to run
vcprompt. Defaults to the current directory. -
-n, --no-newlineDo not print a trailing newline character.
-
-s, --systemsPrints all available version control systems to standard out.
-
-t, --timeoutThe maximum execution time in milliseconds.
-
-h, --helpPrints the help message and exists.
-
-v, --versionPrints the current version number and exits.
Each version control system also has it's own formatting option.
The options take the form of --format-SYSTEM.
The available options are currently:
--format-bzr--format-cvs--format-darcs--format-fossil--format-git--format-hg--format-svn
You can customise the status symbols used with the following options:
-
-A, --stagedThe symbol to print when changes have been staged. Defaults to
* -
-M, --modifiedThe symbol to print when files have been modified. Defaults to
+ -
-U, --untrackedThe symbol to print when there are untracked files. Defaults to
?
vcprompt comes with a number of formatting tokens. What follows is a
list of all the available tokens:
-
%s,%nThe "short name" of the version control system currently in use. E.g.
git,hg,svn -
%hThe hash of the repository. If no hash is available it will show the revision number instead.
-
%rThe revision number of the repository. If no revision number is available it will return the hash instead.
-
%bThe current branch (or basename of the repository if the branch name is unavailable).
-
%mDisplays a plus symbol (
+) if there are any changes (which are not staged for commit, in systems that make such a distinction, i.e. git). -
%aDisplays an asterisk (
*) if there are any changes staged for commit (in systems that make such a distinction, i.e. git). -
%uDisplays a question mark (
?) if there are any untracked files. -
%PThe name of the repository root directory (typically a project name).
-
%pThe relative path from the repository root directory to the current directory (or the directory specified by
--path).
-
Python 2.4 or later (including Python 3).
-
Support for Subversion >= 1.7 and Fossil requires the SQLite3 Python module to be installed (built in on Python 2.5+).
vcprompt was heavily inspired by Greg Ward's original implementation in C.
This version of vcprompt attempts to stay mostly compatible with the original although there may be some notable differences.