Mercurial > september
changeset 2:08dfce548a9f
Add a README file.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sat, 28 Mar 2015 15:43:57 -0700 |
parents | 6bbebb01f614 |
children | 455043eb436a |
files | README.md |
diffstat | 1 files changed, 49 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README.md Sat Mar 28 15:43:57 2015 -0700 @@ -0,0 +1,49 @@ + +# SEPTEMBER + +September is a program that takes a source controlled project, goes back to +specific points in that project's timeline, and does something. + +This is typically useful for generating documentation for each released version +of a project, but it can do other stuff like report on how the code evolved over +time in terms of amount or complexity. + + +## Usage + +You simply run it by pointing at your repo: + + python september.py /path/to/repo --command "foo bar" + +By default, this will clone your repository into a temporary directory (which +you can override with the `--tmp-dir` argument), update back to every tag, and +run `foo bar` each time at the root of the clone. + +September will guess what kind of repository you're giving it, and do the +appropriate things to clone and update it. Right now Git and Mercurial are +supported. + + +## Configuration file + +You can pass a configuration file to September with the `--config` argument. If +you have a `.september.cfg` file at the root of your repository, it will pick it +up automatically otherwise. + +The configuration file must specify settings in a `september` section: + + [september] + command = echo "Processing tag %(tag)s..." + use_shell = 1 + +Supported configuration settings include: + +* `command`: The command to run. Use `%(tag)s` to insert the name of current tag + in the command. +* `use_shell`: Whether the command should be passed to a shell (_e.g._ if using + shell commands like `ls` or `echo`, or using pipes or redirection). +* `first_tag`: Don't update to tags older than the tag specified as the first + tag. +* `tag_pattern`: A regular expression that defines which tags to consider. Any + tag that _doesn't_ match the pattern will be ignored. +