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