]> git.ipfire.org Git - thirdparty/git.git/commitdiff
Merge branch 'nd/fetch-into-shallow' into maint
authorJunio C Hamano <gitster@pobox.com>
Wed, 23 Oct 2013 20:32:17 +0000 (13:32 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 23 Oct 2013 20:32:17 +0000 (13:32 -0700)
When there is no sufficient overlap between old and new history
during a "git fetch" into a shallow repository, objects that the
sending side knows the receiving end has were unnecessarily sent.

* nd/fetch-into-shallow:
  Add testcase for needless objects during a shallow fetch
  list-objects: mark more commits as edges in mark_edges_uninteresting
  list-objects: reduce one argument in mark_edges_uninteresting
  upload-pack: delegate rev walking in shallow fetch to pack-objects
  shallow: add setup_temporary_shallow()
  shallow: only add shallow graft points to new shallow file
  move setup_alternate_shallow and write_shallow_commits to shallow.c

1  2 
commit.h
fetch-pack.c
t/t5500-fetch-pack.sh
upload-pack.c

diff --cc commit.h
Simple merge
diff --cc fetch-pack.c
index f5d99c11813b1ae2eee0bb7dfd94eab60c721b64,28195ed78b281204850de9c5bfeee03fa29efd79..aff4f5abab667d054c9ab1b925e4877a4fd8d243
@@@ -896,9 -845,7 +845,9 @@@ static struct ref *do_fetch_pack(struc
        if (args->stateless_rpc)
                packet_flush(fd[1]);
        if (args->depth > 0)
-               setup_alternate_shallow();
+               setup_alternate_shallow(&shallow_lock, &alternate_shallow_file);
 +      else
 +              alternate_shallow_file = NULL;
        if (get_pack(args, fd, pack_lockfile))
                die("git fetch-pack: fetch failed.");
  
Simple merge
diff --cc upload-pack.c
Simple merge