| @@ -40,24 +40,33 @@ func runUpdate(c *cli.Context) { | |||
| log.SetOutput(w) | |||
| args := c.Args() | |||
| //log.Info(args) | |||
| if len(args) != 3 { | |||
| log.Error("received less 3 parameters") | |||
| return | |||
| } | |||
| refName := args[0] | |||
| if refName == "" { | |||
| log.Error("refName is empty, shouldn't use") | |||
| return | |||
| } | |||
| oldCommitId := args[1] | |||
| newCommitId := args[2] | |||
| isNew := strings.HasPrefix(oldCommitId, "0000000") | |||
| if isNew && | |||
| strings.HasPrefix(newCommitId, "0000000") { | |||
| log.Error("old rev and new rev both 000000") | |||
| return | |||
| } | |||
| userName := os.Getenv("userName") | |||
| userId := os.Getenv("userId") | |||
| //repoId := os.Getenv("repoId") | |||
| repoName := os.Getenv("repoName") | |||
| log.Info("username", userName) | |||
| log.Info("repoName", repoName) | |||
| f := models.RepoPath(userName, repoName) | |||
| log.Info("f", f) | |||
| gitUpdate := exec.Command("git", "update-server-info") | |||
| gitUpdate.Dir = f | |||
| @@ -69,24 +78,6 @@ func runUpdate(c *cli.Context) { | |||
| return | |||
| } | |||
| ref, err := repo.LookupReference(refName) | |||
| if err != nil { | |||
| log.Error("runUpdate.Ref repoId: %v", err) | |||
| return | |||
| } | |||
| oldOid, err := git.NewOidFromString(oldCommitId) | |||
| if err != nil { | |||
| log.Error("runUpdate.Ref repoId: %v", err) | |||
| return | |||
| } | |||
| oldCommit, err := repo.LookupCommit(oldOid) | |||
| if err != nil { | |||
| log.Error("runUpdate.Ref repoId: %v", err) | |||
| return | |||
| } | |||
| newOid, err := git.NewOidFromString(newCommitId) | |||
| if err != nil { | |||
| log.Error("runUpdate.Ref repoId: %v", err) | |||
| @@ -101,11 +92,25 @@ func runUpdate(c *cli.Context) { | |||
| var l *list.List | |||
| // if a new branch | |||
| if strings.HasPrefix(oldCommitId, "0000000") { | |||
| l, err = ref.AllCommits() | |||
| if isNew { | |||
| l, err = repo.CommitsBefore(newCommit.Id()) | |||
| if err != nil { | |||
| log.Error("Find CommitsBefore erro:", err) | |||
| return | |||
| } | |||
| } else { | |||
| l = ref.CommitsBetween(newCommit, oldCommit) | |||
| oldOid, err := git.NewOidFromString(oldCommitId) | |||
| if err != nil { | |||
| log.Error("runUpdate.Ref repoId: %v", err) | |||
| return | |||
| } | |||
| oldCommit, err := repo.LookupCommit(oldOid) | |||
| if err != nil { | |||
| log.Error("runUpdate.Ref repoId: %v", err) | |||
| return | |||
| } | |||
| l = repo.CommitsBetween(newCommit, oldCommit) | |||
| } | |||
| if err != nil { | |||