Lauris Bukšis-Haberkorns <lauris@nix.lv> (@lafriks)
Antoine Girard <sapk@sapk.fr> (@sapk)
Jonas Östanbäck <jonas.ostanback@gmail.com> (@cez81)
+David Schneiderbauer <dschneiderbauer@gmail.com> (@daviian)
+Peter Žeby <morlinest@gmail.com> (@morlinest)
"net/http"
"strconv"
"strings"
-
- "github.com/mcuadros/go-version"
)
// Commit represents a git commit.
func commitsCount(repoPath, revision, relpath string) (int64, error) {
var cmd *Command
- isFallback := false
- if version.Compare(gitVersion, "1.8.0", "<") {
- isFallback = true
- cmd = NewCommand("log", "--pretty=format:''")
- } else {
- cmd = NewCommand("rev-list", "--count")
- }
+ cmd = NewCommand("rev-list", "--count")
cmd.AddArguments(revision)
if len(relpath) > 0 {
cmd.AddArguments("--", relpath)
return 0, err
}
- if isFallback {
- return int64(strings.Count(stdout, "\n")) + 1, nil
- }
return strconv.ParseInt(strings.TrimSpace(stdout), 10, 64)
}
import (
"fmt"
"strings"
-
- "github.com/mcuadros/go-version"
)
// BranchPrefix base dir of the branch information file store on git
// SetDefaultBranch sets default branch of repository.
func (repo *Repository) SetDefaultBranch(name string) error {
- if version.Compare(gitVersion, "1.7.10", "<") {
- return ErrUnsupportedVersion{"1.7.10"}
- }
-
_, err := NewCommand("symbolic-ref", "HEAD", BranchPrefix+name).RunInDir(repo.Path)
return err
}
"fmt"
"strconv"
"strings"
-
- "github.com/mcuadros/go-version"
)
// getRefCommitID returns the last commit ID string of given reference (branch or tag).
// CommitsBetween returns a list that contains commits between [last, before).
func (repo *Repository) CommitsBetween(last *Commit, before *Commit) (*list.List, error) {
- if version.Compare(gitVersion, "1.8.0", ">=") {
- stdout, err := NewCommand("rev-list", before.ID.String()+"..."+last.ID.String()).RunInDirBytes(repo.Path)
- if err != nil {
- return nil, err
- }
- return repo.parsePrettyFormatLogToList(bytes.TrimSpace(stdout))
- }
-
- // Fallback to stupid solution, which iterates all commits of the repository
- // if before is not an ancestor of last.
- l := list.New()
- if last == nil || last.ParentCount() == 0 {
- return l, nil
- }
-
- var err error
- cur := last
- for {
- if cur.ID.Equal(before.ID) {
- break
- }
- l.PushBack(cur)
- if cur.ParentCount() == 0 {
- break
- }
- cur, err = cur.Parent(0)
- if err != nil {
- return nil, err
- }
+ stdout, err := NewCommand("rev-list", before.ID.String()+"..."+last.ID.String()).RunInDirBytes(repo.Path)
+ if err != nil {
+ return nil, err
}
- return l, nil
+ return repo.parsePrettyFormatLogToList(bytes.TrimSpace(stdout))
}
// CommitsBetweenIDs return commits between twoe commits
sig.Email = string(line[emailStart+1 : emailEnd])
// Check date format.
- firstChar := line[emailEnd+2]
- if firstChar >= 48 && firstChar <= 57 {
- timestop := bytes.IndexByte(line[emailEnd+2:], ' ')
- timestring := string(line[emailEnd+2 : emailEnd+2+timestop])
- seconds, _ := strconv.ParseInt(timestring, 10, 64)
- sig.When = time.Unix(seconds, 0)
- } else {
- sig.When, err = time.Parse("Mon Jan _2 15:04:05 2006 -0700", string(line[emailEnd+2:]))
- if err != nil {
- return nil, err
+ if len(line) > emailEnd+2 {
+ firstChar := line[emailEnd+2]
+ if firstChar >= 48 && firstChar <= 57 {
+ timestop := bytes.IndexByte(line[emailEnd+2:], ' ')
+ timestring := string(line[emailEnd+2 : emailEnd+2+timestop])
+ seconds, _ := strconv.ParseInt(timestring, 10, 64)
+ sig.When = time.Unix(seconds, 0)
+ } else {
+ sig.When, err = time.Parse("Mon Jan _2 15:04:05 2006 -0700", string(line[emailEnd+2:]))
+ if err != nil {
+ return nil, err
+ }
}
+ } else {
+ // Fall back to unix 0 time
+ sig.When = time.Unix(0, 0)
}
return sig, nil
}
"ignore": "test appengine",
"package": [
{
- "checksumSHA1": "9dxw/SGpdhNNm704gt6F02ItYtQ=",
+ "checksumSHA1": "JN/re4+x/hCzMLGHmieUcykVDAg=",
"path": "code.gitea.io/git",
- "revision": "d7487da878e40ee6c4fac7280b518c0ed0be702c",
- "revisionTime": "2017-09-16T17:49:37Z"
+ "revision": "d47b98c44c9a6472e44ab80efe65235e11c6da2a",
+ "revisionTime": "2017-10-23T00:52:09Z"
},
{
"checksumSHA1": "Zgp5RqU+20L2p9TNl1rSsUIWEEE=",