autorevision extracts metadata about the current revision from your repository. It is meant to be used by project build systems to extract properties that can be used in software version strings. Repository types supported include git, hg, bzr, and svn. It can create files containing variable and macro definitions suitable for C, C++, Java, sh, Python, Perl, PHP, Lua, JavaScript, and header files suitable for use in preprocessing Info.plist files.