diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-03-11 11:32:53 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-03-17 16:18:47 -0700 |
commit | 36cfda15527d4eb50c84256307e3cb46578f975e (patch) | |
tree | 636ad34656122b3c22046010b315d3581bca84f8 /transport.h | |
parent | ea2c69ed4728070be1d2ee953a6948398b859150 (diff) | |
download | git-36cfda15527d4eb50c84256307e3cb46578f975e.tar.gz |
refs_from_alternate: helper to use refs from alternates
The receiving end of "git push" advertises the objects that the repository
itself does not use, but are at the tips of refs in other repositories
whose object databases are used as alternates for it. This helps it avoid
having to receive (and the pusher having to send) objects that are already
available to the receiving repository via the alternates mechanism.
Tweak the helper function that implements this feature, and move it to
transport.[ch] for future reuse by other programs.
The additional test demonstrates how this optimization is helping "git push",
and "git fetch" is ignorant about it.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Diffstat (limited to 'transport.h')
-rw-r--r-- | transport.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/transport.h b/transport.h index e803c0e7ba..efb1968869 100644 --- a/transport.h +++ b/transport.h @@ -166,4 +166,7 @@ int transport_refs_pushed(struct ref *ref); void transport_print_push_status(const char *dest, struct ref *refs, int verbose, int porcelain, int *nonfastforward); +typedef void alternate_ref_fn(const struct ref *, void *); +extern int refs_from_alternate_cb(struct alternate_object_database *e, void *cb); + #endif |