gitea/modules/git
a1012112796 3705168837
Add agit flow support in gitea ()
* feature: add agit flow support

ref: https://git-repo.info/en/2020/03/agit-flow-and-git-repo/

example:

```Bash
git checkout -b test
echo "test" >> README.md
git commit -m "test"
git push origin HEAD:refs/for/master -o topic=test
```

Signed-off-by: a1012112796 <1012112796@qq.com>

* fix lint

* simplify code add fix some nits

* update merge help message

* Apply suggestions from code review. Thanks @jiangxin

* add forced-update message

* fix lint

* splite writePktLine

* add refs/for/<target-branch>/<topic-branch> support also

* Add test code add fix api

* fix lint

* fix test

* skip test if git version < 2.29

* try test with git 2.30.1

* fix permission check bug

* fix some nit

* logic implify and test code update

* fix bug

* apply suggestions from code review

* prepare for merge

Signed-off-by: Andrew Thornton <art27@cantab.net>

* fix permission check bug

- test code update
- apply suggestions from code review @zeripath

Signed-off-by: a1012112796 <1012112796@qq.com>

* fix bug when target branch isn't exist

* prevent some special push and fix some nits

* fix lint

* try splite

* Apply suggestions from code review

- fix permission check
- handle user rename

* fix version negotiation

* remane

* fix template

* handle empty repo

* ui: fix  branch link under the title

* fix nits

