summaryrefslogtreecommitdiff
path: root/src/pack-objects.c
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2017-12-30 13:07:03 -0600
committerGitHub <noreply@github.com>2017-12-30 13:07:03 -0600
commit8cdf439b7714449eaddf5564933cd2fee1fc02cb (patch)
treecb2f84ebada4d5e80a4c46914842739597f7cfea /src/pack-objects.c
parent2b7a3393beefa08656ffbd2c6725e5e52e3b8af2 (diff)
parent2dcfe51de1cec11764ba88edd8eb585fa0fc02d4 (diff)
downloadlibgit2-8cdf439b7714449eaddf5564933cd2fee1fc02cb.tar.gz
Merge pull request #4028 from chescock/improve-local-fetch
Transfer fewer objects on push and local fetch
Diffstat (limited to 'src/pack-objects.c')
-rw-r--r--src/pack-objects.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/pack-objects.c b/src/pack-objects.c
index ef272e8f5..e9245143c 100644
--- a/src/pack-objects.c
+++ b/src/pack-objects.c
@@ -1642,7 +1642,7 @@ int insert_tree(git_packbuilder *pb, git_tree *tree)
if ((error = retrieve_object(&obj, pb, git_tree_id(tree))) < 0)
return error;
- if (obj->seen)
+ if (obj->seen || obj->uninteresting)
return 0;
obj->seen = 1;
@@ -1666,6 +1666,10 @@ int insert_tree(git_packbuilder *pb, git_tree *tree)
break;
case GIT_OBJ_BLOB:
+ if ((error = retrieve_object(&obj, pb, git_tree_id(tree))) < 0)
+ return error;
+ if (obj->uninteresting)
+ continue;
name = git_tree_entry_name(entry);
if ((error = git_packbuilder_insert(pb, entry_id, name)) < 0)
return error;