When I can, I version my functions. class FooBar: def foo(self): """ 1.3 fml 2002_04Apr24 """ self._foobar = ... I think it is a good idea and would like one day to use a tool that allows me to collaborate with others using a system like this (ie: as opposed to file-based checkins). One issue I see right now as a barrier is that many languages use files as a base, not functions. Another issue is the fact that there are other things than functions, such as comments, access control (public:, private:, etc) and datamembers. This probably goes hand in hand with SourceCodeInDatabase. See VisualAge. Can't you already do this with something like GitVersionControl? Git tracks code throughout the project, not on a file basis, and merges are easy enough that it's simple to commit or merge a function or two rather than a whole file. --MarnenLaibowKoser 29 Aug 2011