diff --git a/commands/command_fsck.go b/commands/command_fsck.go index 8f5e8841..afb615a4 100644 --- a/commands/command_fsck.go +++ b/commands/command_fsck.go @@ -29,7 +29,8 @@ func doFsck() (bool, error) { // All we care about is the pointer OID and file name pointerIndex := make(map[string]string) - pointerCh, err := lfs.ScanRefsToChan(ref.Sha, "", nil) + gitscanner := lfs.NewGitScanner() + pointerCh, err := gitscanner.ScanRefWithDeleted(ref.Sha) if err != nil { return false, err } diff --git a/commands/command_status.go b/commands/command_status.go index 6bfa3f60..950ed32b 100644 --- a/commands/command_status.go +++ b/commands/command_status.go @@ -18,6 +18,8 @@ func statusCommand(cmd *cobra.Command, args []string) { // tolerate errors getting ref so this works before first commit ref, _ := git.CurrentRef() + gitscanner := lfs.NewGitScanner() + scanIndexAt := "HEAD" if ref == nil { scanIndexAt = git.RefBeforeFirstCommit @@ -47,8 +49,7 @@ func statusCommand(cmd *cobra.Command, args []string) { remoteRef, err := git.CurrentRemoteRef() if err == nil { - - pointerCh, err := lfs.ScanRefsToChan(ref.Sha, "^"+remoteRef.Sha, nil) + pointerCh, err := gitscanner.ScanRefRange(ref.Sha, "^"+remoteRef.Sha) if err != nil { Panic(err, "Could not scan for Git LFS objects") } diff --git a/lfs/gitscanner.go b/lfs/gitscanner.go index 77f27ded..7ac6bab9 100644 --- a/lfs/gitscanner.go +++ b/lfs/gitscanner.go @@ -7,6 +7,17 @@ func NewGitScanner() *GitScanner { return &GitScanner{} } +func (s *GitScanner) ScanRefRange(left, right string) (*PointerChannelWrapper, error) { + opts := NewScanRefsOptions() + opts.ScanMode = ScanRefsMode + opts.SkipDeletedBlobs = false + return ScanRefsToChan(left, right, opts) +} + +func (s *GitScanner) ScanRefWithDeleted(ref string) (*PointerChannelWrapper, error) { + return s.ScanRefRange(ref, "") +} + func (s *GitScanner) ScanRef(ref string) (*PointerChannelWrapper, error) { opts := NewScanRefsOptions() opts.ScanMode = ScanRefsMode