aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* git: worktree, Align validation with upstream rulesPaulo Gomes2023-12-082-0/+182
| | | | | | | | Some worktree validation rules observed upstream are not checked by go-git, leading to scenarios in which what seems to be a valid repository for go-git is not necessarily the case for the git cli. Signed-off-by: Paulo Gomes <paulo.gomes@suse.com>
* Merge pull request #953 from pjbgf/alternatesPaulo Gomes2023-12-036-64/+203
|\ | | | | storage: filesystem, Add option to set a specific FS for alternates
| * storage: filesystem, Add option to set a specific FS for alternatesPaulo Gomes2023-12-026-64/+203
|/ | | | | | | | | | | Introduces the option to set a FS for alternates, enabling more flexible cross FS sharing of alternates. If none is set, falls back to the current FS used for the object storage. The changes only process a given path once, and if an alternates dir is not valid, exits with error - aligning behaviour with upstream. Signed-off-by: Paulo Gomes <paulo.gomes@suse.com>
* Merge pull request #941 from djmoch/filestats-renamePaulo Gomes2023-12-012-2/+56
|\ | | | | plumbing: object, enable renames in getFileStatsFromFilePatches
| * plumbing: object, enable renames in getFileStatsFromFilePatchesDaniel Moch2023-11-272-2/+56
| | | | | | | | | | Diff has handled renames by default since 2020. This change sets Name for the renamed file in a manner similar to diffstat.
* | Merge pull request #939 from dhoizner/fix-pull-after-shallowPaulo Gomes2023-12-013-7/+65
|\ \ | | | | | | git: stop iterating at oldest shallow when pulling. Fixes #305
| * | git: stop iterating at oldest shallow when pulling. Fixes #305Dan Hoizner2023-11-273-7/+65
| |/
* | Merge pull request #950 from aymanbagabas/validate-refPaulo Gomes2023-12-018-3/+224
|\ \ | | | | | | git: validate reference names (#929)
| * | git: validate reference namesAyman Bagabas2023-11-308-3/+224
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Check reference names format before creating branches/tags/remotes. This should probably be in a lower level somewhere in `plumbing`. Validating the names under `plumbing.NewReference*` is not possible since these functions don't return errors. Fixes: https://github.com/go-git/go-git/issues/929
* | | Merge pull request #948 from ↵Paulo Gomes2023-11-302-15/+10
|\ \ \ | |/ / |/| | | | | | | | go-git/dependabot/go_modules/cli/go-git/github.com/go-git/go-git/v5-5.10.1 build: bump github.com/go-git/go-git/v5 from 5.10.1-0.20231107163107-e54a6ae399e9 to 5.10.1 in /cli/go-git
| * | build: bump github.com/go-git/go-git/v5 in /cli/go-gitdependabot[bot]2023-11-282-15/+10
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.10.1-0.20231107163107-e54a6ae399e9 to 5.10.1. - [Release notes](https://github.com/go-git/go-git/releases) - [Commits](https://github.com/go-git/go-git/commits/v5.10.1) --- updated-dependencies: - dependency-name: github.com/go-git/go-git/v5 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
* | Merge pull request #947 from ↵Paulo Gomes2023-11-282-3/+3
|\ \ | | | | | | | | | | | | go-git/dependabot/go_modules/golang.org/x/net-0.19.0 build: bump golang.org/x/net from 0.18.0 to 0.19.0
| * | build: bump golang.org/x/net from 0.18.0 to 0.19.0dependabot[bot]2023-11-282-3/+3
|/ / | | | | | | | | | | | | | | | | | | | | | | | | Bumps [golang.org/x/net](https://github.com/golang/net) from 0.18.0 to 0.19.0. - [Commits](https://github.com/golang/net/compare/v0.18.0...v0.19.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
* | Merge pull request #945 from ↵Paulo Gomes2023-11-282-7/+7
|\ \ | | | | | | | | | | | | go-git/dependabot/go_modules/golang.org/x/crypto-0.16.0 build: bump golang.org/x/crypto from 0.15.0 to 0.16.0
| * | build: bump golang.org/x/crypto from 0.15.0 to 0.16.0dependabot[bot]2023-11-282-7/+7
|/ / | | | | | | | | | | | | | | | | | | | | | | | | Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.15.0 to 0.16.0. - [Commits](https://github.com/golang/crypto/compare/v0.15.0...v0.16.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
* | Merge pull request #936 from aymanbagabas/more-packpv5.10.1Paulo Gomes2023-11-259-112/+403
|\ \ | |/ |/| Respect pktline error-line errors
| * plumbing: transport: use git-proto-request and decode error-line errorsAyman Bagabas2023-11-235-114/+157
| |
| * plumbing: handle pktline erro-line as errorsAyman Bagabas2023-11-233-0/+128
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Error when encountering an error-line See https://git-scm.com/docs/pack-protocol Update plumbing/format/pktline/error.go Co-authored-by: Paulo Gomes <paulo.gomes.uk@gmail.com> Update plumbing/format/pktline/error.go Co-authored-by: Paulo Gomes <paulo.gomes.uk@gmail.com> feat: format newline
| * plumbing: add git-proto-request typeAyman Bagabas2023-11-232-0/+120
|/ | | | | | This the request used for the git transport protocol feat: nil writer
* Merge pull request #930 from steiler/fixSocketsPaulo Gomes2023-11-202-0/+30
|\ | | | | Ignore ModeSocket files
| * utils: merkletrie, Skip loading sockets as filesystem nodes. Fixes #312steiler2023-11-192-0/+30
| |
* | Merge pull request #752 from pjbgf/rt1Paulo Gomes2023-11-171-5/+15
|\ \ | | | | | | plumbing: transport/git, Improve tests error message
| * | plumbing: transport/git, Improve tests error messagePaulo Gomes2023-11-171-5/+15
|/ / | | | | | | | | | | | | | | | | When running the tests in an install in which git daemon is not installed (e.g. openSUSE), all the git transport tests will fail with a connection refused error. This was due the git server not being running in the first place. The tests will now fail with 'git daemon cannot be found'. Signed-off-by: Paulo Gomes <pjbgf@linux.com>
* | Merge pull request #932 from aymanbagabas/fix-emptyPaulo Gomes2023-11-173-0/+24
|\ \ | | | | | | plumbing: fix empty uploadpack request error
| * | plumbing: fix empty uploadpack request errorAyman Bagabas2023-11-163-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If we have all what we asked for, finish the session and handle error. This is equivalent of git "Already up to date." message. Fixes: https://github.com/go-git/go-git/issues/328 Fixes: https://github.com/go-git/go-git/issues/638 Fixes: https://github.com/go-git/go-git/issues/157
* | | Merge pull request #931 from aymanbagabas/trace-utilsPaulo Gomes2023-11-164-2/+2
|\ \ \ | |/ / |/| | utils: move trace to utils
| * | utils: move trace to utilsAyman Bagabas2023-11-164-2/+2
|/ / | | | | | | | | | | | | Without exposing `trace`, we can't set a target to enable tracing from out of go-git. Fixes: https://github.com/go-git/go-git/pull/916
* | Merge pull request #916 from aymanbagabas/tracePaulo Gomes2023-11-154-0/+157
|\ \ | | | | | | git: add tracer package
| * | plumbing: format/pktline: trace packetsAyman Bagabas2023-11-152-0/+7
| | |
| * | internal: add trace packageAyman Bagabas2023-11-152-0/+150
|/ / | | | | | | | | This adds a generic tracing package to log messages to output if target is enabled.
* | Merge pull request #922 from aymanbagabas/cleanup-ioutilPaulo Gomes2023-11-148-38/+4
|\ \ | | | | | | utils: remove ioutil.Pipe and use std library io.Pipe
| * | utils: remove ioutil.Pipe and use std library io.PipeAyman Bagabas2023-11-138-38/+4
|/ / | | | | | | ioutil.Pipe literally calls io.Pipe.
* | Merge pull request #918 from ↵Paulo Gomes2023-11-092-3/+3
|\ \ | | | | | | | | | | | | go-git/dependabot/go_modules/golang.org/x/net-0.18.0 build: bump golang.org/x/net from 0.17.0 to 0.18.0
| * | build: bump golang.org/x/net from 0.17.0 to 0.18.0dependabot[bot]2023-11-092-3/+3
|/ / | | | | | | | | | | | | | | | | | | | | | | | | Bumps [golang.org/x/net](https://github.com/golang/net) from 0.17.0 to 0.18.0. - [Commits](https://github.com/golang/net/compare/v0.17.0...v0.18.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
* | Merge pull request #917 from ↵Paulo Gomes2023-11-092-4/+4
|\ \ | | | | | | | | | | | | go-git/dependabot/go_modules/golang.org/x/crypto-0.15.0 build: bump golang.org/x/crypto from 0.14.0 to 0.15.0
| * | build: bump golang.org/x/crypto from 0.14.0 to 0.15.0dependabot[bot]2023-11-092-4/+4
|/ / | | | | | | | | | | | | | | | | | | | | | | | | Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.14.0 to 0.15.0. - [Commits](https://github.com/golang/crypto/compare/v0.14.0...v0.15.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
* | Merge pull request #914 from aymanbagabas/cli-gomodPaulo Gomes2023-11-076-6/+179
|\ \ | | | | | | cli: separate go module for cli
| * | build: fix go-git binary buildAyman Bagabas2023-11-071-2/+2
| | |
| * | build: add cli/go-git to dependabotAyman Bagabas2023-11-071-0/+7
| | |
| * | cli: separate go module for cliAyman Bagabas2023-11-074-4/+170
|/ /
* | Merge pull request #908 from pjbgf/refPaulo Gomes2023-11-072-113/+79
|\ \ | | | | | | plumbing: format/packfile, Refactor patch delta
| * | plumbing: format/packfile, Refactor patch deltaPaulo Gomes2023-11-062-113/+79
|/ / | | | | | | | | | | The changes aim to simplify the code and reduce duplication. Signed-off-by: Paulo Gomes <pjbgf@linux.com>
* | Merge pull request #906 from ↵Paulo Gomes2023-11-062-3/+3
|\ \ | | | | | | | | | | | | go-git/dependabot/go_modules/golang.org/x/text-0.14.0 build: bump golang.org/x/text from 0.13.0 to 0.14.0
| * | build: bump golang.org/x/text from 0.13.0 to 0.14.0dependabot[bot]2023-11-062-3/+3
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | Bumps [golang.org/x/text](https://github.com/golang/text) from 0.13.0 to 0.14.0. - [Release notes](https://github.com/golang/text/releases) - [Commits](https://github.com/golang/text/compare/v0.13.0...v0.14.0) --- updated-dependencies: - dependency-name: golang.org/x/text dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
* | Merge pull request #907 from ↵Paulo Gomes2023-11-062-3/+3
|\ \ | | | | | | | | | | | | go-git/dependabot/go_modules/golang.org/x/sys-0.14.0 build: bump golang.org/x/sys from 0.13.0 to 0.14.0
| * | build: bump golang.org/x/sys from 0.13.0 to 0.14.0dependabot[bot]2023-11-062-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.13.0 to 0.14.0. - [Commits](https://github.com/golang/sys/compare/v0.13.0...v0.14.0) --- updated-dependencies: - dependency-name: golang.org/x/sys dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
* | | Merge pull request #799 from pjbgf/perf2Paulo Gomes2023-11-064-61/+276
|\ \ \ | |/ / |/| | plumbing: Optimise memory consumption for filesystem storage
| * | 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 #896 from aymanbagabas/update-server-infoPaulo Gomes2023-11-036-4/+332
|\ \ \ | | | | | | | | Implement upload-server-info