Handle submodules without a .gitmodules entry - fix #1023

This commit is contained in:
Filippo Valsorda 2015-03-10 03:08:17 +00:00
parent 5e763baa12
commit 5d5d774e03
4 changed files with 15 additions and 3 deletions

View File

@ -88,11 +88,11 @@ func (c *Commit) GetCommitOfRelPath(relPath string) (*Commit, error) {
}
func (c *Commit) GetSubModule(entryname string) (*SubModule, error) {
moduels, err := c.GetSubModules()
modules, err := c.GetSubModules()
if err != nil {
return nil, err
}
return moduels[entryname], nil
return modules[entryname], nil
}
func (c *Commit) GetSubModules() (map[string]*SubModule, error) {

View File

@ -31,6 +31,10 @@ func NewSubModuleFile(c *Commit, refUrl, refId string) *SubModuleFile {
// RefUrl guesses and returns reference URL.
func (sf *SubModuleFile) RefUrl() string {
if sf.refUrl == "" {
return ""
}
url := strings.TrimSuffix(sf.refUrl, ".git")
// git://xxx/user/repo

View File

@ -141,13 +141,17 @@ func Home(ctx *middleware.Context) {
ctx.Handle(500, "GetSubModule", err)
return
}
smUrl := ""
if sm != nil {
smUrl = sm.Url
}
c, err := ctx.Repo.Commit.GetCommitOfRelPath(filepath.Join(treePath, te.Name()))
if err != nil {
ctx.Handle(500, "GetCommitOfRelPath", err)
return
}
files = append(files, []interface{}{te, git.NewSubModuleFile(c, sm.Url, te.Id.String())})
files = append(files, []interface{}{te, git.NewSubModuleFile(c, smUrl, te.Id.String())})
}
}
ctx.Data["Files"] = files

View File

@ -39,7 +39,11 @@
<span class="octicon octicon-file-submodule"></span>
</td>
<td class="name">
{{if $commit.RefUrl}}
<a href="{{$commit.RefUrl}}" class="text-truncate">{{$entry.Name}}</a> @ <a href="{{$commit.RefUrl}}/commit/{{$commit.RefId}}">{{ShortSha $commit.RefId}}</a>
{{else}}
{{$entry.Name}} @ {{ShortSha $commit.RefId}}
{{end}}
</td>
{{else}}
<td class="icon">