Find a file
Filip Navara 2af67f6044 Improve listing performance by using go-git (#6478)
* Use go-git for tree reading and commit info lookup.

Signed-off-by: Filip Navara <navara@emclient.com>

* Use TreeEntry.IsRegular() instead of ObjectType that was removed.

Signed-off-by: Filip Navara <navara@emclient.com>

* Use the treePath to optimize commit info search.

Signed-off-by: Filip Navara <navara@emclient.com>

* Extract the latest commit at treePath along with the other commits.

Signed-off-by: Filip Navara <navara@emclient.com>

* Fix listing commit info for a directory that was created in one commit and never modified after.

Signed-off-by: Filip Navara <navara@emclient.com>

* Avoid nearly all external 'git' invocations when doing directory listing (.editorconfig code path is still hit).

Signed-off-by: Filip Navara <navara@emclient.com>

* Use go-git for reading blobs.

Signed-off-by: Filip Navara <navara@emclient.com>

* Make SHA1 type alias for plumbing.Hash in go-git.

Signed-off-by: Filip Navara <navara@emclient.com>

* Make Signature type alias for object.Signature in go-git.

Signed-off-by: Filip Navara <navara@emclient.com>

* Fix GetCommitsInfo for repository with only one commit.

Signed-off-by: Filip Navara <navara@emclient.com>

* Fix PGP signature verification.

Signed-off-by: Filip Navara <navara@emclient.com>

* Fix issues with walking commit graph across merges.

Signed-off-by: Filip Navara <navara@emclient.com>

* Fix typo in condition.

Signed-off-by: Filip Navara <navara@emclient.com>

* Speed up loading branch list by keeping the repository reference (and thus all the loaded packfile indexes).

Signed-off-by: Filip Navara <navara@emclient.com>

* Fix lising submodules.

Signed-off-by: Filip Navara <navara@emclient.com>

* Fix build

Signed-off-by: Filip Navara <navara@emclient.com>

* Add back commit cache because of name-rev

Signed-off-by: Filip Navara <navara@emclient.com>

* Fix tests

Signed-off-by: Filip Navara <navara@emclient.com>

* Fix code style

* Fix spelling

* Address PR feedback

Signed-off-by: Filip Navara <navara@emclient.com>

* Update vendor module list

Signed-off-by: Filip Navara <navara@emclient.com>

* Fix getting trees by commit id

Signed-off-by: Filip Navara <navara@emclient.com>

* Fix remaining unit test failures

* Fix GetTreeBySHA

* Avoid running `git name-rev` if not necessary

Signed-off-by: Filip Navara <navara@emclient.com>

* Move Branch code to git module

* Clean up GPG signature verification and fix it for tagged commits

* Address PR feedback (import formatting, copyright headers)

* Make blob lookup by SHA working

* Update tests to use public API

* Allow getting content from any type of object through the blob interface

* Change test to actually expect the object content that is in the GIT repository

* Change one more test to actually expect the object content that is in the GIT repository

* Add comments
2019-04-19 20:17:27 +08:00
.github Add security note to issue template (#6281) 2019-03-08 13:15:46 -05:00
assets Add task to generate images from SVG and change to new logo (#2194) 2017-07-28 13:51:20 +08:00
cmd Add username flag in create-user command (#6534) 2019-04-09 11:21:55 -04:00
contrib Add way to force checkout (#6322) 2019-03-15 12:18:01 -04:00
custom/conf Fixes 4762 - Content API for Creating, Updating, Deleting Files (#6314) 2019-04-17 12:06:35 -04:00
docker [docker] let the ssh daemon speak for itself and drop the syslog daemon (#6529) 2019-04-16 21:08:25 -04:00
docs Fixes 4762 - Content API for Creating, Updating, Deleting Files (#6314) 2019-04-17 12:06:35 -04:00
integrations Improve listing performance by using go-git (#6478) 2019-04-19 20:17:27 +08:00
models Improve listing performance by using go-git (#6478) 2019-04-19 20:17:27 +08:00
modules Improve listing performance by using go-git (#6478) 2019-04-19 20:17:27 +08:00
options [skip ci] Updated translations via Crowdin 2019-04-19 02:57:33 +00:00
public Telegram webhook (#4227) 2019-04-18 22:45:02 -04:00
routers Improve listing performance by using go-git (#6478) 2019-04-19 20:17:27 +08:00
scripts Update gitignore list (#5258) 2018-11-03 18:06:09 -04:00
snap Update build tags for sqlite_unlock_notify (#5144) 2018-10-23 19:47:59 +08:00
templates Improve listing performance by using go-git (#6478) 2019-04-19 20:17:27 +08:00
vendor Improve listing performance by using go-git (#6478) 2019-04-19 20:17:27 +08:00
.changelog.yml Add changelog config file for generate changelog (#2461) 2017-09-04 13:07:57 +03:00
.drone.yml Disable benchmarking during tag events on DroneIO (#6365) 2019-03-19 02:24:55 -04:00
.editorconfig Add autoprefixer to css build (#6029) 2019-02-11 01:13:30 -05:00
.gitattributes ignore static files statstics for linguist 2016-12-27 16:49:25 +01:00
.gitignore Add test environment for Mysql8 (#5234) 2019-03-17 15:17:18 -04:00
.lgtm refactor: ignore LGTM from author of pull request. (#3283) 2018-01-02 06:13:49 -06:00
.revive.toml refactor: replace lint to revive (#5422) 2018-12-03 09:28:46 -05:00
BSDmakefile Add BSDmakefile to prevent errors when make is called under FreeBSD (#4446) 2018-07-16 20:45:51 +02:00
CHANGELOG.md backport 1.8.0-rc3 & 1.7.6 changelog (#6598) 2019-04-13 00:19:51 -04:00
CONTRIBUTING.md Use Go1.11 module (#5743) 2019-03-27 19:15:23 +08:00
DCO follow the advisor: add DCO and some improvements 2016-11-04 16:43:41 +08:00
Dockerfile Use golang 1.12 to build in dockerfile (#6285) 2019-03-08 15:25:47 -05:00
go.mod Improve listing performance by using go-git (#6478) 2019-04-19 20:17:27 +08:00
go.sum Add API for manipulating Git hooks (#6436) 2019-04-17 01:31:08 -04:00
LICENSE Fix typo 2016-11-08 08:42:05 +01:00
main.go add make version on gitea version (#6485) 2019-04-02 12:10:11 -04:00
MAINTAINERS Add myself to MAINTAINERS (#6554) 2019-04-09 15:42:20 -04:00
Makefile remove bash requirement in makefile (#6617) 2019-04-14 16:33:24 -04:00
package-lock.json Add autoprefixer to css build (#6029) 2019-02-11 01:13:30 -05:00
package.json Add autoprefixer to css build (#6029) 2019-02-11 01:13:30 -05:00
README.md Update API link in README (#5241) 2018-10-31 20:18:28 -04:00
README_ZH.md Move README_ZH.md Screenshots to Bottom (#4895) 2018-09-09 12:13:48 +08:00

简体中文

Gitea - Git with a cup of tea

Build Status Join the Discord chat at https://discord.gg/NsatcWJ codecov Go Report Card GoDoc GitHub release Help Contribute to Open Source Become a backer/sponsor of gitea

Purpose

The goal of this project is to make the easiest, fastest, and most painless way of setting up a self-hosted Git service. Using Go, this can be done with an independent binary distribution across all platforms which Go supports, including Linux, macOS, and Windows on x86, amd64, ARM and PowerPC architectures. Want to try it before doing anything else? Do it with the online demo! This project has been forked from Gogs since 2016.11 but changed a lot.

Building

From the root of the source tree, run:

TAGS="bindata" make generate all

More info: https://docs.gitea.io/en-us/install-from-source/

Using

./gitea web

NOTE: If you're interested in using our APIs, we have experimental support with documentation.

Contributing

Expected workflow is: Fork -> Patch -> Push -> Pull Request

NOTES:

  1. YOU MUST READ THE CONTRIBUTORS GUIDE BEFORE STARTING TO WORK ON A PULL REQUEST.
  2. If you have found a vulnerability in the project, please write privately to security@gitea.io. Thanks!

Further information

For more information and instructions about how to install Gitea, please look at our documentation. If you have questions that are not covered by the documentation, you can get in contact with us on our Discord server, or forum!

Authors

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

FAQ

How do you pronounce Gitea?

Gitea is pronounced /ɡɪti:/ as in "gi-tea" with a hard g.

Why is this not hosted on a Gitea instance?

We're working on it.

License

This project is licensed under the MIT License. See the LICENSE file for the full license text.

Screenshots

Looking for an overview of the interface? Check it out!

Dashboard Repository Commits History
Branches Issues Pull Request View
Releases Activity Wiki
Diff Organization Profile