Upgrade vendor "git" (#175)

Thibault Meyer 7 years ago committed by Lunny Xiao
parent 7596e41027
commit 871c964ef7

@ -0,0 +1,162 @@
# Contribution Guidelines
## Introduction
This document explains how to contribute changes to the Gitea
project. It assumes you have followed the [installation
Sensitive security-related issues should be reported to
## Bug reports
Please search the issues on the issue tracker with a variety of keywords
to ensure your bug is not already reported.
If unique, [open an issue](https://github.com/go-gitea/gitea/issues/new)
and answer the questions so we can understand and reproduce the
problematic behavior.
The burden is on you to convince us that it is actually a bug
in Gitea. This is easiest to do when you write clear, concise
instructions so we can reproduce the behavior (even if it seems
obvious). The more detailed and specific you are, the faster
we will be able to help you. Check out [How to Report Bugs
Please be kind, remember that Gitea comes at no cost to you, and you're
getting free help.
## Discuss your design
The project welcomes submissions but please let everyone know what
you're working on if you want to change or add something to the Gitea
Before starting to write something new for the Gitea project, please
[file an issue](https://github.com/go-gitea/gitea/issues/new).
Significant changes must go through the [change proposal
process](https://github.com/go-gitea/proposals) before they can be
This process gives everyone a chance to validate the design, helps
prevent duplication of effort, and ensures that the idea fits inside
the goals for the project and tools. It also checks that the design is
sound before code is written; the code review tool is not the place for
high-level discussions.
## Testing redux
Before sending code out for review, run all the tests for the whole
tree to make sure the changes don't break other usage and keep the
compatibility on upgrade:
After running for a while, the command should print
## Code review
Changes to Gitea must be reviewed before they are accepted, no matter
who makes the change even if an owners or a maintainer. We use github's
pull request workflow to do that and use [lgtm](http://lgtm.co) to ensure
every PR is reviewed by at least 2 maintainers.
## Sign your work
The sign-off is a simple line at the end of the explanation for the
patch. Your signature certifies that you wrote the patch or otherwise
have the right to pass it on as an open-source patch. The rules are
pretty simple: If you can certify [DCO](DCO), then you just add a line
to every git commit message:
Signed-off-by: Joe Smith <joe.smith@email.com>
Please use your real name, we really dislike pseudonyms or anonymous
contributions. We are in the opensource world without secrets. If you
set your `user.name` and `user.email` git configs, you can sign your
commit automatically with `git commit -s`.
## Contributors
Everyone who sent a PR to Gitea that gets accepted will
be as a contributor. Please send a PR to add your name to
[CONTRIBUTORS](CONTRIBUTORS). For the format, see the
## Maintainers
To make sure every PR have been checked, we make a team maintainers. Any
PR MUST be reviewed and by at least two maintainers before it can
get merged. Maintainers should be a contributor of gitea(or gogs) and
contributed at least 4 accepted PRs. And a contributor should apply as a
maintainer in [gitter Gitea develop](https://gitter.im/go-gitea/develop).
And the owners or the team maintainer could invite the contributor. A
maintainer should spend some time on code reviews. If some maintainer
have no time to do that, he should apply to leave maintainers team and
we will give him an honor to be as a member of advisor team. Of course,
if an advisor have time to code view, welcome it back to maintainers team.
If some one have no time to code view and forget to leave the maintainers,
the owners have the power to move him from maintainers team to advisors
## Owners
Since Gitea is a pure community organization without any company
support, to keep the development healthly We will elect the owners every
year. Every time we will elect three owners. All the contributers could
vote for three owners, one is the main owner, the other two are assistant
owners. When the new owners have been elected, the old owners MUST move
the power to the new owners. If some owner don't obey these rules,
the other owners are allowed to revoke his owner status.
After the election, the new owners should say he agrees with these
rules on the [CONTRIBUTING](CONTRIBUTING.md) on the [Gitter Gitea
Channel](https://gitter.im/go-gitea/gitea). Below is the word to speak
I'm glad to be an owner of Gitea,
I will spend part of my time on gitea
and lead the development of gitea.
For a honor to the owners, this document will add the history owners
2016-11-04 ~ 2017-12-31
- lunny <xiaolunwen@gmail.com>
- tboerger <thomas@webhippie.de>
- bkcsoft <kim.carlbacker@gmail.com>
## Versions
Gitea has one master as a tip branch and have many version branch
such as v0.9. v0.9 is a release branch and we will tag v0.9.0 both for
binary download. If v0.9.0 have some bugs, we will accept PR on v0.9
and publish v0.9.1 and merge bug PR to master.
Branch master is a tip version, so if you wish a production usage,
please download the latest release tag version. All the branch will be
protected via github, All the PRs to all the branches should be review
by two maintainers and pass the automatic tests.
## Copyright
Code that you contribute should use the standard copyright header:
// Copyright 2016 - 2017 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
Files in the repository are copyright the year they are added and the
year they are last changed. If the copyright author is changed, just
copy the head below the old one.

@ -0,0 +1,9 @@
Andrey Nering <nobody@nobody.tld> (@andreynering)
Kim Carlbäcker <kim.carlbacker@gmail.com> (@bkcsoft)
LefsFlare <nobody@nobody.tld> (@LefsFlarey)
Lunny Xiao <xiaolunwen@gmail.com> (@lunny)
Rachid Zarouali <nobody@nobody.tld> (@xinity)
Rémy Boulanouar <admin@dblk.org> (@DblK)
Sandro Santilli <strk@kbt.io> (@strk)
Thibault Meyer <nobody@nobody.tld> (@0xbaadf00d)
Thomas Boerger <thomas@webhippie.de> (@tboerger)

vendor/code.gitea.io/git/DCO generated vendored

@ -0,0 +1,36 @@
Developer Certificate of Origin
Version 1.1
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
660 York Street, Suite 102,
San Francisco, CA 94110 USA
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or in part by me and I
have the right to submit it under the open source license
indicated in the file; or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source
license and I have the right under that license to submit that
work with modifications, whether created in whole or in part
by me, under the same open source license (unless I am
permitted to submit under a different license), as indicated
in the file; or
(c) The contribution was provided directly to me by some other
person who certified (a), (b) or (c) and I have not modified
(d) I understand and agree that this project and the contribution
are public and that a record of the contribution (including all
personal information I submit with it, including my sign-off) is
maintained indefinitely and may be redistributed consistent with
this project or the open source license(s) involved.

vendor/code.gitea.io/git/LICENSE generated vendored

@ -1,4 +1,5 @@
Copyright (c) 2015 All Gogs Contributors
Copyright (c) 2016 The Gitea Authors
Copyright (c) 2014 The Gogs Authors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

@ -0,0 +1,10 @@
Andrey Nering <nobody@nobody.tld> (@andreynering)
Kim Carlbäcker <kim.carlbacker@gmail.com> (@bkcsoft)
LefsFlare <nobody@nobody.tld> (@LefsFlarey)
Lunny Xiao <xiaolunwen@gmail.com> (@lunny)
Matthias Loibl <mail@matthiasloibl.com> (@metalmatze)
Rachid Zarouali <nobody@nobody.tld> (@xinity)
Rémy Boulanouar <admin@dblk.org> (@DblK)
Sandro Santilli <strk@kbt.io> (@strk)
Thibault Meyer <nobody@nobody.tld> (@0xbaadf00d)
Thomas Boerger <thomas@webhippie.de> (@tboerger)

vendor/code.gitea.io/git/Makefile generated vendored

@ -0,0 +1,40 @@
IMPORT := code.gitea.io/git
PACKAGES ?= $(shell go list ./... | grep -v /vendor/)
GENERATE ?= code.gitea.io/git
.PHONY: all
all: clean test build
.PHONY: clean
go clean -i ./...
@which mockery > /dev/null; if [ $$? -ne 0 ]; then \
go get -u github.com/vektra/mockery/...; \
go generate $(GENERATE)
.PHONY: fmt
go fmt $(PACKAGES)
.PHONY: vet
go vet $(PACKAGES)
.PHONY: lint
@which golint > /dev/null; if [ $$? -ne 0 ]; then \
go get -u github.com/golang/lint/golint; \
for PKG in $(PACKAGES); do golint -set_exit_status $$PKG || exit 1; done;
.PHONY: test
for PKG in $(PACKAGES); do go test -cover -coverprofile $$GOPATH/src/$$PKG/coverage.out $$PKG || exit 1; done;
.PHONY: build
go build .

@ -1,13 +1,16 @@
# Git Shell [![Build # Status](https://travis-ci.org/go-gitea/git.svg?branch=master)](https://travis-ci.org/go-gitea/git)
# Git Shell
Package git is a Go module for Git access through shell commands.
[![Build Status](http://drone.gitea.io/api/badges/go-gitea/git/status.svg)](http://drone.gitea.io/go-gitea/git)
[![Join the chat at https://gitter.im/go-gitea/gitea](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/go-gitea/gitea?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
[![](https://images.microbadger.com/badges/image/gitea/gitea.svg)](http://microbadger.com/images/gitea/gitea "Get your own image badge on microbadger.com")
[![Coverage Status](https://coverage.gitea.io/badges/go-gitea/git/coverage.svg)](https://coverage.gitea.io/go-gitea/git)
[![Go Report Card](https://goreportcard.com/badge/code.gitea.io/git)](https://goreportcard.com/report/code.gitea.io/git)
## Limitations
- Go version must be at least **1.3**.
- Git version must be no less than **1.7.1**, and great than or equal to **1.8.0** is recommended.
- For Windows users, try use as higher version as possible.
This project is a Go module to access Git through shell commands. For further
informations take a look at the current [documentation](https://godoc.org/code.gitea.io/git).
## License
This project is under the MIT License. See the [LICENSE](LICENSE) file for the full license text.
This project is under the MIT License. See the [LICENSE](LICENSE) file for the
full license text.

vendor/code.gitea.io/git/hook.go generated vendored

@ -102,13 +102,13 @@ func ListHooks(repoPath string) (_ []*Hook, err error) {
const (
HOOK_PATH_UPDATE = "hooks/update"
HookPathUpdate = "hooks/update"
// SetUpdateHook writes given content to update hook of the reposiotry.
func SetUpdateHook(repoPath, content string) (err error) {
log("Setting update hook: %s", repoPath)
hookPath := path.Join(repoPath, HOOK_PATH_UPDATE)
hookPath := path.Join(repoPath, HookPathUpdate)
if com.IsExist(hookPath) {
err = os.Remove(hookPath)
} else {

@ -110,7 +110,7 @@ func (repo *Repository) GetTags() ([]string, error) {
// Reverse order
for i := 0; i < len(tags) / 2; i++ {
for i := 0; i < len(tags)/2; i++ {
j := len(tags) - i - 1
tags[i], tags[j] = tags[j], tags[i]

@ -8,6 +8,7 @@ import (
@ -114,19 +115,31 @@ type commitInfo struct {
err error
// GetCommitsInfo takes advantages of concurrey to speed up getting information
// of all commits that are corresponding to these entries.
// TODO: limit max goroutines number should be configurable
// GetCommitsInfo takes advantages of concurrency to speed up getting information
// of all commits that are corresponding to these entries. This method will automatically
// choose the right number of goroutine (concurrency) to use related of the host CPU.
func (tes Entries) GetCommitsInfo(commit *Commit, treePath string) ([][]interface{}, error) {
return tes.GetCommitsInfoWithCustomConcurrency(commit, treePath, 0)
// GetCommitsInfoWithCustomConcurrency takes advantages of concurrency to speed up getting information
// of all commits that are corresponding to these entries. If the given maxConcurrency is negative or
// equal to zero: the right number of goroutine (concurrency) to use will be choosen related of the
// host CPU.
func (tes Entries) GetCommitsInfoWithCustomConcurrency(commit *Commit, treePath string, maxConcurrency int) ([][]interface{}, error) {
if len(tes) == 0 {
return nil, nil
if maxConcurrency <= 0 {
maxConcurrency = runtime.NumCPU()
// Length of taskChan determines how many goroutines (subprocesses) can run at the same time.
// The length of revChan should be same as taskChan so goroutines whoever finished job can
// exit as early as possible, only store data inside channel.
taskChan := make(chan bool, 10)
revChan := make(chan commitInfo, 10)
taskChan := make(chan bool, maxConcurrency)
revChan := make(chan commitInfo, maxConcurrency)
doneChan := make(chan error)
// Receive loop will exit when it collects same number of data pieces as tree entries.

@ -3,10 +3,10 @@
"ignore": "test",
"package": [
"checksumSHA1": "/JuXxX+Zg9lk3zvT9c82ltavFdk=",
"checksumSHA1": "X4WaxEtgFkM4VHg6TcNk2xkrqCI=",
"path": "code.gitea.io/git",
"revision": "cddfff06fa8ed36571d43c1463ea63b3e6e8244b",
"revisionTime": "2016-11-12T10:50:26Z"
"revision": "0807b517283977be34f0ff5510b21e676fc1527c",
"revisionTime": "2016-11-13T14:20:52Z"
"checksumSHA1": "/uhZZppDeb3Rbp3h8C0ALR3hdrA=",