aboutsummaryrefslogtreecommitdiffstats
path: root/modules/git/pipeline
diff options
context:
space:
mode:
authorzeripath <art27@cantab.net>2021-06-20 23:00:46 +0100
committerGitHub <noreply@github.com>2021-06-21 01:00:46 +0300
commit23358bc55de67be132e3858a5d40f25dbdd0a769 (patch)
tree914386734d5dafc0bcf84253c55c67d6590092dc /modules/git/pipeline
parent8fa3bbc42450fe34cc0cee3de566b17fa131d1c6 (diff)
downloadgitea-23358bc55de67be132e3858a5d40f25dbdd0a769.tar.gz
gitea-23358bc55de67be132e3858a5d40f25dbdd0a769.zip
Use git log name-status in get last commit (#16059)
* Improve get last commit using git log --name-status git log --name-status -c provides information about the diff between a commit and its parents. Using this and adjusting the algorithm to use the first change to a path allows for a much faster generation of commit info. There is a subtle change in the results generated but this will cause the results to more closely match those from elsewhere. Signed-off-by: Andrew Thornton <art27@cantab.net> Co-authored-by: 6543 <6543@obermui.de> Co-authored-by: techknowlogick <techknowlogick@gitea.io> Co-authored-by: Lauris BH <lauris@nix.lv>
Diffstat (limited to 'modules/git/pipeline')
-rw-r--r--modules/git/pipeline/lfs_nogogit.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/modules/git/pipeline/lfs_nogogit.go b/modules/git/pipeline/lfs_nogogit.go
index e618dd04b7..d3696fcda2 100644
--- a/modules/git/pipeline/lfs_nogogit.go
+++ b/modules/git/pipeline/lfs_nogogit.go
@@ -116,6 +116,9 @@ func FindLFSFile(repo *git.Repository, hash git.SHA1) ([]*LFSResult, error) {
if err != nil {
return nil, err
}
+ if _, err := batchReader.Discard(1); err != nil {
+ return nil, err
+ }
_, err := batchStdinWriter.Write([]byte(curCommit.Tree.ID.String() + "\n"))
if err != nil {
@@ -146,6 +149,9 @@ func FindLFSFile(repo *git.Repository, hash git.SHA1) ([]*LFSResult, error) {
paths = append(paths, curPath+string(fname)+"/")
}
}
+ if _, err := batchReader.Discard(1); err != nil {
+ return nil, err
+ }
if len(trees) > 0 {
_, err := batchStdinWriter.Write(trees[len(trees)-1])
if err != nil {