From 0bbd2339b09a82e7a10de851f8b4bee160d9b824 Mon Sep 17 00:00:00 2001 From: Jeremy Stribling Date: Sat, 9 Sep 2017 11:50:47 -0700 Subject: [PATCH 1/3] vendor: pull in gogit commit walker optimization --- .../plumbing/object/commit_walker.go | 22 ++- .../go-git.v4/plumbing/revlist/revlist.go | 2 +- vendor/gopkg.in/src-d/go-git.v4/remote.go | 2 +- vendor/gopkg.in/src-d/go-git.v4/repository.go | 6 +- vendor/vendor.json | 166 +++++++++--------- 5 files changed, 102 insertions(+), 96 deletions(-) diff --git a/vendor/gopkg.in/src-d/go-git.v4/plumbing/object/commit_walker.go b/vendor/gopkg.in/src-d/go-git.v4/plumbing/object/commit_walker.go index 797c17a5f5..40ad2582bc 100644 --- a/vendor/gopkg.in/src-d/go-git.v4/plumbing/object/commit_walker.go +++ b/vendor/gopkg.in/src-d/go-git.v4/plumbing/object/commit_walker.go @@ -8,9 +8,10 @@ import ( ) type commitPreIterator struct { - seen map[plumbing.Hash]bool - stack []CommitIter - start *Commit + seenExternal map[plumbing.Hash]bool + seen map[plumbing.Hash]bool + stack []CommitIter + start *Commit } // NewCommitPreorderIter returns a CommitIter that walks the commit history, @@ -20,16 +21,21 @@ type commitPreIterator struct { // and will return the error. Other errors might be returned if the history // cannot be traversed (e.g. missing objects). Ignore allows to skip some // commits from being iterated. -func NewCommitPreorderIter(c *Commit, ignore []plumbing.Hash) CommitIter { +func NewCommitPreorderIter( + c *Commit, + seenExternal map[plumbing.Hash]bool, + ignore []plumbing.Hash, +) CommitIter { seen := make(map[plumbing.Hash]bool) for _, h := range ignore { seen[h] = true } return &commitPreIterator{ - seen: seen, - stack: make([]CommitIter, 0), - start: c, + seenExternal: seenExternal, + seen: seen, + stack: make([]CommitIter, 0), + start: c, } } @@ -57,7 +63,7 @@ func (w *commitPreIterator) Next() (*Commit, error) { } } - if w.seen[c.Hash] { + if w.seen[c.Hash] || w.seenExternal[c.Hash] { continue } diff --git a/vendor/gopkg.in/src-d/go-git.v4/plumbing/revlist/revlist.go b/vendor/gopkg.in/src-d/go-git.v4/plumbing/revlist/revlist.go index c802255219..80e333b3d5 100644 --- a/vendor/gopkg.in/src-d/go-git.v4/plumbing/revlist/revlist.go +++ b/vendor/gopkg.in/src-d/go-git.v4/plumbing/revlist/revlist.go @@ -119,7 +119,7 @@ func reachableObjects( ignore []plumbing.Hash, cb func(h plumbing.Hash), ) error { - i := object.NewCommitPreorderIter(commit, ignore) + i := object.NewCommitPreorderIter(commit, seen, ignore) for { commit, err := i.Next() if err == io.EOF { diff --git a/vendor/gopkg.in/src-d/go-git.v4/remote.go b/vendor/gopkg.in/src-d/go-git.v4/remote.go index 2d10e2de5e..22cb006d30 100644 --- a/vendor/gopkg.in/src-d/go-git.v4/remote.go +++ b/vendor/gopkg.in/src-d/go-git.v4/remote.go @@ -631,7 +631,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 diff --git a/vendor/gopkg.in/src-d/go-git.v4/repository.go b/vendor/gopkg.in/src-d/go-git.v4/repository.go index 8114740cad..669451768c 100644 --- a/vendor/gopkg.in/src-d/go-git.v4/repository.go +++ b/vendor/gopkg.in/src-d/go-git.v4/repository.go @@ -720,7 +720,7 @@ func (r *Repository) Log(o *LogOptions) (object.CommitIter, error) { return nil, err } - return object.NewCommitPreorderIter(commit, nil), nil + return object.NewCommitPreorderIter(commit, nil, nil), nil } // Tags returns all the References from Tags. This method returns all the tag @@ -949,7 +949,7 @@ func (r *Repository) ResolveRevision(rev plumbing.Revision) (*plumbing.Hash, err commit = c } case revision.CaretReg: - history := object.NewCommitPreorderIter(commit, nil) + history := object.NewCommitPreorderIter(commit, nil, nil) re := item.(revision.CaretReg).Regexp negate := item.(revision.CaretReg).Negate @@ -979,7 +979,7 @@ func (r *Repository) ResolveRevision(rev plumbing.Revision) (*plumbing.Hash, err commit = c case revision.AtDate: - history := object.NewCommitPreorderIter(commit, nil) + history := object.NewCommitPreorderIter(commit, nil, nil) date := item.(revision.AtDate).Date diff --git a/vendor/vendor.json b/vendor/vendor.json index f727b2e018..f0a2d62063 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -762,284 +762,284 @@ "revisionTime": "2017-07-10T15:31:57Z" }, { - "checksumSHA1": "mgSGhREAKuKIA5KGEoq6+bywQis=", + "checksumSHA1": "AlB7+zLj0QKCvUPoBwN7OZyrf+U=", "origin": "github.com/keybase/go-git", "path": "gopkg.in/src-d/go-git.v4", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "1d4PgjU+LhyJ2ROnz/WwrEKVh28=", "origin": "github.com/keybase/go-git/config", "path": "gopkg.in/src-d/go-git.v4/config", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "A3WduoxOIVoBnsDAEZtI798CZtU=", "origin": "github.com/keybase/go-git/internal/revision", "path": "gopkg.in/src-d/go-git.v4/internal/revision", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "e5UthIeeVSzLfEPnEe0GPQO6+bM=", "origin": "github.com/keybase/go-git/plumbing", "path": "gopkg.in/src-d/go-git.v4/plumbing", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "neTbLTzQ9+vo97D5i+3K9iprn5c=", "origin": "github.com/keybase/go-git/plumbing/cache", "path": "gopkg.in/src-d/go-git.v4/plumbing/cache", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "pHPMiAzXG/TJqTLEKj2SHjxX4zs=", "origin": "github.com/keybase/go-git/plumbing/filemode", "path": "gopkg.in/src-d/go-git.v4/plumbing/filemode", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "RzTdA6jLPwD/m6mq+rgS2CB04d4=", "origin": "github.com/keybase/go-git/plumbing/format/config", "path": "gopkg.in/src-d/go-git.v4/plumbing/format/config", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "vOD599V5I9EsWuGT9BIU8ZAyiNY=", "origin": "github.com/keybase/go-git/plumbing/format/diff", "path": "gopkg.in/src-d/go-git.v4/plumbing/format/diff", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "mI7Ks4Bumh+OYkxuSBrIeBTAKoA=", "origin": "github.com/keybase/go-git/plumbing/format/gitignore", "path": "gopkg.in/src-d/go-git.v4/plumbing/format/gitignore", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "+lR7seogVk2qZb8dSLBv8juivxc=", "origin": "github.com/keybase/go-git/plumbing/format/idxfile", "path": "gopkg.in/src-d/go-git.v4/plumbing/format/idxfile", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "naVExGq1c3bXZ4+Em3slvB7I8so=", "origin": "github.com/keybase/go-git/plumbing/format/index", "path": "gopkg.in/src-d/go-git.v4/plumbing/format/index", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "RYeQffgqVS4Kbbk2YVcaPadXCiI=", "origin": "github.com/keybase/go-git/plumbing/format/objfile", "path": "gopkg.in/src-d/go-git.v4/plumbing/format/objfile", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "qW46T/d8YYaUd41oDvEF5jq9kvo=", "origin": "github.com/keybase/go-git/plumbing/format/packfile", "path": "gopkg.in/src-d/go-git.v4/plumbing/format/packfile", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "rA6jJ2fxdcALXL7EaP8Ja37xXjw=", "origin": "github.com/keybase/go-git/plumbing/format/pktline", "path": "gopkg.in/src-d/go-git.v4/plumbing/format/pktline", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { - "checksumSHA1": "6LZ2gIv993WaeqA2QMMvf04BRzk=", + "checksumSHA1": "smz4vtvDIJUcPM4IXD7T6x7iV/o=", "origin": "github.com/keybase/go-git/plumbing/object", "path": "gopkg.in/src-d/go-git.v4/plumbing/object", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "sBjAjpwQtYwh1xgCC/Np6k1QCxA=", "origin": "github.com/keybase/go-git/plumbing/protocol/packp", "path": "gopkg.in/src-d/go-git.v4/plumbing/protocol/packp", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "+iFHG0LBT3gYImczKZy9Gkjogpk=", "origin": "github.com/keybase/go-git/plumbing/protocol/packp/capability", "path": "gopkg.in/src-d/go-git.v4/plumbing/protocol/packp/capability", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "wVfbzV5BNhjW/HFFJuTCjkPSJ5M=", "origin": "github.com/keybase/go-git/plumbing/protocol/packp/sideband", "path": "gopkg.in/src-d/go-git.v4/plumbing/protocol/packp/sideband", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { - "checksumSHA1": "Duljerw4Evbn8KNRKtmtpLoWnv8=", + "checksumSHA1": "O+2z2RgXT/SWfSuFEF97O1rvuZg=", "origin": "github.com/keybase/go-git/plumbing/revlist", "path": "gopkg.in/src-d/go-git.v4/plumbing/revlist", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "2FPt2X+Z/oOO5twnW4QrzTvQ2yw=", "origin": "github.com/keybase/go-git/plumbing/storer", "path": "gopkg.in/src-d/go-git.v4/plumbing/storer", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "kKJbFD1KBIE37kZACAzrDdwwzlw=", "origin": "github.com/keybase/go-git/plumbing/transport", "path": "gopkg.in/src-d/go-git.v4/plumbing/transport", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "aReXFIha6HkU5jPfLWWAEMPhEp4=", "origin": "github.com/keybase/go-git/plumbing/transport/client", "path": "gopkg.in/src-d/go-git.v4/plumbing/transport/client", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "KLaUkXK0IPfAwIyC9WuzgpKl4Ts=", "origin": "github.com/keybase/go-git/plumbing/transport/file", "path": "gopkg.in/src-d/go-git.v4/plumbing/transport/file", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "4B79ZyIoeNpT4OWl/CvEQn9RP+g=", "origin": "github.com/keybase/go-git/plumbing/transport/git", "path": "gopkg.in/src-d/go-git.v4/plumbing/transport/git", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "0H7p/EuPC+LQdRWLoNO775/JIPw=", "origin": "github.com/keybase/go-git/plumbing/transport/http", "path": "gopkg.in/src-d/go-git.v4/plumbing/transport/http", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "1P0AgwgfasGL7aL5+FuuDan835c=", "origin": "github.com/keybase/go-git/plumbing/transport/internal/common", "path": "gopkg.in/src-d/go-git.v4/plumbing/transport/internal/common", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "4YEzFU96Z6iR/NIpb3NXawFpFG8=", "origin": "github.com/keybase/go-git/plumbing/transport/server", "path": "gopkg.in/src-d/go-git.v4/plumbing/transport/server", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "NY+2qZNBynx/7d7vm20G7nU4LGk=", "origin": "github.com/keybase/go-git/plumbing/transport/ssh", "path": "gopkg.in/src-d/go-git.v4/plumbing/transport/ssh", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "FlVLBdu4cjlXj9zjRRNDurRLABU=", "origin": "github.com/keybase/go-git/storage", "path": "gopkg.in/src-d/go-git.v4/storage", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "CSiF391UdjILaSUJqctaa9rvSQc=", "origin": "github.com/keybase/go-git/storage/filesystem", "path": "gopkg.in/src-d/go-git.v4/storage/filesystem", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "a7qGxujLCO4NbK2+JuvNcucVze8=", "origin": "github.com/keybase/go-git/storage/filesystem/internal/dotgit", "path": "gopkg.in/src-d/go-git.v4/storage/filesystem/internal/dotgit", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "OfzMDAIu253dJ9591gd3w/APq0I=", "origin": "github.com/keybase/go-git/storage/memory", "path": "gopkg.in/src-d/go-git.v4/storage/memory", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "AzdUpuGqSNnNK6DgdNjWrn99i3o=", "origin": "github.com/keybase/go-git/utils/binary", "path": "gopkg.in/src-d/go-git.v4/utils/binary", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "vniUxB6bbDYazl21cOfmhdZZiY8=", "origin": "github.com/keybase/go-git/utils/diff", "path": "gopkg.in/src-d/go-git.v4/utils/diff", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "UM8j6MDPfIvBJOYrXWYFpN6nwk8=", "origin": "github.com/keybase/go-git/utils/ioutil", "path": "gopkg.in/src-d/go-git.v4/utils/ioutil", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "6gGibezR20asX5JgNsGR9AWiF1s=", "origin": "github.com/keybase/go-git/utils/merkletrie", "path": "gopkg.in/src-d/go-git.v4/utils/merkletrie", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "EkYWmjvMAaEG9JPYtwE6x7hwxjY=", "origin": "github.com/keybase/go-git/utils/merkletrie/filesystem", "path": "gopkg.in/src-d/go-git.v4/utils/merkletrie/filesystem", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "M+6y9mdBFksksEGBceBh9Se3W7Y=", "origin": "github.com/keybase/go-git/utils/merkletrie/index", "path": "gopkg.in/src-d/go-git.v4/utils/merkletrie/index", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "7eEw/xsSrFLfSppRf/JIt9u7lbU=", "origin": "github.com/keybase/go-git/utils/merkletrie/internal/frame", "path": "gopkg.in/src-d/go-git.v4/utils/merkletrie/internal/frame", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "checksumSHA1": "0H0x2urvYdo68NY6fGFJG59lqoI=", "origin": "github.com/keybase/go-git/utils/merkletrie/noder", "path": "gopkg.in/src-d/go-git.v4/utils/merkletrie/noder", - "revision": "bf61ae1e0296cff73d948cdb582666270a621ada", - "revisionTime": "2017-09-08T18:12:15Z" + "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", + "revisionTime": "2017-09-09T00:51:38Z" }, { "path": "gopkg.in/warnings.v0", From 899f92014e47b4ee62a4f887474dea2e5c885199 Mon Sep 17 00:00:00 2001 From: Jeremy Stribling Date: Sat, 9 Sep 2017 13:34:35 -0700 Subject: [PATCH 2/3] vendor: pull in skip compression option --- vendor/gopkg.in/src-d/go-git.v4/options.go | 11 +- .../format/packfile/delta_selector.go | 20 ++- .../plumbing/format/packfile/encoder.go | 4 +- .../plumbing/transport/server/server.go | 2 +- vendor/gopkg.in/src-d/go-git.v4/remote.go | 6 +- vendor/vendor.json | 166 +++++++++--------- 6 files changed, 118 insertions(+), 91 deletions(-) diff --git a/vendor/gopkg.in/src-d/go-git.v4/options.go b/vendor/gopkg.in/src-d/go-git.v4/options.go index 8b088e0ae3..b3ec5caa7a 100644 --- a/vendor/gopkg.in/src-d/go-git.v4/options.go +++ b/vendor/gopkg.in/src-d/go-git.v4/options.go @@ -175,8 +175,15 @@ type PushOptions struct { Auth transport.AuthMethod // Progress is where the human readable information sent by the server is // stored, if nil nothing is stored. - Progress sideband.Progress - StatusChan plumbing.StatusChan + Progress sideband.Progress + // SkipCompression can be true if the caller doesn't need + // delta-compressed objects pushed to the remote. This can be useful to + // avoid CPU overhead when the objects don't need to be + // transferred across a network. If the remote wants a compressed + // repo after the transfer, it can run `git gc --aggressive` or + // `git repack -a -d -f --depth=250 --window=250` as needed. + SkipCompression bool + StatusChan plumbing.StatusChan } // Validate validates the fields and sets the default values. diff --git a/vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/delta_selector.go b/vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/delta_selector.go index d71f4ade9e..2af1b5581e 100644 --- a/vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/delta_selector.go +++ b/vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/delta_selector.go @@ -35,6 +35,7 @@ func newDeltaSelector(s storer.EncodedObjectStorer) *deltaSelector { // creating deltas if it's suitable, using an specific internal logic func (dw *deltaSelector) ObjectsToPack( hashes []plumbing.Hash, + skipCompression bool, statusChan plumbing.StatusChan, ) ([]*ObjectToPack, error) { update := plumbing.StatusUpdate{ @@ -43,11 +44,15 @@ func (dw *deltaSelector) ObjectsToPack( } statusChan.SendUpdate(update) - otp, err := dw.objectsToPack(hashes, statusChan, update) + otp, err := dw.objectsToPack(hashes, skipCompression, statusChan, update) if err != nil { return nil, err } + if skipCompression { + return otp, nil + } + update = plumbing.StatusUpdate{ Stage: plumbing.StatusSort, ObjectsTotal: update.ObjectsTotal, @@ -101,12 +106,19 @@ func (dw *deltaSelector) ObjectsToPack( func (dw *deltaSelector) objectsToPack( hashes []plumbing.Hash, + skipCompression bool, statusChan plumbing.StatusChan, update plumbing.StatusUpdate, ) ([]*ObjectToPack, error) { var objectsToPack []*ObjectToPack for _, h := range hashes { - o, err := dw.encodedDeltaObject(h) + var o plumbing.EncodedObject + var err error + if skipCompression { + o, err = dw.encodedObject(h) + } else { + o, err = dw.encodedDeltaObject(h) + } if err != nil { return nil, err } @@ -122,6 +134,10 @@ func (dw *deltaSelector) objectsToPack( statusChan.SendUpdateIfPossible(update) } + if skipCompression { + return objectsToPack, nil + } + if err := dw.fixAndBreakChains(objectsToPack, statusChan); err != nil { return nil, err } diff --git a/vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/encoder.go b/vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/encoder.go index 3d183b1f50..b6150e2452 100644 --- a/vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/encoder.go +++ b/vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/encoder.go @@ -49,9 +49,11 @@ func NewEncoder(w io.Writer, s storer.EncodedObjectStorer, useRefDeltas bool) *E // and writes it to the writer in the Encoder. func (e *Encoder) Encode( hashes []plumbing.Hash, + skipCompression bool, statusChan plumbing.StatusChan, ) (plumbing.Hash, error) { - objects, err := e.selector.ObjectsToPack(hashes, statusChan) + objects, err := e.selector.ObjectsToPack( + hashes, skipCompression, statusChan) if err != nil { return plumbing.ZeroHash, err } diff --git a/vendor/gopkg.in/src-d/go-git.v4/plumbing/transport/server/server.go b/vendor/gopkg.in/src-d/go-git.v4/plumbing/transport/server/server.go index 552ab11d69..34314b141e 100644 --- a/vendor/gopkg.in/src-d/go-git.v4/plumbing/transport/server/server.go +++ b/vendor/gopkg.in/src-d/go-git.v4/plumbing/transport/server/server.go @@ -165,7 +165,7 @@ func (s *upSession) UploadPack(ctx context.Context, req *packp.UploadPackRequest pr, pw := io.Pipe() e := packfile.NewEncoder(pw, s.storer, false) go func() { - _, err := e.Encode(objs, nil) + _, err := e.Encode(objs, false, nil) pw.CloseWithError(err) }() diff --git a/vendor/gopkg.in/src-d/go-git.v4/remote.go b/vendor/gopkg.in/src-d/go-git.v4/remote.go index 22cb006d30..e7ce089fa1 100644 --- a/vendor/gopkg.in/src-d/go-git.v4/remote.go +++ b/vendor/gopkg.in/src-d/go-git.v4/remote.go @@ -149,7 +149,8 @@ func (r *Remote) PushContext(ctx context.Context, o *PushOptions) error { } } - rs, err := pushHashes(ctx, s, r.s, req, hashesToPush, o.StatusChan) + rs, err := pushHashes( + ctx, s, r.s, req, hashesToPush, o.SkipCompression, o.StatusChan) if err != nil { return err } @@ -816,6 +817,7 @@ func pushHashes( sto storer.EncodedObjectStorer, req *packp.ReferenceUpdateRequest, hs []plumbing.Hash, + skipCompression bool, statusChan plumbing.StatusChan, ) (*packp.ReportStatus, error) { @@ -824,7 +826,7 @@ func pushHashes( done := make(chan error) go func() { e := packfile.NewEncoder(wr, sto, false) - if _, err := e.Encode(hs, statusChan); err != nil { + if _, err := e.Encode(hs, skipCompression, statusChan); err != nil { done <- wr.CloseWithError(err) return } diff --git a/vendor/vendor.json b/vendor/vendor.json index f0a2d62063..02a0f33ce7 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -762,284 +762,284 @@ "revisionTime": "2017-07-10T15:31:57Z" }, { - "checksumSHA1": "AlB7+zLj0QKCvUPoBwN7OZyrf+U=", + "checksumSHA1": "5WsW/yNLhZp3yceziVahymqQUl0=", "origin": "github.com/keybase/go-git", "path": "gopkg.in/src-d/go-git.v4", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "1d4PgjU+LhyJ2ROnz/WwrEKVh28=", "origin": "github.com/keybase/go-git/config", "path": "gopkg.in/src-d/go-git.v4/config", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "A3WduoxOIVoBnsDAEZtI798CZtU=", "origin": "github.com/keybase/go-git/internal/revision", "path": "gopkg.in/src-d/go-git.v4/internal/revision", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "e5UthIeeVSzLfEPnEe0GPQO6+bM=", "origin": "github.com/keybase/go-git/plumbing", "path": "gopkg.in/src-d/go-git.v4/plumbing", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "neTbLTzQ9+vo97D5i+3K9iprn5c=", "origin": "github.com/keybase/go-git/plumbing/cache", "path": "gopkg.in/src-d/go-git.v4/plumbing/cache", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "pHPMiAzXG/TJqTLEKj2SHjxX4zs=", "origin": "github.com/keybase/go-git/plumbing/filemode", "path": "gopkg.in/src-d/go-git.v4/plumbing/filemode", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "RzTdA6jLPwD/m6mq+rgS2CB04d4=", "origin": "github.com/keybase/go-git/plumbing/format/config", "path": "gopkg.in/src-d/go-git.v4/plumbing/format/config", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "vOD599V5I9EsWuGT9BIU8ZAyiNY=", "origin": "github.com/keybase/go-git/plumbing/format/diff", "path": "gopkg.in/src-d/go-git.v4/plumbing/format/diff", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "mI7Ks4Bumh+OYkxuSBrIeBTAKoA=", "origin": "github.com/keybase/go-git/plumbing/format/gitignore", "path": "gopkg.in/src-d/go-git.v4/plumbing/format/gitignore", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "+lR7seogVk2qZb8dSLBv8juivxc=", "origin": "github.com/keybase/go-git/plumbing/format/idxfile", "path": "gopkg.in/src-d/go-git.v4/plumbing/format/idxfile", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "naVExGq1c3bXZ4+Em3slvB7I8so=", "origin": "github.com/keybase/go-git/plumbing/format/index", "path": "gopkg.in/src-d/go-git.v4/plumbing/format/index", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "RYeQffgqVS4Kbbk2YVcaPadXCiI=", "origin": "github.com/keybase/go-git/plumbing/format/objfile", "path": "gopkg.in/src-d/go-git.v4/plumbing/format/objfile", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { - "checksumSHA1": "qW46T/d8YYaUd41oDvEF5jq9kvo=", + "checksumSHA1": "nK9mbm0TPqRuipvRYcUDmd60mZ8=", "origin": "github.com/keybase/go-git/plumbing/format/packfile", "path": "gopkg.in/src-d/go-git.v4/plumbing/format/packfile", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "rA6jJ2fxdcALXL7EaP8Ja37xXjw=", "origin": "github.com/keybase/go-git/plumbing/format/pktline", "path": "gopkg.in/src-d/go-git.v4/plumbing/format/pktline", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "smz4vtvDIJUcPM4IXD7T6x7iV/o=", "origin": "github.com/keybase/go-git/plumbing/object", "path": "gopkg.in/src-d/go-git.v4/plumbing/object", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "sBjAjpwQtYwh1xgCC/Np6k1QCxA=", "origin": "github.com/keybase/go-git/plumbing/protocol/packp", "path": "gopkg.in/src-d/go-git.v4/plumbing/protocol/packp", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "+iFHG0LBT3gYImczKZy9Gkjogpk=", "origin": "github.com/keybase/go-git/plumbing/protocol/packp/capability", "path": "gopkg.in/src-d/go-git.v4/plumbing/protocol/packp/capability", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "wVfbzV5BNhjW/HFFJuTCjkPSJ5M=", "origin": "github.com/keybase/go-git/plumbing/protocol/packp/sideband", "path": "gopkg.in/src-d/go-git.v4/plumbing/protocol/packp/sideband", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "O+2z2RgXT/SWfSuFEF97O1rvuZg=", "origin": "github.com/keybase/go-git/plumbing/revlist", "path": "gopkg.in/src-d/go-git.v4/plumbing/revlist", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "2FPt2X+Z/oOO5twnW4QrzTvQ2yw=", "origin": "github.com/keybase/go-git/plumbing/storer", "path": "gopkg.in/src-d/go-git.v4/plumbing/storer", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "kKJbFD1KBIE37kZACAzrDdwwzlw=", "origin": "github.com/keybase/go-git/plumbing/transport", "path": "gopkg.in/src-d/go-git.v4/plumbing/transport", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "aReXFIha6HkU5jPfLWWAEMPhEp4=", "origin": "github.com/keybase/go-git/plumbing/transport/client", "path": "gopkg.in/src-d/go-git.v4/plumbing/transport/client", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "KLaUkXK0IPfAwIyC9WuzgpKl4Ts=", "origin": "github.com/keybase/go-git/plumbing/transport/file", "path": "gopkg.in/src-d/go-git.v4/plumbing/transport/file", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "4B79ZyIoeNpT4OWl/CvEQn9RP+g=", "origin": "github.com/keybase/go-git/plumbing/transport/git", "path": "gopkg.in/src-d/go-git.v4/plumbing/transport/git", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "0H7p/EuPC+LQdRWLoNO775/JIPw=", "origin": "github.com/keybase/go-git/plumbing/transport/http", "path": "gopkg.in/src-d/go-git.v4/plumbing/transport/http", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "1P0AgwgfasGL7aL5+FuuDan835c=", "origin": "github.com/keybase/go-git/plumbing/transport/internal/common", "path": "gopkg.in/src-d/go-git.v4/plumbing/transport/internal/common", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { - "checksumSHA1": "4YEzFU96Z6iR/NIpb3NXawFpFG8=", + "checksumSHA1": "r6pkMXt3+neE/h5mCJ/pK2tRaS8=", "origin": "github.com/keybase/go-git/plumbing/transport/server", "path": "gopkg.in/src-d/go-git.v4/plumbing/transport/server", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "NY+2qZNBynx/7d7vm20G7nU4LGk=", "origin": "github.com/keybase/go-git/plumbing/transport/ssh", "path": "gopkg.in/src-d/go-git.v4/plumbing/transport/ssh", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "FlVLBdu4cjlXj9zjRRNDurRLABU=", "origin": "github.com/keybase/go-git/storage", "path": "gopkg.in/src-d/go-git.v4/storage", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "CSiF391UdjILaSUJqctaa9rvSQc=", "origin": "github.com/keybase/go-git/storage/filesystem", "path": "gopkg.in/src-d/go-git.v4/storage/filesystem", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "a7qGxujLCO4NbK2+JuvNcucVze8=", "origin": "github.com/keybase/go-git/storage/filesystem/internal/dotgit", "path": "gopkg.in/src-d/go-git.v4/storage/filesystem/internal/dotgit", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "OfzMDAIu253dJ9591gd3w/APq0I=", "origin": "github.com/keybase/go-git/storage/memory", "path": "gopkg.in/src-d/go-git.v4/storage/memory", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "AzdUpuGqSNnNK6DgdNjWrn99i3o=", "origin": "github.com/keybase/go-git/utils/binary", "path": "gopkg.in/src-d/go-git.v4/utils/binary", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "vniUxB6bbDYazl21cOfmhdZZiY8=", "origin": "github.com/keybase/go-git/utils/diff", "path": "gopkg.in/src-d/go-git.v4/utils/diff", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "UM8j6MDPfIvBJOYrXWYFpN6nwk8=", "origin": "github.com/keybase/go-git/utils/ioutil", "path": "gopkg.in/src-d/go-git.v4/utils/ioutil", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "6gGibezR20asX5JgNsGR9AWiF1s=", "origin": "github.com/keybase/go-git/utils/merkletrie", "path": "gopkg.in/src-d/go-git.v4/utils/merkletrie", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "EkYWmjvMAaEG9JPYtwE6x7hwxjY=", "origin": "github.com/keybase/go-git/utils/merkletrie/filesystem", "path": "gopkg.in/src-d/go-git.v4/utils/merkletrie/filesystem", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "M+6y9mdBFksksEGBceBh9Se3W7Y=", "origin": "github.com/keybase/go-git/utils/merkletrie/index", "path": "gopkg.in/src-d/go-git.v4/utils/merkletrie/index", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "7eEw/xsSrFLfSppRf/JIt9u7lbU=", "origin": "github.com/keybase/go-git/utils/merkletrie/internal/frame", "path": "gopkg.in/src-d/go-git.v4/utils/merkletrie/internal/frame", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "checksumSHA1": "0H0x2urvYdo68NY6fGFJG59lqoI=", "origin": "github.com/keybase/go-git/utils/merkletrie/noder", "path": "gopkg.in/src-d/go-git.v4/utils/merkletrie/noder", - "revision": "af2c2978065f4bd8013abd1f4ec8e5e97c61c044", - "revisionTime": "2017-09-09T00:51:38Z" + "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", + "revisionTime": "2017-09-09T19:14:59Z" }, { "path": "gopkg.in/warnings.v0", From 2ca1c8f519b67283cb72c8eda80f2d9d4a245758 Mon Sep 17 00:00:00 2001 From: Jeremy Stribling Date: Sun, 10 Sep 2017 21:22:15 -0700 Subject: [PATCH 3/3] vendor: delta pack window instead of compression setting --- .../gopkg.in/src-d/go-git.v4/config/config.go | 39 ++++ vendor/gopkg.in/src-d/go-git.v4/options.go | 11 +- .../format/packfile/delta_selector.go | 20 +-- .../plumbing/format/packfile/encoder.go | 4 +- .../plumbing/transport/server/server.go | 3 +- vendor/gopkg.in/src-d/go-git.v4/remote.go | 14 +- vendor/vendor.json | 168 +++++++++--------- 7 files changed, 146 insertions(+), 113 deletions(-) diff --git a/vendor/gopkg.in/src-d/go-git.v4/config/config.go b/vendor/gopkg.in/src-d/go-git.v4/config/config.go index 475045e643..477eb35702 100644 --- a/vendor/gopkg.in/src-d/go-git.v4/config/config.go +++ b/vendor/gopkg.in/src-d/go-git.v4/config/config.go @@ -6,6 +6,7 @@ import ( "errors" "fmt" "sort" + "strconv" format "gopkg.in/src-d/go-git.v4/plumbing/format/config" ) @@ -40,6 +41,14 @@ type Config struct { // Worktree is the path to the root of the working tree. Worktree string } + + Pack struct { + // Window controls the size of the sliding window for delta + // compression. The default is 10. A value of 0 turns off + // delta compression entirely. + Window uint + } + // Remotes list of repository remotes, the key of the map is the name // of the remote, should equal to RemoteConfig.Name. Remotes map[string]*RemoteConfig @@ -81,10 +90,14 @@ const ( remoteSection = "remote" submoduleSection = "submodule" coreSection = "core" + packSection = "pack" fetchKey = "fetch" urlKey = "url" bareKey = "bare" worktreeKey = "worktree" + windowKey = "window" + + defaultPackWindow = uint(10) ) // Unmarshal parses a git-config file and stores it. @@ -98,6 +111,9 @@ func (c *Config) Unmarshal(b []byte) error { } c.unmarshalCore() + if err := c.unmarshalPack(); err != nil { + return err + } c.unmarshalSubmodules() return c.unmarshalRemotes() } @@ -111,6 +127,21 @@ func (c *Config) unmarshalCore() { c.Core.Worktree = s.Options.Get(worktreeKey) } +func (c *Config) unmarshalPack() error { + s := c.Raw.Section(packSection) + window := s.Options.Get(windowKey) + if window == "" { + c.Pack.Window = defaultPackWindow + } else { + winUint, err := strconv.ParseUint(window, 10, 32) + if err != nil { + return err + } + c.Pack.Window = uint(winUint) + } + return nil +} + func (c *Config) unmarshalRemotes() error { s := c.Raw.Section(remoteSection) for _, sub := range s.Subsections { @@ -138,6 +169,7 @@ func (c *Config) unmarshalSubmodules() { // Marshal returns Config encoded as a git-config file. func (c *Config) Marshal() ([]byte, error) { c.marshalCore() + c.marshalPack() c.marshalRemotes() c.marshalSubmodules() @@ -158,6 +190,13 @@ func (c *Config) marshalCore() { } } +func (c *Config) marshalPack() { + s := c.Raw.Section(packSection) + if c.Pack.Window != defaultPackWindow { + s.SetOption(windowKey, fmt.Sprintf("%d", c.Pack.Window)) + } +} + func (c *Config) marshalRemotes() { s := c.Raw.Section(remoteSection) newSubsections := make(format.Subsections, 0, len(c.Remotes)) diff --git a/vendor/gopkg.in/src-d/go-git.v4/options.go b/vendor/gopkg.in/src-d/go-git.v4/options.go index b3ec5caa7a..8b088e0ae3 100644 --- a/vendor/gopkg.in/src-d/go-git.v4/options.go +++ b/vendor/gopkg.in/src-d/go-git.v4/options.go @@ -175,15 +175,8 @@ type PushOptions struct { Auth transport.AuthMethod // Progress is where the human readable information sent by the server is // stored, if nil nothing is stored. - Progress sideband.Progress - // SkipCompression can be true if the caller doesn't need - // delta-compressed objects pushed to the remote. This can be useful to - // avoid CPU overhead when the objects don't need to be - // transferred across a network. If the remote wants a compressed - // repo after the transfer, it can run `git gc --aggressive` or - // `git repack -a -d -f --depth=250 --window=250` as needed. - SkipCompression bool - StatusChan plumbing.StatusChan + Progress sideband.Progress + StatusChan plumbing.StatusChan } // Validate validates the fields and sets the default values. diff --git a/vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/delta_selector.go b/vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/delta_selector.go index 2af1b5581e..cb0226af1b 100644 --- a/vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/delta_selector.go +++ b/vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/delta_selector.go @@ -9,9 +9,6 @@ import ( ) const ( - // How far back in the sorted list to search for deltas. 10 is - // the default in command line git. - deltaWindowSize = 10 // deltas based on deltas, how many steps we can do. // 50 is the default value used in JGit maxDepth = int64(50) @@ -35,7 +32,7 @@ func newDeltaSelector(s storer.EncodedObjectStorer) *deltaSelector { // creating deltas if it's suitable, using an specific internal logic func (dw *deltaSelector) ObjectsToPack( hashes []plumbing.Hash, - skipCompression bool, + packWindow uint, statusChan plumbing.StatusChan, ) ([]*ObjectToPack, error) { update := plumbing.StatusUpdate{ @@ -44,12 +41,12 @@ func (dw *deltaSelector) ObjectsToPack( } statusChan.SendUpdate(update) - otp, err := dw.objectsToPack(hashes, skipCompression, statusChan, update) + otp, err := dw.objectsToPack(hashes, packWindow, statusChan, update) if err != nil { return nil, err } - if skipCompression { + if packWindow == 0 { return otp, nil } @@ -87,7 +84,7 @@ func (dw *deltaSelector) ObjectsToPack( objs := objs wg.Add(1) go func() { - if walkErr := dw.walk(objs, statusChan, &update, &updateMutex); walkErr != nil { + if walkErr := dw.walk(objs, packWindow, statusChan, &update, &updateMutex); walkErr != nil { once.Do(func() { err = walkErr }) @@ -106,7 +103,7 @@ func (dw *deltaSelector) ObjectsToPack( func (dw *deltaSelector) objectsToPack( hashes []plumbing.Hash, - skipCompression bool, + packWindow uint, statusChan plumbing.StatusChan, update plumbing.StatusUpdate, ) ([]*ObjectToPack, error) { @@ -114,7 +111,7 @@ func (dw *deltaSelector) objectsToPack( for _, h := range hashes { var o plumbing.EncodedObject var err error - if skipCompression { + if packWindow == 0 { o, err = dw.encodedObject(h) } else { o, err = dw.encodedDeltaObject(h) @@ -134,7 +131,7 @@ func (dw *deltaSelector) objectsToPack( statusChan.SendUpdateIfPossible(update) } - if skipCompression { + if packWindow == 0 { return objectsToPack, nil } @@ -259,6 +256,7 @@ func (dw *deltaSelector) sort(objectsToPack []*ObjectToPack) { func (dw *deltaSelector) walk( objectsToPack []*ObjectToPack, + packWindow uint, statusChan plumbing.StatusChan, update *plumbing.StatusUpdate, updateMutex *sync.Mutex, @@ -288,7 +286,7 @@ func (dw *deltaSelector) walk( continue } - for j := i - 1; j >= 0 && i-j < deltaWindowSize; j-- { + for j := i - 1; j >= 0 && i-j < int(packWindow); j-- { base := objectsToPack[j] // Objects must use only the same type as their delta base. // Since objectsToPack is sorted by type and size, once we find diff --git a/vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/encoder.go b/vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/encoder.go index b6150e2452..dc381a6b35 100644 --- a/vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/encoder.go +++ b/vendor/gopkg.in/src-d/go-git.v4/plumbing/format/packfile/encoder.go @@ -49,11 +49,11 @@ func NewEncoder(w io.Writer, s storer.EncodedObjectStorer, useRefDeltas bool) *E // and writes it to the writer in the Encoder. func (e *Encoder) Encode( hashes []plumbing.Hash, - skipCompression bool, + packWindow uint, statusChan plumbing.StatusChan, ) (plumbing.Hash, error) { objects, err := e.selector.ObjectsToPack( - hashes, skipCompression, statusChan) + hashes, packWindow, statusChan) if err != nil { return plumbing.ZeroHash, err } diff --git a/vendor/gopkg.in/src-d/go-git.v4/plumbing/transport/server/server.go b/vendor/gopkg.in/src-d/go-git.v4/plumbing/transport/server/server.go index 34314b141e..7f69c77946 100644 --- a/vendor/gopkg.in/src-d/go-git.v4/plumbing/transport/server/server.go +++ b/vendor/gopkg.in/src-d/go-git.v4/plumbing/transport/server/server.go @@ -165,7 +165,8 @@ func (s *upSession) UploadPack(ctx context.Context, req *packp.UploadPackRequest pr, pw := io.Pipe() e := packfile.NewEncoder(pw, s.storer, false) go func() { - _, err := e.Encode(objs, false, nil) + // TODO: plumb through a pack window. + _, err := e.Encode(objs, 10, nil) pw.CloseWithError(err) }() diff --git a/vendor/gopkg.in/src-d/go-git.v4/remote.go b/vendor/gopkg.in/src-d/go-git.v4/remote.go index e7ce089fa1..c4af447a27 100644 --- a/vendor/gopkg.in/src-d/go-git.v4/remote.go +++ b/vendor/gopkg.in/src-d/go-git.v4/remote.go @@ -149,8 +149,7 @@ func (r *Remote) PushContext(ctx context.Context, o *PushOptions) error { } } - rs, err := pushHashes( - ctx, s, r.s, req, hashesToPush, o.SkipCompression, o.StatusChan) + rs, err := pushHashes(ctx, s, r.s, req, hashesToPush, o.StatusChan) if err != nil { return err } @@ -814,19 +813,22 @@ func referencesToHashes(refs storer.ReferenceStorer) ([]plumbing.Hash, error) { func pushHashes( ctx context.Context, sess transport.ReceivePackSession, - sto storer.EncodedObjectStorer, + s storage.Storer, req *packp.ReferenceUpdateRequest, hs []plumbing.Hash, - skipCompression bool, statusChan plumbing.StatusChan, ) (*packp.ReportStatus, error) { rd, wr := io.Pipe() req.Packfile = rd + config, err := s.Config() + if err != nil { + return nil, err + } done := make(chan error) go func() { - e := packfile.NewEncoder(wr, sto, false) - if _, err := e.Encode(hs, skipCompression, statusChan); err != nil { + e := packfile.NewEncoder(wr, s, false) + if _, err := e.Encode(hs, config.Pack.Window, statusChan); err != nil { done <- wr.CloseWithError(err) return } diff --git a/vendor/vendor.json b/vendor/vendor.json index 02a0f33ce7..d052f1613d 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -762,284 +762,284 @@ "revisionTime": "2017-07-10T15:31:57Z" }, { - "checksumSHA1": "5WsW/yNLhZp3yceziVahymqQUl0=", + "checksumSHA1": "U3tqtWuGNTOEWX1ExyQ9YkJ+cNc=", "origin": "github.com/keybase/go-git", "path": "gopkg.in/src-d/go-git.v4", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { - "checksumSHA1": "1d4PgjU+LhyJ2ROnz/WwrEKVh28=", + "checksumSHA1": "4cylnEynmT2tnR2o6fj6xQ+oWAQ=", "origin": "github.com/keybase/go-git/config", "path": "gopkg.in/src-d/go-git.v4/config", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "A3WduoxOIVoBnsDAEZtI798CZtU=", "origin": "github.com/keybase/go-git/internal/revision", "path": "gopkg.in/src-d/go-git.v4/internal/revision", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "e5UthIeeVSzLfEPnEe0GPQO6+bM=", "origin": "github.com/keybase/go-git/plumbing", "path": "gopkg.in/src-d/go-git.v4/plumbing", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "neTbLTzQ9+vo97D5i+3K9iprn5c=", "origin": "github.com/keybase/go-git/plumbing/cache", "path": "gopkg.in/src-d/go-git.v4/plumbing/cache", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "pHPMiAzXG/TJqTLEKj2SHjxX4zs=", "origin": "github.com/keybase/go-git/plumbing/filemode", "path": "gopkg.in/src-d/go-git.v4/plumbing/filemode", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "RzTdA6jLPwD/m6mq+rgS2CB04d4=", "origin": "github.com/keybase/go-git/plumbing/format/config", "path": "gopkg.in/src-d/go-git.v4/plumbing/format/config", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "vOD599V5I9EsWuGT9BIU8ZAyiNY=", "origin": "github.com/keybase/go-git/plumbing/format/diff", "path": "gopkg.in/src-d/go-git.v4/plumbing/format/diff", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "mI7Ks4Bumh+OYkxuSBrIeBTAKoA=", "origin": "github.com/keybase/go-git/plumbing/format/gitignore", "path": "gopkg.in/src-d/go-git.v4/plumbing/format/gitignore", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "+lR7seogVk2qZb8dSLBv8juivxc=", "origin": "github.com/keybase/go-git/plumbing/format/idxfile", "path": "gopkg.in/src-d/go-git.v4/plumbing/format/idxfile", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "naVExGq1c3bXZ4+Em3slvB7I8so=", "origin": "github.com/keybase/go-git/plumbing/format/index", "path": "gopkg.in/src-d/go-git.v4/plumbing/format/index", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "RYeQffgqVS4Kbbk2YVcaPadXCiI=", "origin": "github.com/keybase/go-git/plumbing/format/objfile", "path": "gopkg.in/src-d/go-git.v4/plumbing/format/objfile", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { - "checksumSHA1": "nK9mbm0TPqRuipvRYcUDmd60mZ8=", + "checksumSHA1": "0ITfxWDrma8DvTxUZ7/uIqrtCfo=", "origin": "github.com/keybase/go-git/plumbing/format/packfile", "path": "gopkg.in/src-d/go-git.v4/plumbing/format/packfile", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "rA6jJ2fxdcALXL7EaP8Ja37xXjw=", "origin": "github.com/keybase/go-git/plumbing/format/pktline", "path": "gopkg.in/src-d/go-git.v4/plumbing/format/pktline", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "smz4vtvDIJUcPM4IXD7T6x7iV/o=", "origin": "github.com/keybase/go-git/plumbing/object", "path": "gopkg.in/src-d/go-git.v4/plumbing/object", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "sBjAjpwQtYwh1xgCC/Np6k1QCxA=", "origin": "github.com/keybase/go-git/plumbing/protocol/packp", "path": "gopkg.in/src-d/go-git.v4/plumbing/protocol/packp", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "+iFHG0LBT3gYImczKZy9Gkjogpk=", "origin": "github.com/keybase/go-git/plumbing/protocol/packp/capability", "path": "gopkg.in/src-d/go-git.v4/plumbing/protocol/packp/capability", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "wVfbzV5BNhjW/HFFJuTCjkPSJ5M=", "origin": "github.com/keybase/go-git/plumbing/protocol/packp/sideband", "path": "gopkg.in/src-d/go-git.v4/plumbing/protocol/packp/sideband", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "O+2z2RgXT/SWfSuFEF97O1rvuZg=", "origin": "github.com/keybase/go-git/plumbing/revlist", "path": "gopkg.in/src-d/go-git.v4/plumbing/revlist", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "2FPt2X+Z/oOO5twnW4QrzTvQ2yw=", "origin": "github.com/keybase/go-git/plumbing/storer", "path": "gopkg.in/src-d/go-git.v4/plumbing/storer", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "kKJbFD1KBIE37kZACAzrDdwwzlw=", "origin": "github.com/keybase/go-git/plumbing/transport", "path": "gopkg.in/src-d/go-git.v4/plumbing/transport", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "aReXFIha6HkU5jPfLWWAEMPhEp4=", "origin": "github.com/keybase/go-git/plumbing/transport/client", "path": "gopkg.in/src-d/go-git.v4/plumbing/transport/client", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "KLaUkXK0IPfAwIyC9WuzgpKl4Ts=", "origin": "github.com/keybase/go-git/plumbing/transport/file", "path": "gopkg.in/src-d/go-git.v4/plumbing/transport/file", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "4B79ZyIoeNpT4OWl/CvEQn9RP+g=", "origin": "github.com/keybase/go-git/plumbing/transport/git", "path": "gopkg.in/src-d/go-git.v4/plumbing/transport/git", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "0H7p/EuPC+LQdRWLoNO775/JIPw=", "origin": "github.com/keybase/go-git/plumbing/transport/http", "path": "gopkg.in/src-d/go-git.v4/plumbing/transport/http", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "1P0AgwgfasGL7aL5+FuuDan835c=", "origin": "github.com/keybase/go-git/plumbing/transport/internal/common", "path": "gopkg.in/src-d/go-git.v4/plumbing/transport/internal/common", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { - "checksumSHA1": "r6pkMXt3+neE/h5mCJ/pK2tRaS8=", + "checksumSHA1": "gDaPr5XmEH3bHya8MARK/m2tuls=", "origin": "github.com/keybase/go-git/plumbing/transport/server", "path": "gopkg.in/src-d/go-git.v4/plumbing/transport/server", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "NY+2qZNBynx/7d7vm20G7nU4LGk=", "origin": "github.com/keybase/go-git/plumbing/transport/ssh", "path": "gopkg.in/src-d/go-git.v4/plumbing/transport/ssh", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "FlVLBdu4cjlXj9zjRRNDurRLABU=", "origin": "github.com/keybase/go-git/storage", "path": "gopkg.in/src-d/go-git.v4/storage", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "CSiF391UdjILaSUJqctaa9rvSQc=", "origin": "github.com/keybase/go-git/storage/filesystem", "path": "gopkg.in/src-d/go-git.v4/storage/filesystem", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "a7qGxujLCO4NbK2+JuvNcucVze8=", "origin": "github.com/keybase/go-git/storage/filesystem/internal/dotgit", "path": "gopkg.in/src-d/go-git.v4/storage/filesystem/internal/dotgit", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "OfzMDAIu253dJ9591gd3w/APq0I=", "origin": "github.com/keybase/go-git/storage/memory", "path": "gopkg.in/src-d/go-git.v4/storage/memory", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "AzdUpuGqSNnNK6DgdNjWrn99i3o=", "origin": "github.com/keybase/go-git/utils/binary", "path": "gopkg.in/src-d/go-git.v4/utils/binary", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "vniUxB6bbDYazl21cOfmhdZZiY8=", "origin": "github.com/keybase/go-git/utils/diff", "path": "gopkg.in/src-d/go-git.v4/utils/diff", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "UM8j6MDPfIvBJOYrXWYFpN6nwk8=", "origin": "github.com/keybase/go-git/utils/ioutil", "path": "gopkg.in/src-d/go-git.v4/utils/ioutil", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "6gGibezR20asX5JgNsGR9AWiF1s=", "origin": "github.com/keybase/go-git/utils/merkletrie", "path": "gopkg.in/src-d/go-git.v4/utils/merkletrie", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "EkYWmjvMAaEG9JPYtwE6x7hwxjY=", "origin": "github.com/keybase/go-git/utils/merkletrie/filesystem", "path": "gopkg.in/src-d/go-git.v4/utils/merkletrie/filesystem", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "M+6y9mdBFksksEGBceBh9Se3W7Y=", "origin": "github.com/keybase/go-git/utils/merkletrie/index", "path": "gopkg.in/src-d/go-git.v4/utils/merkletrie/index", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "7eEw/xsSrFLfSppRf/JIt9u7lbU=", "origin": "github.com/keybase/go-git/utils/merkletrie/internal/frame", "path": "gopkg.in/src-d/go-git.v4/utils/merkletrie/internal/frame", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "checksumSHA1": "0H0x2urvYdo68NY6fGFJG59lqoI=", "origin": "github.com/keybase/go-git/utils/merkletrie/noder", "path": "gopkg.in/src-d/go-git.v4/utils/merkletrie/noder", - "revision": "7eafff95ef3ba46ad70d504e49de842f6f07fcef", - "revisionTime": "2017-09-09T19:14:59Z" + "revision": "5d3dc69e94c5a2c21aec3ca9a8a8cf57cc5e8692", + "revisionTime": "2017-09-11T03:59:31Z" }, { "path": "gopkg.in/warnings.v0",