X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=pull.c;h=cd77738ac62be17e7382bc3b368e686f11f7098d;hb=000182eacf99cde27d5916aa415921924b82972c;hp=55f17c0a036e74773fb73ad669b3378af903c30a;hpb=d0d0d0bd3c2c4591ffbc292d7e082e8ad8f2057f;p=git.git diff --git a/pull.c b/pull.c index 55f17c0a..cd77738a 100644 --- a/pull.c +++ b/pull.c @@ -6,13 +6,20 @@ int get_tree = 0; int get_history = 0; +int get_delta = 1; int get_all = 0; +int get_verbosely = 0; static unsigned char current_commit_sha1[20]; static const char commitS[] = "commit"; static const char treeS[] = "tree"; static const char blobS[] = "blob"; +void pull_say(const char *fmt, const char *hex) { + if (get_verbosely) + fprintf(stderr, fmt, hex); +} + static void report_missing(const char *what, const unsigned char *missing) { char missing_hex[41]; @@ -31,6 +38,12 @@ static int make_sure_we_have_it(const char *what, unsigned char *sha1) status = fetch(sha1); if (status && what) report_missing(what, sha1); + if (get_delta) { + char delta_sha1[20]; + status = sha1_delta_base(sha1, delta_sha1); + if (0 < status) + status = make_sure_we_have_it(what, delta_sha1); + } return status; }