summaryrefslogtreecommitdiffstats
path: root/modules/git/tree_entry_nogogit.go
diff options
context:
space:
mode:
Diffstat (limited to 'modules/git/tree_entry_nogogit.go')
-rw-r--r--modules/git/tree_entry_nogogit.go16
1 files changed, 10 insertions, 6 deletions
diff --git a/modules/git/tree_entry_nogogit.go b/modules/git/tree_entry_nogogit.go
index 288ec4db6e..076062e1d6 100644
--- a/modules/git/tree_entry_nogogit.go
+++ b/modules/git/tree_entry_nogogit.go
@@ -7,10 +7,7 @@
package git
-import (
- "strconv"
- "strings"
-)
+import "code.gitea.io/gitea/modules/log"
// TreeEntry the leaf in the git tree
type TreeEntry struct {
@@ -47,13 +44,20 @@ func (te *TreeEntry) Size() int64 {
return te.size
}
- stdout, err := NewCommand("cat-file", "-s", te.ID.String()).RunInDir(te.ptree.repo.Path)
+ wr, rd, cancel := te.ptree.repo.CatFileBatchCheck(te.ptree.repo.Ctx)
+ defer cancel()
+ _, err := wr.Write([]byte(te.ID.String() + "\n"))
if err != nil {
+ log.Debug("error whilst reading size for %s in %s. Error: %v", te.ID.String(), te.ptree.repo.Path, err)
+ return 0
+ }
+ _, _, te.size, err = ReadBatchLine(rd)
+ if err != nil {
+ log.Debug("error whilst reading size for %s in %s. Error: %v", te.ID.String(), te.ptree.repo.Path, err)
return 0
}
te.sized = true
- te.size, _ = strconv.ParseInt(strings.TrimSpace(stdout), 10, 64)
return te.size
}