Stamping assemblies with some form of version number is incredibly useful when trying to tie a binary back to it's source code commit. When using standard centralised source control systems this is a relatively simple process as each commit has an incremental change set number generated by the server and TeamCity exposes this as an internal variable %build.vcs.number%, but with distributed version control systems this is a little more complicated.