Subject: Add git-archive [take #2]

From: Franck Bui-Huu <[email-masked]>
Date: Thu, 07 Sep 2006 15:08:19 +0200

I'm sending a new version of the patchset which allows 'git-archive'
and 'git-upload-archive' command. I tried to take into account all
feedbacks made by Junio and Rene, but there are still some open points.

  1/ Allow 'git-upload-archive' command to enable/disable some
     formats. This should be done by 'git-upload-archive'.

  2/ Can I remove 'git-upload-tar' command ? If so, the current
     implementation of 'git-upload-archive' won't work with the old
     'git-tar-tree --remote' command because the protocol needs a
     "argument --format" to be passed to the server. Therefore we can
     either modify 'git-tar-tree' or simply remove it.

  3/ Should I kill 'git-zip-tree' command ? If so should I rename
     builtin-zip-tree.c file into zip-tree.c or something else ?

  4/ Progress indicator support. Junio wants to mimic upload-pack for
     that. But it will lead in a lot of duplicated code if we don't
     try to share code. Can we copy that code anyways and clean up
     later ?

  5/ Should we use "struct tree_desc" based interface for tree parsing
     ? According to Rene it doesn't worth it as soon as you actually
     start to do something to the trees

  6/ Simple subtree matching would be enough, at least for now.

Did I forgot something else ?

Point 1 seems to be important. As soons as we plug git-upload-archive,
we need to control what kind of formats the server deal with.

Point 2 and 3 are easy to achieve, just need a "go wild" authorization.

Point 4, seems to be high in priority since we don't want to deal with
clients and servers interoperate issues.

Points 5 and 6 can be done later. These improvements won't break if
done after releasing.

		Franck