My workflow usually involves me making multiple changes to a file, each of which belongs to it's own conceptual unit of change across the project (= commit).
What I would like to be able to do is to add certain diffs (either a whole file, or only certain lines of a file) to a pending commit (which would probably have to be named) and to have multiple pending commits 'active' at the same time.
Then when all changes related to a particular pending commit are complete across all files, I can commit the named commit!
Any ideas of which VCS would be a good candidate for this?