forked from gitea/gitea
Upgrade vendor "git" (#175)
This commit is contained in:
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
|
||||
instructions](https://github.com/go-gitea/docs/tree/master/en-US/installation)
|
||||
|
||||
Sensitive security-related issues should be reported to
|
||||
[security@gitea.io](mailto:security@gitea.io).
|
||||
|
||||
## 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
|
||||
Effectively](http://www.chiark.greenend.org.uk/~sgtatham/bugs.html).
|
||||
|
||||
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
|
||||
repositories.
|
||||
|
||||
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
|
||||
accepted.
|
||||
|
||||
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
|
||||
|
||||
```
|
||||
ALL TESTS PASSED
|
||||
```
|
||||
|
||||
## 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
|
||||
[CONTRIBUTORS](CONTRIBUTORS).
|
||||
|
||||
## 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
|
||||
team.
|
||||
|
||||
## 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 agree with [CONTRIBUTING](CONTRIBUTING.md).
|
||||
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
|
||||
below:
|
||||
|
||||
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)
|
|
@ -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
|
||||
it.
|
||||
|
||||
(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.
|
|
@ -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
|
||||
|
@ -16,4 +17,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
THE SOFTWARE.
|
||||
|
|
|
@ -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)
|
|
@ -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
|
||||
clean:
|
||||
go clean -i ./...
|
||||
|
||||
generate:
|
||||
@which mockery > /dev/null; if [ $$? -ne 0 ]; then \
|
||||
go get -u github.com/vektra/mockery/...; \
|
||||
fi
|
||||
go generate $(GENERATE)
|
||||
|
||||
.PHONY: fmt
|
||||
fmt:
|
||||
go fmt $(PACKAGES)
|
||||
|
||||
.PHONY: vet
|
||||
vet:
|
||||
go vet $(PACKAGES)
|
||||
|
||||
.PHONY: lint
|
||||
lint:
|
||||
@which golint > /dev/null; if [ $$? -ne 0 ]; then \
|
||||
go get -u github.com/golang/lint/golint; \
|
||||
fi
|
||||
for PKG in $(PACKAGES); do golint -set_exit_status $$PKG || exit 1; done;
|
||||
|
||||
.PHONY: test
|
||||
test:
|
||||
for PKG in $(PACKAGES); do go test -cover -coverprofile $$GOPATH/src/$$PKG/coverage.out $$PKG || exit 1; done;
|
||||
|
||||
.PHONY: build
|
||||
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)
|
||||
[![GoDoc](https://godoc.org/code.gitea.io/git?status.svg)](https://godoc.org/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.
|
||||
|
|
|
@ -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) {
|
|||
version.Sort(tags)
|
||||
|
||||
// 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 (
|
|||
"fmt"
|
||||
"path"
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"sort"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
@ -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=",
|
||||
|
|
Loading…
Reference in New Issue