Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Logs interactions with version control systems
Python C C++
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
bin Adding bin/README.txt
src
.hgignore
LICENSE.txt
README.rst
vcslog

README.rst

vcslog logs vcs interactions!

The title says it all, really... vcslog logs interactions with version control systems.

Currently all command-line version control systems are supported.

Overview

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.

Setup

  1. Extract/clone the entire vcslog distribution to ~/.vcslog [*]

    $ git clone https://github.com/wolever/vcslog.git ~/.vcslog
    
  2. Add ~/.vcslog/bin/ to the front of $PATH

    $ echo 'export PATH="~/.vcslog/bin/:$PATH' >> ~/.profile
    
  3. 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.
    
  4. Test it!

    $ 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.

FAQ

Why would I use this?

For science!

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).
Something went wrong with that request. Please try again.