The title says it all, really... vcslog logs interactions with version control systems.
Currently all command-line version control systems are supported.
There are two parts to vcslog: the main script and the wrapper. The main script performs management-type functions, while the wrapper wraps each invocation of the VCS, logging information such as the command, exit status and runtime.
Extract/clone the entire vcslog distribution to ~/.vcslog [*]
$ git clone https://github.com/wolever/vcslog.git ~/.vcslog
Add ~/.vcslog/bin/ to the front of $PATH
$ echo 'export PATH="~/.vcslog/bin/:$PATH' >> ~/.profile
Run ~/.vcslog/vcslog setup to build the wrapper script, vcslog-wrapper, install the appropriate symlinks, etc.
$ ~/.vcslog/vcslog setup building vcslog-wrapper... gcc -Wall -g -c xquotestr.c -o bin/xquotestr.o gcc -Wall -g bin/xquotestr.o wrapper.c -o bin/vcslog-wrapper creating vcs symlinks: hg git svn cvs p4 ok. creating vcslog symlink... ok. creating log directory... ok. checking $PATH... ok.
$ git stuff git: 'stuff' is not a git command. See 'git --help'. $ vcslog dump cmd,duration,end_time,exit_status,filename,start_time,system_time,user_time,vcslog_version git stuff,0.00673794746399,1294479674.55,0,/Users/wolever/.vcslog/logs/vcslog-git-23165,1294479674.55,2080928.20809,1048960.02316,vcslog-wrapper-0.01
|[*]||The VCSLOG_HOME environment variable can be used to override this default.|
- Why would I use this?
The data collected by vcslog could help vcs authors learn about how people use their systems, address common problems, etc.
It's also pretty cool.
- How can I submit my data?
- Uuhh... Stay tuned! Eventually there will be a simple way to submit your data.
- What version control systems are supported?
- All of them! Because vcslog simply wraps the vcs's binary it can really support just about anything.
- Why do you have a .hgignore in a git repository?
- Because I actually despise git and use Mercurial for everything (including git repositories).