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) { func (c *Commit) GetSubModule(entryname string) (*SubModule, error) {
moduels, err := c.GetSubModules() modules, err := c.GetSubModules()
if err != nil { if err != nil {
return nil, err return nil, err
} }
return moduels[entryname], nil return modules[entryname], nil
} }
func (c *Commit) GetSubModules() (map[string]*SubModule, error) { 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. // RefUrl guesses and returns reference URL.
func (sf *SubModuleFile) RefUrl() string { func (sf *SubModuleFile) RefUrl() string {
if sf.refUrl == "" {
return ""
}
url := strings.TrimSuffix(sf.refUrl, ".git") url := strings.TrimSuffix(sf.refUrl, ".git")
// git://xxx/user/repo // git://xxx/user/repo

View file

@ -141,13 +141,17 @@ func Home(ctx *middleware.Context) {
ctx.Handle(500, "GetSubModule", err) ctx.Handle(500, "GetSubModule", err)
return return
} }
smUrl := ""
if sm != nil {
smUrl = sm.Url
}
c, err := ctx.Repo.Commit.GetCommitOfRelPath(filepath.Join(treePath, te.Name())) c, err := ctx.Repo.Commit.GetCommitOfRelPath(filepath.Join(treePath, te.Name()))
if err != nil { if err != nil {
ctx.Handle(500, "GetCommitOfRelPath", err) ctx.Handle(500, "GetCommitOfRelPath", err)
return 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 ctx.Data["Files"] = files

View file

@ -39,7 +39,11 @@
<span class="octicon octicon-file-submodule"></span> <span class="octicon octicon-file-submodule"></span>
</td> </td>
<td class="name"> <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> <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> </td>
{{else}} {{else}}
<td class="icon"> <td class="icon">