From 2a031c13658458df9f8f56ce295a8ba72bf35dff Mon Sep 17 00:00:00 2001 From: Unknwon Date: Tue, 30 Sep 2014 04:39:53 -0400 Subject: Fix #515 --- modules/git/repo_commit.go | 4 ++-- modules/git/repo_tag.go | 2 +- modules/git/tree.go | 5 ++++- 3 files changed, 7 insertions(+), 4 deletions(-) (limited to 'modules/git') diff --git a/modules/git/repo_commit.go b/modules/git/repo_commit.go index cd0181c4..7c47b53d 100644 --- a/modules/git/repo_commit.go +++ b/modules/git/repo_commit.go @@ -40,11 +40,11 @@ func (repo *Repository) GetCommitIdOfTag(tagName string) (string, error) { } func (repo *Repository) GetCommitOfTag(tagName string) (*Commit, error) { - commitId, err := repo.GetCommitIdOfTag(tagName) + tag, err := repo.GetTag(tagName) if err != nil { return nil, err } - return repo.GetCommit(commitId) + return tag.Commit() } // Parse commit information from the (uncompressed) raw diff --git a/modules/git/repo_tag.go b/modules/git/repo_tag.go index dd31e441..77ae3db0 100644 --- a/modules/git/repo_tag.go +++ b/modules/git/repo_tag.go @@ -52,6 +52,7 @@ func (repo *Repository) getTag(id sha1) (*Tag, error) { if err != nil { return nil, errors.New(stderr) } + tp = strings.TrimSpace(tp) // Tag is a commit. if ObjectType(tp) == COMMIT { @@ -77,7 +78,6 @@ func (repo *Repository) getTag(id sha1) (*Tag, error) { } tag.Id = id - tag.Object = id tag.repo = repo repo.tagCache[id] = tag diff --git a/modules/git/tree.go b/modules/git/tree.go index a3012443..be77bfce 100644 --- a/modules/git/tree.go +++ b/modules/git/tree.go @@ -109,9 +109,12 @@ func (t *Tree) ListEntries(relpath string) (Entries, error) { } t.entriesParsed = true - stdout, _, err := com.ExecCmdDirBytes(t.repo.Path, + stdout, stderr, err := com.ExecCmdDirBytes(t.repo.Path, "git", "ls-tree", t.Id.String()) if err != nil { + if strings.Contains(err.Error(), "exit status 128") { + return nil, errors.New(strings.TrimSpace(string(stderr))) + } return nil, err } t.entries, err = parseTreeData(t, stdout) -- cgit v1.2.3