I've had a number of thoughts about the "supposed" missing SCM features of git.
1) Alternate Encodings (including on-disk delta compression)
If the default objects filename doesn't exist, we can try for
other alternative
encodings e.g. 00/a29c403e751c2a2a61eb24fa2249c8956d1c80.xdelta which
can specify the object content as a delta or other ingenious idea...2) Rename/Code-movement Tracking (file and/or function)
Additional object type tag(s) "rename" which references a changeset
and lists the movement metadata3) SHA1 backwards reference cache
Allows quickly finding all commits which reference a given tree root,
all/the "rename" for a given commit, all xdeltas which use this blob.There a quite a few important issues with all 3 of these ideas so I thought I would elaborate each in separate emails... (coming soon :)
-- Kris Shannon <kris.shannon.kernel@gmail.com>