In addition, if you label or branch the codebase you should tag all files related to that version e.g. source files, library files, configuration files, deployment descriptors, API-implementations otherwise it becomes difficult to re-constitute the application at that version.