diff options
author | Jacob Vosmaer <jacob@gitlab.com> | 2019-09-04 15:48:33 +0300 |
---|---|---|
committer | Zeger-Jan van de Weg <git@zjvandeweg.nl> | 2019-09-04 15:48:33 +0300 |
commit | 094083b323a2d58410cc1941deb4b04eb1ff62b6 (patch) | |
tree | 13101910dfe26f9b1782f1134cd54e24d6067d69 /internal | |
parent | 639ad1a3ab4ae8847f8807c5274f3247300ad728 (diff) |
FetchIntoObjectPool: pack refs after fetch
Diffstat (limited to 'internal')
-rw-r--r-- | internal/git/objectpool/fetch.go | 8 | ||||
-rw-r--r-- | internal/git/objectpool/fetch_test.go | 4 |
2 files changed, 12 insertions, 0 deletions
diff --git a/internal/git/objectpool/fetch.go b/internal/git/objectpool/fetch.go index 710392b43..a5240fbfd 100644 --- a/internal/git/objectpool/fetch.go +++ b/internal/git/objectpool/fetch.go @@ -79,6 +79,14 @@ func (o *ObjectPool) FetchFromOrigin(ctx context.Context, origin *gitalypb.Repos return err } + packRefs, err := git.Command(ctx, o, "pack-refs", "--all") + if err != nil { + return err + } + if err := packRefs.Wait(); err != nil { + return err + } + return repackPool(ctx, o) } diff --git a/internal/git/objectpool/fetch_test.go b/internal/git/objectpool/fetch_test.go index 6b4e94463..674f09375 100644 --- a/internal/git/objectpool/fetch_test.go +++ b/internal/git/objectpool/fetch_test.go @@ -182,6 +182,10 @@ func TestFetchFromOriginRefUpdates(t *testing.T) { for ref, oid := range newRefs { require.Equal(t, oid, resolveRef(t, poolPath, "refs/remotes/origin/"+ref), "look up %q in pool after update", ref) } + + looseRefs := testhelper.MustRunCommand(t, nil, "find", filepath.Join(poolPath, "refs"), "-type", "f") + require.Equal(t, "", string(looseRefs), "there should be no loose refs after the fetch") + } func resolveRef(t *testing.T, repo string, ref string) string { |