aboutsummaryrefslogtreecommitdiffstats
path: root/modules/git/repo_tree.go
diff options
context:
space:
mode:
authorFilip Navara <filip.navara@gmail.com>2019-05-03 02:33:11 +0200
committertechknowlogick <techknowlogick@gitea.io>2019-05-02 20:33:11 -0400
commitdbb0c9658c637bb987ec7d09a43be5ace5ac6708 (patch)
treed96905eee793b8bd323f942db7b5f361177221b6 /modules/git/repo_tree.go
parenta27d5d2b230e7b63a4b1959991d8b638527f48c6 (diff)
downloadgitea-dbb0c9658c637bb987ec7d09a43be5ace5ac6708.tar.gz
gitea-dbb0c9658c637bb987ec7d09a43be5ace5ac6708.zip
Fix #6813: Allow git.GetTree to take both commit and tree names (#6816)
* Allow git.GetTree to take both commit and tree names, return full paths on entries listed through Tree.ListEntriesRecursive Signed-off-by: Filip Navara <filip.navara@gmail.com> * Fix the SHA returned on Git Tree APIs called with commit hash or symbolic name Signed-off-by: Filip Navara <filip.navara@gmail.com>
Diffstat (limited to 'modules/git/repo_tree.go')
-rw-r--r--modules/git/repo_tree.go9
1 files changed, 5 insertions, 4 deletions
diff --git a/modules/git/repo_tree.go b/modules/git/repo_tree.go
index 8a024fe6ac..8bb7291744 100644
--- a/modules/git/repo_tree.go
+++ b/modules/git/repo_tree.go
@@ -35,14 +35,15 @@ func (repo *Repository) GetTree(idStr string) (*Tree, error) {
if err != nil {
return nil, err
}
+ resolvedID := id
commitObject, err := repo.gogitRepo.CommitObject(plumbing.Hash(id))
- if err != nil {
- return nil, err
+ if err == nil {
+ id = SHA1(commitObject.TreeHash)
}
- treeObject, err := repo.getTree(SHA1(commitObject.TreeHash))
+ treeObject, err := repo.getTree(id)
if err != nil {
return nil, err
}
- treeObject.CommitID = id
+ treeObject.ResolvedID = resolvedID
return treeObject, nil
}