Co-authored-by: Andrew Thornton <art27@cantab.net>
Co-authored-by: 6543 <6543@obermui.de>
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
..
pipeline Use git log name-status in get last commit ()
tests/repos Fix webhook commits wrong hash on HEAD reset ()
README.md move code.gitea.io/git to code.gitea.io/gitea/modules/git ()
batch_reader.go Make cancel from CatFileBatch and CatFileBatchCheck wait for the command to end ()
blame.go Fix various documentation, user-facing, and source comment typos ()
blame_test.go Ensure BlameReaders close at end of request ()
blob.go Fix diff expansion is missing final line in a file ()
blob_gogit.go Use native git variants by default with go-git variants as build tag ()
blob_nogogit.go Use gitea logging module for git module ()
blob_test.go On open repository open common cat file batch and batch-check ()
command.go Limit stdout tracelog to actual stdout ()
command_test.go Fix nondeterministic behavior ()
commit.go Fix modified files list in webhooks when there is a space ()
commit_convert_gogit.go Use native git variants by default with go-git variants as build tag ()
commit_info.go Use native git variants by default with go-git variants as build tag ()
commit_info_gogit.go Make commit info cancelable ()
commit_info_nogogit.go Use gitea logging module for git module ()
commit_info_test.go Make commit info cancelable ()
commit_reader.go Tagger can be empty, as can Commit and Author - tolerate this ()
commit_test.go Fix modified files list in webhooks when there is a space ()
diff.go Use gitea logging module for git module ()
diff_test.go Fix a couple of CommentAsPatch issues. ()
error.go Fix 500 Error with branch and tag sharing the same name ()
git.go Add agit flow support in gitea ()
git_test.go Use gitea logging module for git module ()
hook.go Use gitea logging module for git module ()
last_commit_cache.go Use gitea logging module for git module ()
last_commit_cache_gogit.go Use gitea logging module for git module ()
last_commit_cache_nogogit.go Fix panic in recursive cache ()
lfs.go Let package git depend on setting but not opposite ()
log_name_status.go Use git log name-status in get last commit ()
notes.go Use native git variants by default with go-git variants as build tag ()
notes_gogit.go Make commit info cancelable ()
notes_nogogit.go Use git log name-status in get last commit ()
notes_test.go Make commit info cancelable ()
parse_gogit.go Reduce calls to git cat-file -s ()
parse_gogit_test.go Reduce calls to git cat-file -s ()
parse_nogogit.go Use gitea logging module for git module ()
parse_nogogit_test.go Fixed assert statements. ()
ref.go Multiple GitGraph improvements: Exclude PR heads, Add branch/PR links, Show only certain branches, ()
remote.go Add push to remote mirror repository ()
repo.go Fix 500 Error with branch and tag sharing the same name ()
repo_archive.go Rework repository archive ()
repo_attribute.go go-version constraints ignore pre-releases ()
repo_base_gogit.go Update Go-Git to take advantage of LargeObjectThreshold ()
repo_base_nogogit.go Use gitea logging module for git module ()
repo_blame.go Removed unnecessary conversions ()
repo_blob.go Use native git variants by default with go-git variants as build tag ()
repo_blob_gogit.go Use native git variants by default with go-git variants as build tag ()
repo_blob_nogogit.go On open repository open common cat file batch and batch-check ()
repo_blob_test.go On open repository open common cat file batch and batch-check ()
repo_branch.go Add agit flow support in gitea ()
repo_branch_gogit.go More efficiently parse shas for shaPostProcessor ()
repo_branch_nogogit.go Use gitea logging module for git module ()
repo_branch_test.go [API] Add pagination to ListBranches ()
repo_commit.go Fix various documentation, user-facing, and source comment typos ()
repo_commit_gogit.go On open repository open common cat file batch and batch-check ()
repo_commit_nogogit.go Use gitea logging module for git module ()
repo_commit_test.go Fix webhook commits wrong hash on HEAD reset ()
repo_commitgraph_gogit.go Use native git variants by default with go-git variants as build tag ()
repo_compare.go Restore detection of branches are equal on compare page ()
repo_compare_test.go Re-attempt to delete temporary upload if the file is locked by another process ()
repo_gpg.go Sign merges, CRUD, Wiki and Repository initialisation with gpg key ()
repo_hook.go move code.gitea.io/git to code.gitea.io/gitea/modules/git ()
repo_index.go Be more strict with git arguments ()
repo_language_stats.go Use native git variants by default with go-git variants as build tag ()
repo_language_stats_gogit.go Speed up `enry.IsVendor` ()
repo_language_stats_nogogit.go Use gitea logging module for git module ()
repo_object.go Use native git variants by default with go-git variants as build tag ()
repo_ref.go Use native git variants by default with go-git variants as build tag ()
repo_ref_gogit.go Use native git variants by default with go-git variants as build tag ()
repo_ref_nogogit.go Use native git variants by default with go-git variants as build tag ()
repo_ref_test.go Add Close() method to gogitRepository ()
repo_stats.go Fix various documentation, user-facing, and source comment typos ()
repo_stats_test.go Add top author stats to activity page ()
repo_tag.go Use gitea logging module for git module ()
repo_tag_gogit.go Use native git variants by default with go-git variants as build tag ()
repo_tag_nogogit.go On open repository open common cat file batch and batch-check ()
repo_tag_test.go Create tag on ui ()
repo_test.go Tests should use test files ()
repo_tree.go Use native git variants by default with go-git variants as build tag ()
repo_tree_gogit.go Use native git variants by default with go-git variants as build tag ()
repo_tree_nogogit.go On open repository open common cat file batch and batch-check ()
sha1.go Use native git variants by default with go-git variants as build tag ()
sha1_gogit.go Use native git variants by default with go-git variants as build tag ()
sha1_nogogit.go Use native git variants by default with go-git variants as build tag ()
signature.go Use native git variants by default with go-git variants as build tag ()
signature_gogit.go Use native git variants by default with go-git variants as build tag ()
signature_nogogit.go Use native git variants by default with go-git variants as build tag ()
submodule.go Compare SSH_DOMAIN when parsing submodule URLs ()
submodule_test.go Compare SSH_DOMAIN when parsing submodule URLs ()
tag.go Tagger can be empty, as can Commit and Author - tolerate this ()
tag_test.go Fix git.parseTagData ()
tree.go Add TestPrepareWikiFileName ()
tree_blob.go Use native git variants by default with go-git variants as build tag ()
tree_blob_gogit.go Use native git variants by default with go-git variants as build tag ()
tree_blob_nogogit.go On open repository open common cat file batch and batch-check ()
tree_entry.go On open repository open common cat file batch and batch-check ()
tree_entry_gogit.go Use native git variants by default with go-git variants as build tag ()
tree_entry_mode.go Use native git variants by default with go-git variants as build tag ()
tree_entry_nogogit.go On open repository open common cat file batch and batch-check ()
tree_entry_test.go Fixed assert statements. ()
tree_gogit.go Use native git variants by default with go-git variants as build tag ()
tree_nogogit.go On open repository open common cat file batch and batch-check ()
utils.go Fix various documentation, user-facing, and source comment typos ()
utils_test.go Fix ref links in issue overviews for tags ()

README.md

Git Module

This module is merged from https://github.com/go-gitea/git which is a Go module to access Git through shell commands. Now it's a part of gitea's main repository for easier pull request.