fast-import: let importers retrieve blobs
commit85c62395b152f99e8867aaf84cea93dddc03243c
authorDavid Barr <david.barr@cordelta.com>
Sun, 28 Nov 2010 19:45:01 +0000 (28 13:45 -0600)
committerJunio C Hamano <gitster@pobox.com>
Wed, 1 Dec 2010 21:27:37 +0000 (1 13:27 -0800)
treee0c85a28a2ad00bb8d05536286bfc189dac3d962
parent4980fffb2c0848b354757ca270b4852363e9befa
fast-import: let importers retrieve blobs

New objects written by fast-import are not available immediately.
Until a checkpoint has been started and finishes writing the pack
index, any new blobs will not be accessible using standard git tools.

So introduce a new way to access them: a "cat-blob" command in the
command stream requests for fast-import to print a blob to stdout or a
file descriptor specified by the argument to --cat-blob-fd.  The value
for cat-blob-fd cannot be specified in the stream because that would
be a layering violation: the decision of where to direct a stream has
to be made when fast-import is started anyway, so we might as well
make the stream format is independent of that detail.

Output uses the same format as "git cat-file --batch".

Thanks to Sverre Rabbelier and Sam Vilain for guidance in designing
the protocol.

Based-on-patch-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: David Barr <david.barr@cordelta.com>
Acked-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-fast-import.txt
fast-import.c
t/t9300-fast-import.sh