What do you think of this kind of code-to-files-mapping?
~/proj/MyClass.ext
~/proj/MyClass:constructors.ext
~/proj/MyClass:properties.ext
~/proj/MyClass:method-one.ext
~/proj/MyClass:method-two:int.ext
~/proj/MyClass:method-two:string.ext
In a language which is more functional-oriented:
~/proj/definitions.ext
~/proj/function-one.ext
~/proj/function-two:int.ext
~/proj/function-two:string.ext
...
The point would be that when we are working on our project, we don't see this multiplicity of files.
We might either have some kind of daemon process that keeps a mirror MyClass.ext
file perfectly in sync with this bunch of files, or our favorite code editor sees them all but shows them as their logical aggregation, or this kind of conversion only happens as a set of pre+post-commit hooks.
Now, since we wouldn't be interested in this idea's implementation if it's not a good idea, let's not bother ourselves with its implementation details (the how); let's suppose we've got the perfect implementation that would make this idea to work well for us.
What I would like for us to find together is a good list of pros & cons to this approach, both at a high level and at more specific low levels of your concern.
When we'll be done brainstorming this and seeing each answer's votes, we should see easily if this is a good idea or not. Therefore, please write one pro/con per answer.
EDIT
From all the answers and especially Scott's, I derived that the only real way my idea might be useful, would be to be able to bring automatic listing of changed class:method
couples in the detailed part of each commit-to-vcs message. This could much more easily be achieved by small scripts run before commits, to update the message template accordingly.