Browse Source

Add basic submodule support

tags/v1.2.0-rc1
Unknwon 11 years ago
parent
commit
3f707b3f32
6 changed files with 57 additions and 19 deletions
  1. +1
    -1
      README.md
  2. +1
    -1
      README_ZH.md
  3. +1
    -1
      gogs.go
  4. +52
    -0
      modules/git/submodule.go
  5. +1
    -15
      routers/repo/view.go
  6. +1
    -1
      templates/.VERSION

+ 1
- 1
README.md View File

@@ -5,7 +5,7 @@ Gogs(Go Git Service) is a painless self-hosted Git Service written in Go.

![Demo](https://gowalker.org/public/gogs_demo.gif)

##### Current version: 0.5.3 Beta
##### Current version: 0.5.4 Beta

### NOTICES



+ 1
- 1
README_ZH.md View File

@@ -5,7 +5,7 @@ Gogs(Go Git Service) 是一个基于 Go 语言的自助 Git 服务。

![Demo](https://gowalker.org/public/gogs_demo.gif)

##### 当前版本:0.5.3 Beta
##### 当前版本:0.5.4 Beta

## 开发目的



+ 1
- 1
gogs.go View File

@@ -17,7 +17,7 @@ import (
"github.com/gogits/gogs/modules/setting"
)

const APP_VER = "0.5.3.0922 Beta"
const APP_VER = "0.5.4.0922 Beta"

func init() {
runtime.GOMAXPROCS(runtime.NumCPU())


+ 52
- 0
modules/git/submodule.go View File

@@ -1,6 +1,58 @@
// Copyright 2014 The Gogs Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.

package git

import (
"strings"
)

type SubModule struct {
Name string
Url string
}

// SubModuleFile represents a file with submodule type.
type SubModuleFile struct {
*Commit

refUrl string
refId string
}

func NewSubModuleFile(c *Commit, refUrl, refId string) *SubModuleFile {
return &SubModuleFile{
Commit: c,
refUrl: refUrl,
refId: refId,
}
}

// RefUrl guesses and returns reference URL.
func (sf *SubModuleFile) RefUrl() string {
url := strings.TrimSuffix(sf.refUrl, ".git")

// git://xxx/user/repo
if strings.HasPrefix(url, "git://") {
return "http://" + strings.TrimPrefix(url, "git://")
}

// http[s]://xxx/user/repo
if strings.HasPrefix(url, "http://") || strings.HasPrefix(url, "https://") {
return url
}

// sysuser@xxx:user/repo
i := strings.Index(url, "@")
j := strings.LastIndex(url, ":")
if i > -1 && j > -1 {
return "http://" + url[i+1:j] + "/" + url[j+1:]
}
return url
}

// RefId returns reference ID.
func (sf *SubModuleFile) RefId() string {
return sf.refId
}

+ 1
- 15
routers/repo/view.go View File

@@ -21,13 +21,6 @@ const (
HOME base.TplName = "repo/home"
)

type fakeCommit struct {
*git.Commit

RefUrl string
RefId string
}

func Home(ctx *middleware.Context) {
ctx.Data["Title"] = ctx.Repo.Repository.Name

@@ -153,14 +146,7 @@ func Home(ctx *middleware.Context) {
ctx.Handle(404, "GetCommitOfRelPath", err)
return
}

commit := fakeCommit{
Commit: c,
RefUrl: strings.TrimRight(sm.Url, ".git"),
RefId: te.Id.String(),
}

files = append(files, []interface{}{te, &commit})
files = append(files, []interface{}{te, git.NewSubModuleFile(c, sm.Url, te.Id.String())})
}
}



+ 1
- 1
templates/.VERSION View File

@@ -1 +1 @@
0.5.3.0922 Beta
0.5.4.0922 Beta

Loading…
Cancel
Save