diff --git a/vendor/code.gitea.io/git/MAINTAINERS b/vendor/code.gitea.io/git/MAINTAINERS index fad08cddd..2ad3f01f5 100644 --- a/vendor/code.gitea.io/git/MAINTAINERS +++ b/vendor/code.gitea.io/git/MAINTAINERS @@ -15,3 +15,5 @@ Thomas Boerger (@tboerger) Lauris Bukšis-Haberkorns (@lafriks) Antoine Girard (@sapk) Jonas Östanbäck (@cez81) +David Schneiderbauer (@daviian) +Peter Žeby (@morlinest) diff --git a/vendor/code.gitea.io/git/commit.go b/vendor/code.gitea.io/git/commit.go index b24af93d9..c29541238 100644 --- a/vendor/code.gitea.io/git/commit.go +++ b/vendor/code.gitea.io/git/commit.go @@ -12,8 +12,6 @@ import ( "net/http" "strconv" "strings" - - "github.com/mcuadros/go-version" ) // Commit represents a git commit. @@ -160,13 +158,7 @@ func CommitChanges(repoPath string, opts CommitChangesOptions) error { 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) @@ -177,9 +169,6 @@ func commitsCount(repoPath, revision, relpath string) (int64, error) { return 0, err } - if isFallback { - return int64(strings.Count(stdout, "\n")) + 1, nil - } return strconv.ParseInt(strings.TrimSpace(stdout), 10, 64) } diff --git a/vendor/code.gitea.io/git/repo_branch.go b/vendor/code.gitea.io/git/repo_branch.go index 2cd965931..3b50eece1 100644 --- a/vendor/code.gitea.io/git/repo_branch.go +++ b/vendor/code.gitea.io/git/repo_branch.go @@ -7,8 +7,6 @@ package git import ( "fmt" "strings" - - "github.com/mcuadros/go-version" ) // BranchPrefix base dir of the branch information file store on git @@ -56,10 +54,6 @@ func (repo *Repository) GetHEADBranch() (*Branch, error) { // 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 } diff --git a/vendor/code.gitea.io/git/repo_commit.go b/vendor/code.gitea.io/git/repo_commit.go index 64248d031..371c044c5 100644 --- a/vendor/code.gitea.io/git/repo_commit.go +++ b/vendor/code.gitea.io/git/repo_commit.go @@ -10,8 +10,6 @@ import ( "fmt" "strconv" "strings" - - "github.com/mcuadros/go-version" ) // getRefCommitID returns the last commit ID string of given reference (branch or tag). @@ -248,37 +246,11 @@ func (repo *Repository) FilesCountBetween(startCommitID, endCommitID string) (in // 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)) + stdout, err := NewCommand("rev-list", before.ID.String()+"..."+last.ID.String()).RunInDirBytes(repo.Path) + if err != nil { + return nil, err } - - // 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 - } - } - return l, nil + return repo.parsePrettyFormatLogToList(bytes.TrimSpace(stdout)) } // CommitsBetweenIDs return commits between twoe commits diff --git a/vendor/code.gitea.io/git/signature.go b/vendor/code.gitea.io/git/signature.go index 95eb1bbe0..7dc9763b5 100644 --- a/vendor/code.gitea.io/git/signature.go +++ b/vendor/code.gitea.io/git/signature.go @@ -32,17 +32,22 @@ func newSignatureFromCommitline(line []byte) (_ *Signature, err error) { 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 } diff --git a/vendor/code.gitea.io/git/tree_entry.go b/vendor/code.gitea.io/git/tree_entry.go index 1e4934e81..d5730a0d4 100644 --- a/vendor/code.gitea.io/git/tree_entry.go +++ b/vendor/code.gitea.io/git/tree_entry.go @@ -116,35 +116,51 @@ func (te *TreeEntry) GetSubJumpablePathName() string { // Entries a list of entry type Entries []*TreeEntry -var sorter = []func(t1, t2 *TreeEntry) bool{ - func(t1, t2 *TreeEntry) bool { +type customSortableEntries struct { + Comparer func(s1, s2 string) bool + Entries +} + +var sorter = []func(t1, t2 *TreeEntry, cmp func(s1, s2 string) bool) bool{ + func(t1, t2 *TreeEntry, cmp func(s1, s2 string) bool) bool { return (t1.IsDir() || t1.IsSubModule()) && !t2.IsDir() && !t2.IsSubModule() }, - func(t1, t2 *TreeEntry) bool { - return t1.name < t2.name + func(t1, t2 *TreeEntry, cmp func(s1, s2 string) bool) bool { + return cmp(t1.name, t2.name) }, } -func (tes Entries) Len() int { return len(tes) } -func (tes Entries) Swap(i, j int) { tes[i], tes[j] = tes[j], tes[i] } -func (tes Entries) Less(i, j int) bool { - t1, t2 := tes[i], tes[j] +func (ctes customSortableEntries) Len() int { return len(ctes.Entries) } + +func (ctes customSortableEntries) Swap(i, j int) { + ctes.Entries[i], ctes.Entries[j] = ctes.Entries[j], ctes.Entries[i] +} + +func (ctes customSortableEntries) Less(i, j int) bool { + t1, t2 := ctes.Entries[i], ctes.Entries[j] var k int for k = 0; k < len(sorter)-1; k++ { s := sorter[k] switch { - case s(t1, t2): + case s(t1, t2, ctes.Comparer): return true - case s(t2, t1): + case s(t2, t1, ctes.Comparer): return false } } - return sorter[k](t1, t2) + return sorter[k](t1, t2, ctes.Comparer) } // Sort sort the list of entry func (tes Entries) Sort() { - sort.Sort(tes) + sort.Sort(customSortableEntries{func(s1, s2 string) bool { + return s1 < s2 + }, tes}) +} + +// CustomSort customizable string comparing sort entry list +func (tes Entries) CustomSort(cmp func(s1, s2 string) bool) { + sort.Sort(customSortableEntries{cmp, tes}) } type commitInfo struct { diff --git a/vendor/vendor.json b/vendor/vendor.json index 5fd393b8b..3bc0d93ec 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -3,10 +3,10 @@ "ignore": "test appengine", "package": [ { - "checksumSHA1": "fR5YDSoG7xYv2aLO23rne95gWps=", + "checksumSHA1": "JN/re4+x/hCzMLGHmieUcykVDAg=", "path": "code.gitea.io/git", - "revision": "479f87e5d189e7b8f1fd51dbcd25faa32b632cd2", - "revisionTime": "2017-08-03T00:53:29Z" + "revision": "d47b98c44c9a6472e44ab80efe65235e11c6da2a", + "revisionTime": "2017-10-23T00:52:09Z" }, { "checksumSHA1": "Zgp5RqU+20L2p9TNl1rSsUIWEEE=",