| @@ -13,7 +13,7 @@ watch_dirs = [ | |||||
| watch_exts = [".go"] | watch_exts = [".go"] | ||||
| build_delay = 1500 | build_delay = 1500 | ||||
| cmds = [ | cmds = [ | ||||
| ["go", "install", "-tags", "sqlite"],# redis memcache cert pam tidb | |||||
| ["go", "build", "-tags", "sqlite"], | |||||
| ["go", "install"], # sqlite redis memcache cert pam tidb | |||||
| ["go", "build"], | |||||
| ["./gogs", "web"] | ["./gogs", "web"] | ||||
| ] | ] | ||||
| @@ -13,8 +13,10 @@ build: | |||||
| go install -ldflags '$(LDFLAGS)' -tags '$(TAGS)' | go install -ldflags '$(LDFLAGS)' -tags '$(TAGS)' | ||||
| go build -ldflags '$(LDFLAGS)' -tags '$(TAGS)' | go build -ldflags '$(LDFLAGS)' -tags '$(TAGS)' | ||||
| govet: | |||||
| go tool vet -composites=false -methods=false -structtags=false . | |||||
| pack: | pack: | ||||
| find . -name ".DS_Store" -print0 | xargs -0 rm | |||||
| rm -rf $(RELEASE_GOGS) | rm -rf $(RELEASE_GOGS) | ||||
| mkdir -p $(RELEASE_GOGS) | mkdir -p $(RELEASE_GOGS) | ||||
| cp -r gogs LICENSE README.md README_ZH.md templates public scripts $(RELEASE_GOGS) | cp -r gogs LICENSE README.md README_ZH.md templates public scripts $(RELEASE_GOGS) | ||||
| @@ -27,4 +29,7 @@ bindata: | |||||
| go-bindata -o=modules/bindata/bindata.go -ignore="\\.DS_Store|README.md" -pkg=bindata conf/... | go-bindata -o=modules/bindata/bindata.go -ignore="\\.DS_Store|README.md" -pkg=bindata conf/... | ||||
| clean: | clean: | ||||
| go clean -i ./... | |||||
| go clean -i ./... | |||||
| clean-mac: clean | |||||
| find . -name ".DS_Store" -print0 | xargs -0 rm | |||||
| @@ -74,7 +74,14 @@ var ( | |||||
| func fail(userMessage, logMessage string, args ...interface{}) { | func fail(userMessage, logMessage string, args ...interface{}) { | ||||
| fmt.Fprintln(os.Stderr, "Gogs:", userMessage) | fmt.Fprintln(os.Stderr, "Gogs:", userMessage) | ||||
| log.GitLogger.Fatal(3, logMessage, args...) | |||||
| if len(logMessage) > 0 { | |||||
| log.GitLogger.Fatal(3, logMessage, args...) | |||||
| return | |||||
| } | |||||
| log.GitLogger.Close() | |||||
| os.Exit(1) | |||||
| } | } | ||||
| func handleUpdateTask(uuid string, user *models.User, repoUserName, repoName string) { | func handleUpdateTask(uuid string, user *models.User, repoUserName, repoName string) { | ||||
| @@ -161,6 +168,11 @@ func runServ(c *cli.Context) { | |||||
| fail("Unknown git command", "Unknown git command %s", verb) | fail("Unknown git command", "Unknown git command %s", verb) | ||||
| } | } | ||||
| // Prohibit push to mirror repositories. | |||||
| if requestedMode > models.ACCESS_MODE_READ && repo.IsMirror { | |||||
| fail("mirror repository is read-only", "") | |||||
| } | |||||
| // Allow anonymous clone for public repositories. | // Allow anonymous clone for public repositories. | ||||
| var ( | var ( | ||||
| keyID int64 | keyID int64 | ||||
| @@ -17,7 +17,7 @@ import ( | |||||
| "github.com/gogits/gogs/modules/setting" | "github.com/gogits/gogs/modules/setting" | ||||
| ) | ) | ||||
| const APP_VER = "0.7.0.1107 Beta" | |||||
| const APP_VER = "0.7.0.1108 Beta" | |||||
| func init() { | func init() { | ||||
| runtime.GOMAXPROCS(runtime.NumCPU()) | runtime.GOMAXPROCS(runtime.NumCPU()) | ||||
| @@ -147,7 +147,7 @@ func newRepoAction(e Engine, u *User, repo *Repository) (err error) { | |||||
| RepoName: repo.Name, | RepoName: repo.Name, | ||||
| IsPrivate: repo.IsPrivate, | IsPrivate: repo.IsPrivate, | ||||
| }); err != nil { | }); err != nil { | ||||
| return fmt.Errorf("notify watchers '%d/%s': %v", u.Id, repo.ID, err) | |||||
| return fmt.Errorf("notify watchers '%d/%d': %v", u.Id, repo.ID, err) | |||||
| } | } | ||||
| log.Trace("action.newRepoAction: %s/%s", u.Name, repo.Name) | log.Trace("action.newRepoAction: %s/%s", u.Name, repo.Name) | ||||
| @@ -488,7 +488,7 @@ func transferRepoAction(e Engine, actUser, oldOwner, newOwner *User, repo *Repos | |||||
| IsPrivate: repo.IsPrivate, | IsPrivate: repo.IsPrivate, | ||||
| Content: path.Join(oldOwner.LowerName, repo.LowerName), | Content: path.Join(oldOwner.LowerName, repo.LowerName), | ||||
| }); err != nil { | }); err != nil { | ||||
| return fmt.Errorf("notify watchers '%d/%s': %v", actUser.Id, repo.ID, err) | |||||
| return fmt.Errorf("notify watchers '%d/%d': %v", actUser.Id, repo.ID, err) | |||||
| } | } | ||||
| // Remove watch for organization. | // Remove watch for organization. | ||||
| @@ -456,7 +456,7 @@ func trimCommitActionAppUrlPrefix(x *xorm.Engine) error { | |||||
| pushCommits = new(PushCommits) | pushCommits = new(PushCommits) | ||||
| if err = json.Unmarshal(action["content"], pushCommits); err != nil { | if err = json.Unmarshal(action["content"], pushCommits); err != nil { | ||||
| return fmt.Errorf("unmarshal action content[%s]: %v", actID, err) | |||||
| return fmt.Errorf("unmarshal action content[%d]: %v", actID, err) | |||||
| } | } | ||||
| infos := strings.Split(pushCommits.CompareUrl, "/") | infos := strings.Split(pushCommits.CompareUrl, "/") | ||||
| @@ -467,7 +467,7 @@ func trimCommitActionAppUrlPrefix(x *xorm.Engine) error { | |||||
| p, err := json.Marshal(pushCommits) | p, err := json.Marshal(pushCommits) | ||||
| if err != nil { | if err != nil { | ||||
| return fmt.Errorf("marshal action content[%s]: %v", actID, err) | |||||
| return fmt.Errorf("marshal action content[%d]: %v", actID, err) | |||||
| } | } | ||||
| if _, err = sess.Id(actID).Update(&Action{ | if _, err = sess.Id(actID).Update(&Action{ | ||||
| @@ -111,7 +111,7 @@ func TestSpecSchedule(t *testing.T) { | |||||
| t.Error(err) | t.Error(err) | ||||
| } | } | ||||
| if !reflect.DeepEqual(actual, c.expected) { | if !reflect.DeepEqual(actual, c.expected) { | ||||
| t.Errorf("%s => (expected) %b != %b (actual)", c.expr, c.expected, actual) | |||||
| t.Errorf("%s => (expected) %v != %v (actual)", c.expr, c.expected, actual) | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| @@ -38,7 +38,6 @@ func RenderIssueLinks(oldCommits *list.List, repoLink string) *list.List { | |||||
| newCommits := list.New() | newCommits := list.New() | ||||
| for e := oldCommits.Front(); e != nil; e = e.Next() { | for e := oldCommits.Front(); e != nil; e = e.Next() { | ||||
| c := e.Value.(*git.Commit) | c := e.Value.(*git.Commit) | ||||
| c.CommitMessage = c.CommitMessage | |||||
| newCommits.PushBack(c) | newCommits.PushBack(c) | ||||
| } | } | ||||
| return newCommits | return newCommits | ||||
| @@ -196,7 +195,6 @@ func Diff(ctx *middleware.Context) { | |||||
| commitID := ctx.Repo.CommitID | commitID := ctx.Repo.CommitID | ||||
| commit := ctx.Repo.Commit | commit := ctx.Repo.Commit | ||||
| commit.CommitMessage = commit.CommitMessage | |||||
| diff, err := models.GetDiffCommit(models.RepoPath(userName, repoName), | diff, err := models.GetDiffCommit(models.RepoPath(userName, repoName), | ||||
| commitID, setting.Git.MaxGitDiffLines) | commitID, setting.Git.MaxGitDiffLines) | ||||
| if err != nil { | if err != nil { | ||||
| @@ -158,7 +158,7 @@ func HTTP(ctx *middleware.Context) { | |||||
| } | } | ||||
| if !isPull && repo.IsMirror { | if !isPull && repo.IsMirror { | ||||
| ctx.HandleText(401, "can't push to mirror") | |||||
| ctx.HandleText(401, "mirror repository is read-only") | |||||
| return | return | ||||
| } | } | ||||
| } | } | ||||
| @@ -250,11 +250,6 @@ func Action(ctx *middleware.Context) { | |||||
| redirectTo = ctx.Repo.RepoLink | redirectTo = ctx.Repo.RepoLink | ||||
| } | } | ||||
| ctx.Redirect(redirectTo) | ctx.Redirect(redirectTo) | ||||
| return | |||||
| ctx.JSON(200, map[string]interface{}{ | |||||
| "ok": true, | |||||
| }) | |||||
| } | } | ||||
| func Download(ctx *middleware.Context) { | func Download(ctx *middleware.Context) { | ||||
| @@ -1 +1 @@ | |||||
| 0.7.0.1107 Beta | |||||
| 0.7.0.1108 Beta | |||||