aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* plumbing: Optimise memory consumption for filesystem storagePaulo Gomes2023-10-283-50/+260
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, as part of building the index representation, the resolveObject func would create an interim plumbing.MemoryObject, which would then be saved into storage via storage.SetEncodedObject. This meant that objects would be unnecessarily loaded into memory, to then be saved into disk. The changes streamlines this process by: - Introducing the LazyObjectWriter interface which enables the write operation to take places directly against the filesystem-based storage. - Leverage multi-writers to process the input data once, while targeting multiple writers (e.g. hasher and storage). An additional change relates to the caching of object info children within Parser.get. The cache is now skipped when a seekable filesystem is being used. The impact of the changes can be observed when using seekable filesystem storages, especially when cloning large repositories. The stats below were captured by adapting the BenchmarkPlainClone test to clone https://github.com/torvalds/linux.git: pkg: github.com/go-git/go-git/v5 cpu: Intel(R) Core(TM) i9-10885H CPU @ 2.40GHz │ /tmp/old │ /tmp/new │ │ sec/op │ sec/op vs base │ PlainClone-16 41.68 ± 17% 48.04 ± 9% +15.27% (p=0.015 n=6) │ /tmp/old │ /tmp/new │ │ B/op │ B/op vs base │ PlainClone-16 1127.8Mi ± 7% 256.7Mi ± 50% -77.23% (p=0.002 n=6) │ /tmp/old │ /tmp/new │ │ allocs/op │ allocs/op vs base │ PlainClone-16 3.125M ± 0% 3.800M ± 0% +21.60% (p=0.002 n=6) Notice that on average the memory consumption per operation is over 75% smaller. The time per operation increased by 15%, which may actual be less on long running applications, due to the decreased GC pressure and the garbage collection costs. Signed-off-by: Paulo Gomes <pjbgf@linux.com>
* *: Improve BenchmarkPlainClonePaulo Gomes2023-10-281-11/+16
| | | | | | | The changes aim to make that specific benchmark more reliable for setting a baseline which can later be use to compare against future changes on the most basic feature of go-git: plain cloning repositories.
* Merge pull request #875 from adityasaky/fix-non-branch-ff-fetchPaulo Gomes2023-10-263-4/+145
|\ | | | | remote: Flip clause for fast-forward only check
| * git: remote, flip branch check to not-tag checkAditya Sirish2023-10-262-3/+144
| | | | | | | | | | | | | | | | | | | | In remote.updateLocalReferenceStorage, this commit updates a check to see if the reference is for a branch (in refs/heads) to checking the reference is not a tag. This change ensures that the subsequent fast-forward only handling clauses apply to references that are not standard branches stored in refs/heads. Signed-off-by: Aditya Sirish <aditya@saky.in>
| * build: Add 'git' as valid commit msg schemeAditya Sirish2023-10-131-1/+1
| | | | | | | | Signed-off-by: Aditya Sirish <aditya@saky.in>
* | Merge pull request #890 from go-git/dependabot/github_actions/actions/checkout-4Paulo Gomes2023-10-263-3/+3
|\ \ | | | | | | build: bump actions/checkout from 3 to 4
| * | build: bump actions/checkout from 3 to 4dependabot[bot]2023-10-253-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
* | | Merge pull request #888 from ↵Paulo Gomes2023-10-262-3/+3
|\ \ \ | | | | | | | | | | | | | | | | go-git/dependabot/go_modules/github.com/skeema/knownhosts-1.2.1 build: bump github.com/skeema/knownhosts from 1.2.0 to 1.2.1
| * | | build: bump github.com/skeema/knownhosts from 1.2.0 to 1.2.1dependabot[bot]2023-10-262-3/+3
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bumps [github.com/skeema/knownhosts](https://github.com/skeema/knownhosts) from 1.2.0 to 1.2.1. - [Commits](https://github.com/skeema/knownhosts/compare/v1.2.0...v1.2.1) --- updated-dependencies: - dependency-name: github.com/skeema/knownhosts dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
* | | Merge pull request #891 from go-git/dependabot/github_actions/actions/setup-go-4Paulo Gomes2023-10-262-2/+2
|\ \ \ | | | | | | | | build: bump actions/setup-go from 3 to 4
| * | | build: bump actions/setup-go from 3 to 4dependabot[bot]2023-10-252-2/+2
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bumps [actions/setup-go](https://github.com/actions/setup-go) from 3 to 4. - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](https://github.com/actions/setup-go/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/setup-go dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
* | | Merge pull request #887 from ↵Paulo Gomes2023-10-262-3/+3
|\ \ \ | |/ / |/| | | | | | | | go-git/dependabot/go_modules/github.com/google/go-cmp-0.6.0 build: bump github.com/google/go-cmp from 0.5.9 to 0.6.0
| * | build: bump github.com/google/go-cmp from 0.5.9 to 0.6.0dependabot[bot]2023-10-252-3/+3
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | Bumps [github.com/google/go-cmp](https://github.com/google/go-cmp) from 0.5.9 to 0.6.0. - [Release notes](https://github.com/google/go-cmp/releases) - [Commits](https://github.com/google/go-cmp/compare/v0.5.9...v0.6.0) --- updated-dependencies: - dependency-name: github.com/google/go-cmp dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
* | Merge pull request #879 from pjbgf/create-dependabot-configPaulo Gomes2023-10-251-0/+15
|\ \ | |/ |/| Add dependabot configuration file
| * build: Add dependabot configurationPaulo Gomes2023-10-131-0/+15
| | | | | | | | | | | | | | | | | | | | Configure dependabot to check for Go updates daily and GitHub actions weekly. The configuration sets the commit prefix, so that it aligns with the contributing guidelines. Signed-off-by: Paulo Gomes <pjbgf@linux.com>
* | Merge pull request #869 from zeripath/graph-generation-2v5.10.0Paulo Gomes2023-10-1317-58/+892
|\ \ | |/ |/| plumbing: commitgraph, Add generation v2 support
| * plumbing: commitgraph, Add generation v2 supportAndrew Thornton2023-10-1217-58/+892
| | | | | | | | | | | | | | | | This PR adds in support for generation v2 support and a couple of new walkers to match --date-order etc options on log. This PR also fixes a bug in the chain code and adds more tests. Signed-off-by: Andrew Thornton <art27@cantab.net>
* | Merge pull request #873 from ↵Paulo Gomes2023-10-132-7/+7
|\ \ | |/ |/| | | | | go-git/dependabot/go_modules/golang.org/x/net-0.17.0 build(deps): bump golang.org/x/net from 0.15.0 to 0.17.0
| * build: bump golang.org/x/net from 0.15.0 to 0.17.0Paulo Gomes2023-10-132-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | Bumps [golang.org/x/net](https://github.com/golang/net) from 0.15.0 to 0.17.0. - [Commits](https://github.com/golang/net/compare/v0.15.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: Paulo Gomes <pjbgf@linux.com>
* | Merge pull request #866 from makkes/better-error-handlingPaulo Gomes2023-10-123-4/+124
|\ \ | |/ |/| Improve handling of remote errors
| * plumbing: transport/common, Improve handling of remote errorsMax Jonas Werner2023-10-123-4/+124
| | | | | | | | | | | | | | | | | | | | | | Instead of simply returning the first line that the remote returned, go-git now actively searches all of stderr for lines that may contain a more actionable error message and returns that. In addition, this change adds a case to map the GitLab-specific error message to an ErrRepositoryNotFound error. Signed-off-by: Max Jonas Werner <mail@makk.es>
* | Merge pull request #867 from pjbgf/commit-checkerPaulo Gomes2023-10-091-0/+30
|\ \ | | | | | | build: Add github workflow to check commit message format
| * | build: Add github workflow to check commit message formatPaulo Gomes2023-10-091-0/+30
|/ / | | | | | | | | | | Adds automation to confirm the commit messages align with the contributing guidelines. Signed-off-by: Paulo Gomes <pjbgf@linux.com>
* | Merge pull request #868 from pjbgf/fix-fuzzPaulo Gomes2023-10-092-5/+34
|\ \ | | | | | | plumbing: protocol/packp, Add validation for decodeLine
| * | plumbing: protocol/packp, Add validation for decodeLinePaulo Gomes2023-10-072-5/+34
| |/ | | | | | | Signed-off-by: Paulo Gomes <pjbgf@linux.com>
* | Merge pull request #860 from enverbisevac/masterPaulo Gomes2023-10-0811-173/+353
|\ \ | | | | | | add clone --shared feature
| * | git: clone --shared implementedenverbisevac2023-10-0811-173/+353
| | |
* | | Merge pull request #854 from zeripath/graph-chainPaulo Gomes2023-10-0820-396/+1607
|\ \ \ | |_|/ |/| | plumbing: commitgraph, Allow reading commit-graph chains
| * | plumbing: commitgraph, fix types and handle commit-graph-chainsAndrew Thornton2023-10-0820-396/+1607
|/ / | | | | | | | | | | | | | | | | Unfortunately the original variant makes some incorrect typing assumptions about commit-graphs which make handling graph chains difficult to do correctly. This creates a new subpackage and deprecates the old one. It then adds support commit graph chains. Signed-off-by: Andrew Thornton <art27@cantab.net>
* | Merge pull request #858 from 0x34d/fuzzing-cleanupPaulo Gomes2023-10-064-14/+74
|\ \ | | | | | | *: add cifuzz and update fuzzers
| * | [fuzzing] cifuzz, update fuzzers, bug fixArjun Singh2023-10-064-14/+74
| |/ | | | | | | Signed-off-by: Arjun Singh <ajsinghyadav00@gmail.com>
* | Merge pull request #761 from liwenqiu/parse-commit-encoding-headerPaulo Gomes2023-10-042-4/+25
|\ \ | |/ |/| plumbing: parse the encoding header of the commit object
| * plumbing: parse the encoding header of the commit objectliwenqiu2023-10-042-4/+25
| | | | | | | | other part can re-code the commit message according to the encoding to this encoding info
* | Merge pull request #855 from 0x34d/fuzzingPaulo Gomes2023-10-039-0/+94
|\ \ | |/ |/| fuzzing : fuzz testing support for oss-fuzz integration
| * fuzzing : fuzz testing support for oss-fuzz integrationArjun Singh2023-10-029-0/+94
| | | | | | | | Signed-off-by: Arjun Singh <ajsinghyadav00@gmail.com>
* | Merge pull request #853 from zeripath/graph-sha256Paulo Gomes2023-10-012-13/+31
|\ \ | | | | | | plumbing: commitgraph, allow SHA256 commit-graphs
| * | plumbing: commitgraph, allow SHA256 commit-graphsAndrew Thornton2023-09-302-13/+31
|/ / | | | | | | | | | | | | | | Since the build-tag sha256 was introduced the commit graph code should be switched to use hash.Size and only use a graph if it has the correct hash version for the version of go-git that is built. Signed-off-by: Andrew Thornton <art27@cantab.net>
* | Merge pull request #850 from pjbgf/adjust-stalePaulo Gomes2023-09-291-6/+4
|\|
| * *: Change stale bot order to ascending and improve msg formatPaulo Gomes2023-09-281-6/+4
|/ | | | Signed-off-by: Paulo Gomes <pjbgf@linux.com>
* Merge pull request #836 from hezhizhen/typoPaulo Gomes2023-09-2816-267/+267
|\ | | | | *: fix some typos
| * *: fix some typosZhizhen He2023-09-0816-267/+267
| | | | | | | | Signed-off-by: Zhizhen He <hezhizhen.yi@gmail.com>
* | Merge pull request #849 from pjbgf/close-state-issuesPaulo Gomes2023-09-271-0/+33
|\ \ | | | | | | *: Add bot to close stale issues
| * | *: Add bot to close stale issuesPaulo Gomes2023-09-271-0/+33
|/ / | | | | | | | | | | | | Due to the limited amount of active maintainers, adding a stale bot to focus the available maintainership on active PRs and issues. Signed-off-by: Paulo Gomes <pjbgf@linux.com>
* | Merge pull request #847 from adityasaky/support-mergetagPaulo Gomes2023-09-272-0/+83
|\ \ | | | | | | plumbing/object: Support mergetag in merge commits
| * | plumbing/object: Support mergetag in merge commitsAditya Sirish2023-09-272-0/+83
|/ / | | | | | | | | | | | | | | When a merge commit is created from merging a signed tag, the tag object is embedded in the commit object. This commit adds support for this tag data when encoding and decoding a commit object. Signed-off-by: Aditya Sirish <aditya@saky.in>
* | Merge pull request #840 from nodivbyzero/fix-pull-proxy-optionsPaulo Gomes2023-09-161-0/+1
|\ \ | | | | | | git: worktree, apply ProxyOption on Pull
| * | git: worktree:: apply ProxyOption on Pull. Fixes #840nodivbyzero2023-09-151-0/+1
| | |
* | | Merge pull request #782 from ThinkChaos/feat/plain-init-branchPaulo Gomes2023-09-153-12/+40
|\ \ \ | |/ / |/| | git: add PlainInitOptions.Bare and allow using InitOptions with PlainInitWithOptions
| * | git: allow using `InitOptions` with `PlainInitWithOptions`ThinkChaos2023-09-153-3/+13
| | |
| * | git: add `PlainInitOptions.Bare`ThinkChaos2023-09-153-11/+29
|/ / | | | | | | Refactor `PlainInit` to call `PlainInitWithOptions`