The tricky part of using a git (or other rcs) archive as distribution source package format is handling pristine upstream tarballs.

One approach would be to try to create a git archive that didn't include objects present in the upstream tarball. Then, to unpack the source package, you'd unpack the upstream tarball, convert the files in it into git objects and add them into the .git directory. This way a pristine upstream tarball is available for verification, and it also has the same properties of not needing to re-upload the source for every package release as the current Debian source format.

This seems like it might be possible to implement, but you'd need to know quite a lot about git internals to remove the redundant objects from the git repo and regenerate them from the tarball.


Another approach would be to keep the pristine upstream tarball in the git archive, and then the source package would consist entirely of the git archive. This doesn't have the same nice minimal bandwidth upload behavior -- unless you can git push your changes to do the upload.

Storing a lot of upstream tarballs in git wouldn't be efficient, but I've written pristine-tar to take care of that. :-)