aboutsummaryrefslogtreecommitdiffstats
path: root/remote.go
diff options
context:
space:
mode:
authorJeremy Stribling <strib@alum.mit.edu>2017-09-08 17:51:38 -0700
committerJeremy Stribling <strib@alum.mit.edu>2017-09-09 12:00:17 -0700
commit841b62a321b3739381b48aeea7364126d1c54520 (patch)
tree6d09c53325a7c31e15aa794631ec41c0b36b038c /remote.go
parentbb3217ce5d5ed682a5c830c40ea031d3c92a8a7e (diff)
downloadgo-git-841b62a321b3739381b48aeea7364126d1c54520.tar.gz
plumbing: the commit walker can skip externally-seen commits
When the revlist is computing the set of hashes needed to transfer, it doesn't need to walk over commits it has already processed. So, it can instruct the commit walker not to walk those commits by passing in its own `seen` map. For a 36K object repo, this brought the time for `revlist.Objects` down from 50s to 30s.
Diffstat (limited to 'remote.go')
-rw-r--r--remote.go2
1 files changed, 1 insertions, 1 deletions
diff --git a/remote.go b/remote.go
index 34ea7f5..5869d18 100644
--- a/remote.go
+++ b/remote.go
@@ -615,7 +615,7 @@ func isFastForward(s storer.EncodedObjectStorer, old, new plumbing.Hash) (bool,
}
found := false
- iter := object.NewCommitPreorderIter(c, nil)
+ iter := object.NewCommitPreorderIter(c, nil, nil)
return found, iter.ForEach(func(c *object.Commit) error {
if c.Hash != old {
return nil