-
Notifications
You must be signed in to change notification settings - Fork 787
git: stop iterating at oldest shallow when pulling. Fixes #305 #939
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
i think the check failure here might be flaky tests, i had to run the test suite a couple of times locally before everything passed (with |
@dhoizner based on your comment, I am assuming the test for this could very similar to Line 1497 in fecea41
I am not sure we need a new fixture for this, but if you think we do, here's how to create new ones. |
Sweet, I was thinking that something like the fetch after shallow test would work also but wasn't sure if we'd want the tests to use fixtures like the rest of the worktree tests. I'll get that done in the next few days. |
@pjbgf added a test and a comment about a failure mode that will continue to exist, as well as updating the pull description explaining that failure mode. I think this is still worth merging in as is, with an issue to track the other scenario, but am open to suggestions |
3f80b0a
to
b74ae19
Compare
b74ae19
to
861009f
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@dhoizner thanks for working on this. 🥇
Just wanted to say thank you for this fix @dhoizner ! |
@dhoizner thank you for this fix! One thing to note, though (minimal example to reproduce below):
If package main
import (
"bufio"
"context"
"fmt"
"github.com/go-git/go-git/v5"
"github.com/go-git/go-git/v5/plumbing/transport/ssh"
ssh2 "golang.org/x/crypto/ssh"
"os"
"os/signal"
)
func main() {
if stat, err := os.Stat("./repos/testing"); err == nil && stat.IsDir() {
if err := os.RemoveAll("./repos/testing"); err != nil {
panic(err)
}
}
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt)
defer stop()
keys, err := ssh.NewPublicKeysFromFile("git", "/Users/<user>/.ssh/id_rsa", "<password>")
if err != nil {
panic(err)
}
keys.HostKeyCallback = ssh2.InsecureIgnoreHostKey()
repo, err := git.PlainCloneContext(ctx, "./repos/testing", false, &git.CloneOptions{
URL: "github.com:<user>/testing.git",
SingleBranch: true,
ReferenceName: "refs/heads/main",
Auth: keys,
Depth: 1,
})
if err != nil {
panic(err)
}
fmt.Println("cloned")
reader := bufio.NewReader(os.Stdin)
for {
fmt.Printf("newline to pull, exit to exit")
// in the meantime commit and push to the repo so there's smth to pull
line, _, err := reader.ReadLine()
if err != nil {
panic(err)
}
if string(line) == "exit" {
return
}
tree, err := repo.Worktree()
if err != nil {
panic(err)
}
fmt.Println("pulling")
if err = tree.PullContext(ctx, &git.PullOptions{
Auth: keys,
//Depth: 100000,
SingleBranch: true,
ReferenceName: "refs/heads/main",
Force: true,
}); err != nil {
panic(err)
}
}
} Runtime (with depth not set):
runtime (with
In both examples between cloning and pulling I pushed a commit (tested this with multiple commits as well, same behaviour). This should either be documented or fixed - I couldn't really figure out why this happens, nor why setting a depth to a big number fixes it. Are there any potential drawbacks to setting |
[](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [github.com/go-git/go-git/v5](https://togithub.com/go-git/go-git) | require | minor | `v5.10.1` -> `v5.11.0` | --- ### Release Notes <details> <summary>go-git/go-git (github.com/go-git/go-git/v5)</summary> ### [`v5.11.0`](https://togithub.com/go-git/go-git/releases/tag/v5.11.0) [Compare Source](https://togithub.com/go-git/go-git/compare/v5.10.1...v5.11.0) #### What's Changed - git: validate reference names ([#​929](https://togithub.com/go-git/go-git/issues/929)) by [@​aymanbagabas](https://togithub.com/aymanbagabas) in [https://github.com/go-git/go-git/pull/950](https://togithub.com/go-git/go-git/pull/950) - git: stop iterating at oldest shallow when pulling. Fixes [#​305](https://togithub.com/go-git/go-git/issues/305) by [@​dhoizner](https://togithub.com/dhoizner) in [https://github.com/go-git/go-git/pull/939](https://togithub.com/go-git/go-git/pull/939) - plumbing: object, enable renames in getFileStatsFromFilePatches by [@​djmoch](https://togithub.com/djmoch) in [https://github.com/go-git/go-git/pull/941](https://togithub.com/go-git/go-git/pull/941) - storage: filesystem, Add option to set a specific FS for alternates by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/953](https://togithub.com/go-git/go-git/pull/953) - Align worktree validation with upstream and remove build warnings by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/958](https://togithub.com/go-git/go-git/pull/958) #### New Contributors - [@​dhoizner](https://togithub.com/dhoizner) made their first contribution in [https://github.com/go-git/go-git/pull/939](https://togithub.com/go-git/go-git/pull/939) - [@​djmoch](https://togithub.com/djmoch) made their first contribution in [https://github.com/go-git/go-git/pull/941](https://togithub.com/go-git/go-git/pull/941) **Full Changelog**: go-git/go-git@v5.10.1...v5.11.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/anoriqq/qpm). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
…rity] (#721) [](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [github.com/go-git/go-git/v5](https://togithub.com/go-git/go-git) | `v5.10.1` -> `v5.11.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | ### GitHub Vulnerability Alerts #### [CVE-2023-49568](https://togithub.com/go-git/go-git/security/advisories/GHSA-mw99-9chc-xw7r) ### Impact A denial of service (DoS) vulnerability was discovered in go-git versions prior to `v5.11`. This vulnerability allows an attacker to perform denial of service attacks by providing specially crafted responses from a Git server which triggers resource exhaustion in `go-git` clients. Applications using only the in-memory filesystem supported by `go-git` are not affected by this vulnerability. This is a `go-git` implementation issue and does not affect the upstream `git` cli. ### Patches Users running versions of `go-git` from `v4` and above are recommended to upgrade to `v5.11` in order to mitigate this vulnerability. ### Workarounds In cases where a bump to the latest version of `go-git` is not possible, we recommend limiting its use to only trust-worthy Git servers. ## Credit Thanks to Ionut Lalu for responsibly disclosing this vulnerability to us. ### References - [GHSA-mw99-9chc-xw7r](https://togithub.com/go-git/go-git/security/advisories/GHSA-mw99-9chc-xw7r) --- ### Release Notes <details> <summary>go-git/go-git (github.com/go-git/go-git/v5)</summary> ### [`v5.11.0`](https://togithub.com/go-git/go-git/releases/tag/v5.11.0) [Compare Source](https://togithub.com/go-git/go-git/compare/v5.10.1...v5.11.0) #### What's Changed - git: validate reference names ([#​929](https://togithub.com/go-git/go-git/issues/929)) by [@​aymanbagabas](https://togithub.com/aymanbagabas) in [https://github.com/go-git/go-git/pull/950](https://togithub.com/go-git/go-git/pull/950) - git: stop iterating at oldest shallow when pulling. Fixes [#​305](https://togithub.com/go-git/go-git/issues/305) by [@​dhoizner](https://togithub.com/dhoizner) in [https://github.com/go-git/go-git/pull/939](https://togithub.com/go-git/go-git/pull/939) - plumbing: object, enable renames in getFileStatsFromFilePatches by [@​djmoch](https://togithub.com/djmoch) in [https://github.com/go-git/go-git/pull/941](https://togithub.com/go-git/go-git/pull/941) - storage: filesystem, Add option to set a specific FS for alternates by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/953](https://togithub.com/go-git/go-git/pull/953) - Align worktree validation with upstream and remove build warnings by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/958](https://togithub.com/go-git/go-git/pull/958) #### New Contributors - [@​dhoizner](https://togithub.com/dhoizner) made their first contribution in [https://github.com/go-git/go-git/pull/939](https://togithub.com/go-git/go-git/pull/939) - [@​djmoch](https://togithub.com/djmoch) made their first contribution in [https://github.com/go-git/go-git/pull/941](https://togithub.com/go-git/go-git/pull/941) **Full Changelog**: go-git/go-git@v5.10.1...v5.11.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "" in timezone Australia/Sydney, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/google/osv-scanner). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
…ntainerd/containerd to v1.7.11 [security] (#2209) [](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [github.com/go-git/go-git/v5](https://togithub.com/go-git/go-git) | `v5.10.1` -> `v5.11.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. ### GitHub Vulnerability Alerts #### [CVE-2023-49568](https://togithub.com/go-git/go-git/security/advisories/GHSA-mw99-9chc-xw7r) ### Impact A denial of service (DoS) vulnerability was discovered in go-git versions prior to `v5.11`. This vulnerability allows an attacker to perform denial of service attacks by providing specially crafted responses from a Git server which triggers resource exhaustion in `go-git` clients. Applications using only the in-memory filesystem supported by `go-git` are not affected by this vulnerability. This is a `go-git` implementation issue and does not affect the upstream `git` cli. ### Patches Users running versions of `go-git` from `v4` and above are recommended to upgrade to `v5.11` in order to mitigate this vulnerability. ### Workarounds In cases where a bump to the latest version of `go-git` is not possible, we recommend limiting its use to only trust-worthy Git servers. ## Credit Thanks to Ionut Lalu for responsibly disclosing this vulnerability to us. ### References - [GHSA-mw99-9chc-xw7r](https://togithub.com/go-git/go-git/security/advisories/GHSA-mw99-9chc-xw7r) --- ### Release Notes <details> <summary>go-git/go-git (github.com/go-git/go-git/v5)</summary> ### [`v5.11.0`](https://togithub.com/go-git/go-git/releases/tag/v5.11.0) [Compare Source](https://togithub.com/go-git/go-git/compare/v5.10.1...v5.11.0) #### What's Changed - git: validate reference names ([#​929](https://togithub.com/go-git/go-git/issues/929)) by [@​aymanbagabas](https://togithub.com/aymanbagabas) in [https://github.com/go-git/go-git/pull/950](https://togithub.com/go-git/go-git/pull/950) - git: stop iterating at oldest shallow when pulling. Fixes [#​305](https://togithub.com/go-git/go-git/issues/305) by [@​dhoizner](https://togithub.com/dhoizner) in [https://github.com/go-git/go-git/pull/939](https://togithub.com/go-git/go-git/pull/939) - plumbing: object, enable renames in getFileStatsFromFilePatches by [@​djmoch](https://togithub.com/djmoch) in [https://github.com/go-git/go-git/pull/941](https://togithub.com/go-git/go-git/pull/941) - storage: filesystem, Add option to set a specific FS for alternates by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/953](https://togithub.com/go-git/go-git/pull/953) - Align worktree validation with upstream and remove build warnings by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/958](https://togithub.com/go-git/go-git/pull/958) #### New Contributors - [@​dhoizner](https://togithub.com/dhoizner) made their first contribution in [https://github.com/go-git/go-git/pull/939](https://togithub.com/go-git/go-git/pull/939) - [@​djmoch](https://togithub.com/djmoch) made their first contribution in [https://github.com/go-git/go-git/pull/941](https://togithub.com/go-git/go-git/pull/941) **Full Changelog**: go-git/go-git@v5.10.1...v5.11.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/defenseunicorns/zarf). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9--> --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Wayne Starr <me@racer159.com>
…rity] (#1891) [](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [github.com/go-git/go-git/v5](https://togithub.com/go-git/go-git) | `v5.10.1` -> `v5.11.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | ### GitHub Vulnerability Alerts #### [CVE-2023-49568](https://togithub.com/go-git/go-git/security/advisories/GHSA-mw99-9chc-xw7r) ### Impact A denial of service (DoS) vulnerability was discovered in go-git versions prior to `v5.11`. This vulnerability allows an attacker to perform denial of service attacks by providing specially crafted responses from a Git server which triggers resource exhaustion in `go-git` clients. Applications using only the in-memory filesystem supported by `go-git` are not affected by this vulnerability. This is a `go-git` implementation issue and does not affect the upstream `git` cli. ### Patches Users running versions of `go-git` from `v4` and above are recommended to upgrade to `v5.11` in order to mitigate this vulnerability. ### Workarounds In cases where a bump to the latest version of `go-git` is not possible, we recommend limiting its use to only trust-worthy Git servers. ## Credit Thanks to Ionut Lalu for responsibly disclosing this vulnerability to us. ### References - [GHSA-mw99-9chc-xw7r](https://togithub.com/go-git/go-git/security/advisories/GHSA-mw99-9chc-xw7r) --- ### Release Notes <details> <summary>go-git/go-git (github.com/go-git/go-git/v5)</summary> ### [`v5.11.0`](https://togithub.com/go-git/go-git/releases/tag/v5.11.0) [Compare Source](https://togithub.com/go-git/go-git/compare/v5.10.1...v5.11.0) #### What's Changed - git: validate reference names ([#​929](https://togithub.com/go-git/go-git/issues/929)) by [@​aymanbagabas](https://togithub.com/aymanbagabas) in [https://github.com/go-git/go-git/pull/950](https://togithub.com/go-git/go-git/pull/950) - git: stop iterating at oldest shallow when pulling. Fixes [#​305](https://togithub.com/go-git/go-git/issues/305) by [@​dhoizner](https://togithub.com/dhoizner) in [https://github.com/go-git/go-git/pull/939](https://togithub.com/go-git/go-git/pull/939) - plumbing: object, enable renames in getFileStatsFromFilePatches by [@​djmoch](https://togithub.com/djmoch) in [https://github.com/go-git/go-git/pull/941](https://togithub.com/go-git/go-git/pull/941) - storage: filesystem, Add option to set a specific FS for alternates by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/953](https://togithub.com/go-git/go-git/pull/953) - Align worktree validation with upstream and remove build warnings by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/958](https://togithub.com/go-git/go-git/pull/958) #### New Contributors - [@​dhoizner](https://togithub.com/dhoizner) made their first contribution in [https://github.com/go-git/go-git/pull/939](https://togithub.com/go-git/go-git/pull/939) - [@​djmoch](https://togithub.com/djmoch) made their first contribution in [https://github.com/go-git/go-git/pull/941](https://togithub.com/go-git/go-git/pull/941) **Full Changelog**: go-git/go-git@v5.10.1...v5.11.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "" in timezone Australia/Sydney, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/google/osv.dev). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEyNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->
…rity] (#1148) [](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [github.com/go-git/go-git/v5](https://togithub.com/go-git/go-git) | `v5.5.2` -> `v5.11.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | ### GitHub Vulnerability Alerts #### [CVE-2023-49568](https://togithub.com/go-git/go-git/security/advisories/GHSA-mw99-9chc-xw7r) ### Impact A denial of service (DoS) vulnerability was discovered in go-git versions prior to `v5.11`. This vulnerability allows an attacker to perform denial of service attacks by providing specially crafted responses from a Git server which triggers resource exhaustion in `go-git` clients. Applications using only the in-memory filesystem supported by `go-git` are not affected by this vulnerability. This is a `go-git` implementation issue and does not affect the upstream `git` cli. ### Patches Users running versions of `go-git` from `v4` and above are recommended to upgrade to `v5.11` in order to mitigate this vulnerability. ### Workarounds In cases where a bump to the latest version of `go-git` is not possible, we recommend limiting its use to only trust-worthy Git servers. ## Credit Thanks to Ionut Lalu for responsibly disclosing this vulnerability to us. ### References - [GHSA-mw99-9chc-xw7r](https://togithub.com/go-git/go-git/security/advisories/GHSA-mw99-9chc-xw7r) #### [CVE-2023-49569](https://togithub.com/go-git/go-git/security/advisories/GHSA-449p-3h89-pw88) ### Impact A path traversal vulnerability was discovered in go-git versions prior to `v5.11`. This vulnerability allows an attacker to create and amend files across the filesystem. In the worse case scenario, remote code execution could be achieved. Applications are only affected if they are using the [ChrootOS](https://pkg.go.dev/github.com/go-git/go-billy/v5/osfs#ChrootOS), which is the default when using "Plain" versions of Open and Clone funcs (e.g. PlainClone). Applications using [BoundOS](https://pkg.go.dev/github.com/go-git/go-billy/v5/osfs#BoundOS) or in-memory filesystems are not affected by this issue. This is a `go-git` implementation issue and does not affect the upstream `git` cli. ### Patches Users running versions of `go-git` from `v4` and above are recommended to upgrade to `v5.11` in order to mitigate this vulnerability. ### Workarounds In cases where a bump to the latest version of `go-git` is not possible in a timely manner, we recommend limiting its use to only trust-worthy Git servers. ## Credit Thanks to Ionut Lalu for responsibly disclosing this vulnerability to us. --- ### Release Notes <details> <summary>go-git/go-git (github.com/go-git/go-git/v5)</summary> ### [`v5.11.0`](https://togithub.com/go-git/go-git/releases/tag/v5.11.0) [Compare Source](https://togithub.com/go-git/go-git/compare/v5.10.1...v5.11.0) #### What's Changed - git: validate reference names ([#​929](https://togithub.com/go-git/go-git/issues/929)) by [@​aymanbagabas](https://togithub.com/aymanbagabas) in [https://github.com/go-git/go-git/pull/950](https://togithub.com/go-git/go-git/pull/950) - git: stop iterating at oldest shallow when pulling. Fixes [#​305](https://togithub.com/go-git/go-git/issues/305) by [@​dhoizner](https://togithub.com/dhoizner) in [https://github.com/go-git/go-git/pull/939](https://togithub.com/go-git/go-git/pull/939) - plumbing: object, enable renames in getFileStatsFromFilePatches by [@​djmoch](https://togithub.com/djmoch) in [https://github.com/go-git/go-git/pull/941](https://togithub.com/go-git/go-git/pull/941) - storage: filesystem, Add option to set a specific FS for alternates by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/953](https://togithub.com/go-git/go-git/pull/953) - Align worktree validation with upstream and remove build warnings by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/958](https://togithub.com/go-git/go-git/pull/958) #### New Contributors - [@​dhoizner](https://togithub.com/dhoizner) made their first contribution in [https://github.com/go-git/go-git/pull/939](https://togithub.com/go-git/go-git/pull/939) - [@​djmoch](https://togithub.com/djmoch) made their first contribution in [https://github.com/go-git/go-git/pull/941](https://togithub.com/go-git/go-git/pull/941) **Full Changelog**: go-git/go-git@v5.10.1...v5.11.0 ### [`v5.10.1`](https://togithub.com/go-git/go-git/releases/tag/v5.10.1) [Compare Source](https://togithub.com/go-git/go-git/compare/v5.10.0...v5.10.1) #### What's Changed - Worktree, ignore ModeSocket files by [@​steiler](https://togithub.com/steiler) in [https://github.com/go-git/go-git/pull/930](https://togithub.com/go-git/go-git/pull/930) - git: add tracer package by [@​aymanbagabas](https://togithub.com/aymanbagabas) in [https://github.com/go-git/go-git/pull/916](https://togithub.com/go-git/go-git/pull/916) - remote: Flip clause for fast-forward only check by [@​adityasaky](https://togithub.com/adityasaky) in [https://github.com/go-git/go-git/pull/875](https://togithub.com/go-git/go-git/pull/875) - plumbing: transport/ssh, Fix nil pointer dereference caused when an unreachable proxy server is set. Fixes [#​900](https://togithub.com/go-git/go-git/issues/900) by [@​anandf](https://togithub.com/anandf) in [https://github.com/go-git/go-git/pull/901](https://togithub.com/go-git/go-git/pull/901) - plumbing: uppload-server-info, implement upload-server-info by [@​aymanbagabas](https://togithub.com/aymanbagabas) in [https://github.com/go-git/go-git/pull/896](https://togithub.com/go-git/go-git/pull/896) - plumbing: optimise memory consumption for filesystem storage by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/799](https://togithub.com/go-git/go-git/pull/799) - plumbing: format/packfile, Refactor patch delta by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/908](https://togithub.com/go-git/go-git/pull/908) - plumbing: fix empty uploadpack request error by [@​aymanbagabas](https://togithub.com/aymanbagabas) in [https://github.com/go-git/go-git/pull/932](https://togithub.com/go-git/go-git/pull/932) - plumbing: transport/git, Improve tests error message by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/752](https://togithub.com/go-git/go-git/pull/752) - plumbing: format/pktline, Respect pktline error-line errors by [@​aymanbagabas](https://togithub.com/aymanbagabas) in [https://github.com/go-git/go-git/pull/936](https://togithub.com/go-git/go-git/pull/936) - utils: remove ioutil.Pipe and use std library io.Pipe by [@​aymanbagabas](https://togithub.com/aymanbagabas) in [https://github.com/go-git/go-git/pull/922](https://togithub.com/go-git/go-git/pull/922) - utils: move trace to utils by [@​aymanbagabas](https://togithub.com/aymanbagabas) in [https://github.com/go-git/go-git/pull/931](https://togithub.com/go-git/go-git/pull/931) - cli: separate go module for cli by [@​aymanbagabas](https://togithub.com/aymanbagabas) in [https://github.com/go-git/go-git/pull/914](https://togithub.com/go-git/go-git/pull/914) - build: bump github.com/google/go-cmp from 0.5.9 to 0.6.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/go-git/go-git/pull/887](https://togithub.com/go-git/go-git/pull/887) - build: bump actions/setup-go from 3 to 4 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/go-git/go-git/pull/891](https://togithub.com/go-git/go-git/pull/891) - build: bump github.com/skeema/knownhosts from 1.2.0 to 1.2.1 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/go-git/go-git/pull/888](https://togithub.com/go-git/go-git/pull/888) - build: bump actions/checkout from 3 to 4 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/go-git/go-git/pull/890](https://togithub.com/go-git/go-git/pull/890) - build: bump golang.org/x/sys from 0.13.0 to 0.14.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/go-git/go-git/pull/907](https://togithub.com/go-git/go-git/pull/907) - build: bump golang.org/x/text from 0.13.0 to 0.14.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/go-git/go-git/pull/906](https://togithub.com/go-git/go-git/pull/906) - build: bump golang.org/x/crypto from 0.14.0 to 0.15.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/go-git/go-git/pull/917](https://togithub.com/go-git/go-git/pull/917) - build: bump golang.org/x/net from 0.17.0 to 0.18.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/go-git/go-git/pull/918](https://togithub.com/go-git/go-git/pull/918) #### New Contributors - [@​anandf](https://togithub.com/anandf) made their first contribution in [https://github.com/go-git/go-git/pull/901](https://togithub.com/go-git/go-git/pull/901) - [@​steiler](https://togithub.com/steiler) made their first contribution in [https://github.com/go-git/go-git/pull/930](https://togithub.com/go-git/go-git/pull/930) **Full Changelog**: go-git/go-git@v5.10.0...v5.10.1 ### [`v5.10.0`](https://togithub.com/go-git/go-git/releases/tag/v5.10.0) [Compare Source](https://togithub.com/go-git/go-git/compare/v5.9.0...v5.10.0) #### What's Changed - PlainInitOptions.Bare and allow using InitOptions with PlainInitWithOptions by [@​ThinkChaos](https://togithub.com/ThinkChaos) in [https://github.com/go-git/go-git/pull/782](https://togithub.com/go-git/go-git/pull/782) - Worktree, apply ProxyOption on Pull by [@​nodivbyzero](https://togithub.com/nodivbyzero) in [https://github.com/go-git/go-git/pull/840](https://togithub.com/go-git/go-git/pull/840) - Repository: add clone --shared feature by [@​enverbisevac](https://togithub.com/enverbisevac) in [https://github.com/go-git/go-git/pull/860](https://togithub.com/go-git/go-git/pull/860) - build: Add github workflow to check commit message format by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/867](https://togithub.com/go-git/go-git/pull/867) - Improve handling of remote errors by [@​makkes](https://togithub.com/makkes) in [https://github.com/go-git/go-git/pull/866](https://togithub.com/go-git/go-git/pull/866) - build(deps): bump golang.org/x/net from 0.15.0 to 0.17.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/go-git/go-git/pull/873](https://togithub.com/go-git/go-git/pull/873) - plumbing: commitgraph, Add generation v2 support by [@​zeripath](https://togithub.com/zeripath) in [https://github.com/go-git/go-git/pull/869](https://togithub.com/go-git/go-git/pull/869) - plumbing: protocol/packp, Add validation for decodeLine by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/868](https://togithub.com/go-git/go-git/pull/868) - plumbing: parse the encoding header of the commit object by [@​liwenqiu](https://togithub.com/liwenqiu) in [https://github.com/go-git/go-git/pull/761](https://togithub.com/go-git/go-git/pull/761) - plumbing: commitgraph, allow SHA256 commit-graphs by [@​zeripath](https://togithub.com/zeripath) in [https://github.com/go-git/go-git/pull/853](https://togithub.com/go-git/go-git/pull/853) - plumbing: commitgraph, Allow reading commit-graph chains by [@​zeripath](https://togithub.com/zeripath) in [https://github.com/go-git/go-git/pull/854](https://togithub.com/go-git/go-git/pull/854) - plumbing/object: Support mergetag in merge commits by [@​adityasaky](https://togithub.com/adityasaky) in [https://github.com/go-git/go-git/pull/847](https://togithub.com/go-git/go-git/pull/847) #### New Contributors - [@​nodivbyzero](https://togithub.com/nodivbyzero) made their first contribution in [https://github.com/go-git/go-git/pull/840](https://togithub.com/go-git/go-git/pull/840) - [@​adityasaky](https://togithub.com/adityasaky) made their first contribution in [https://github.com/go-git/go-git/pull/847](https://togithub.com/go-git/go-git/pull/847) - [@​hezhizhen](https://togithub.com/hezhizhen) made their first contribution in [https://github.com/go-git/go-git/pull/836](https://togithub.com/go-git/go-git/pull/836) - [@​0x34d](https://togithub.com/0x34d) made their first contribution in [https://github.com/go-git/go-git/pull/855](https://togithub.com/go-git/go-git/pull/855) - [@​liwenqiu](https://togithub.com/liwenqiu) made their first contribution in [https://github.com/go-git/go-git/pull/761](https://togithub.com/go-git/go-git/pull/761) - [@​enverbisevac](https://togithub.com/enverbisevac) made their first contribution in [https://github.com/go-git/go-git/pull/860](https://togithub.com/go-git/go-git/pull/860) - [@​makkes](https://togithub.com/makkes) made their first contribution in [https://github.com/go-git/go-git/pull/866](https://togithub.com/go-git/go-git/pull/866) **Full Changelog**: go-git/go-git@v5.9.0...v5.10.0 ### [`v5.9.0`](https://togithub.com/go-git/go-git/releases/tag/v5.9.0) [Compare Source](https://togithub.com/go-git/go-git/compare/v5.8.1...v5.9.0) #### What's Changed - git: worktree: add Amend option to CommitOptions by [@​john-cai](https://togithub.com/john-cai) in [https://github.com/go-git/go-git/pull/438](https://togithub.com/go-git/go-git/pull/438) - git: worktree, reset ignored files that are part of the worktree: Fixes [#​819](https://togithub.com/go-git/go-git/issues/819) by [@​daolis](https://togithub.com/daolis) in [https://github.com/go-git/go-git/pull/821](https://togithub.com/go-git/go-git/pull/821) - plumbing: Do not swallow http message coming from VCS providers by [@​matejrisek](https://togithub.com/matejrisek) in [https://github.com/go-git/go-git/pull/835](https://togithub.com/go-git/go-git/pull/835) - plumbing: transport, handle IPv6 while parsing endpoint. Fixes [#​740](https://togithub.com/go-git/go-git/issues/740) by [@​ninedraft](https://togithub.com/ninedraft) in [https://github.com/go-git/go-git/pull/820](https://togithub.com/go-git/go-git/pull/820) - \*: update goproxy dependency to fix CVE-2023-37788 vulnerability by [@​svghadi](https://togithub.com/svghadi) in [https://github.com/go-git/go-git/pull/832](https://togithub.com/go-git/go-git/pull/832) - \*: bump dependencies and Go to 1.19 by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/837](https://togithub.com/go-git/go-git/pull/837) #### New Contributors - [@​svghadi](https://togithub.com/svghadi) made their first contribution in [https://github.com/go-git/go-git/pull/832](https://togithub.com/go-git/go-git/pull/832) - [@​daolis](https://togithub.com/daolis) made their first contribution in [https://github.com/go-git/go-git/pull/821](https://togithub.com/go-git/go-git/pull/821) **Full Changelog**: go-git/go-git@v5.8.1...v5.9.0 ### [`v5.8.1`](https://togithub.com/go-git/go-git/releases/tag/v5.8.1) [Compare Source](https://togithub.com/go-git/go-git/compare/v5.8.0...v5.8.1) #### What's Changed - \*: Bump dependencies by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/815](https://togithub.com/go-git/go-git/pull/815) **Full Changelog**: go-git/go-git@v5.8.0...v5.8.1 ### [`v5.8.0`](https://togithub.com/go-git/go-git/releases/tag/v5.8.0) [Compare Source](https://togithub.com/go-git/go-git/compare/v5.7.0...v5.8.0) #### What's Changed - git: Fix fetching after shallow clone. Fixes [#​305](https://togithub.com/go-git/go-git/issues/305) by [@​AriehSchneier](https://togithub.com/AriehSchneier) in [https://github.com/go-git/go-git/pull/778](https://togithub.com/go-git/go-git/pull/778) - git: enable fetch with unqualified references by [@​AriehSchneier](https://togithub.com/AriehSchneier) in [https://github.com/go-git/go-git/pull/762](https://togithub.com/go-git/go-git/pull/762) - git: don't add to want if exists, shallow and depth 1 by [@​AriehSchneier](https://togithub.com/AriehSchneier) in [https://github.com/go-git/go-git/pull/763](https://togithub.com/go-git/go-git/pull/763) - git: Clone HEAD should not force master. Fixes [#​363](https://togithub.com/go-git/go-git/issues/363) by [@​AriehSchneier](https://togithub.com/AriehSchneier) in [https://github.com/go-git/go-git/pull/758](https://togithub.com/go-git/go-git/pull/758) - git: fix the issue with submodules having the SCP style URL fail due to the wrong URL parsing by [@​matejrisek](https://togithub.com/matejrisek) in [https://github.com/go-git/go-git/pull/756](https://togithub.com/go-git/go-git/pull/756) - git: add a clone option to allow for shallow cloning of submodules by [@​matejrisek](https://togithub.com/matejrisek) in [https://github.com/go-git/go-git/pull/765](https://togithub.com/go-git/go-git/pull/765) - worktree: minor speedup for `doAddDirectory` by [@​ThinkChaos](https://togithub.com/ThinkChaos) in [https://github.com/go-git/go-git/pull/702](https://togithub.com/go-git/go-git/pull/702) - \_examples: Remove wrong comment by [@​pascal-hofmann](https://togithub.com/pascal-hofmann) in [https://github.com/go-git/go-git/pull/357](https://togithub.com/go-git/go-git/pull/357) - \*: Handle paths starting with tilde by [@​ricci2511](https://togithub.com/ricci2511) in [https://github.com/go-git/go-git/pull/808](https://togithub.com/go-git/go-git/pull/808) - \*: Handle paths starting with ~Username by [@​AriehSchneier](https://togithub.com/AriehSchneier) in [https://github.com/go-git/go-git/pull/809](https://togithub.com/go-git/go-git/pull/809) - storage: filesystem/dotgit, add support for tmp_objdir prefix by [@​L11R](https://togithub.com/L11R) in [https://github.com/go-git/go-git/pull/812](https://togithub.com/go-git/go-git/pull/812) - plumbing: gitignore, replace user dir in path by [@​Jleagle](https://togithub.com/Jleagle) in [https://github.com/go-git/go-git/pull/772](https://togithub.com/go-git/go-git/pull/772) - plumbing: gitignore, fix incorrect parsing. Fixes [#​500](https://togithub.com/go-git/go-git/issues/500) by [@​AriehSchneier](https://togithub.com/AriehSchneier) in [https://github.com/go-git/go-git/pull/781](https://togithub.com/go-git/go-git/pull/781) - plumbing: http, Fix empty repos on Git v2.41+ by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/802](https://togithub.com/go-git/go-git/pull/802) - plumbing: packp, A request is not empty if it contains shallows. Fixes [#​328](https://togithub.com/go-git/go-git/issues/328) by [@​AriehSchneier](https://togithub.com/AriehSchneier) in [https://github.com/go-git/go-git/pull/792](https://togithub.com/go-git/go-git/pull/792) - plumbing: blame, Complete rewrite. Fixes [#​603](https://togithub.com/go-git/go-git/issues/603) by [@​AriehSchneier](https://togithub.com/AriehSchneier) in [https://github.com/go-git/go-git/pull/789](https://togithub.com/go-git/go-git/pull/789) - plumbing: gitignore, Allow gitconfig to contain a gitignore relative to any user home. Fixes [#​578](https://togithub.com/go-git/go-git/issues/578) by [@​AriehSchneier](https://togithub.com/AriehSchneier) in [https://github.com/go-git/go-git/pull/785](https://togithub.com/go-git/go-git/pull/785) #### New Contributors - [@​Jleagle](https://togithub.com/Jleagle) made their first contribution in [https://github.com/go-git/go-git/pull/772](https://togithub.com/go-git/go-git/pull/772) - [@​pascal-hofmann](https://togithub.com/pascal-hofmann) made their first contribution in [https://github.com/go-git/go-git/pull/357](https://togithub.com/go-git/go-git/pull/357) - [@​ricci2511](https://togithub.com/ricci2511) made their first contribution in [https://github.com/go-git/go-git/pull/808](https://togithub.com/go-git/go-git/pull/808) - [@​L11R](https://togithub.com/L11R) made their first contribution in [https://github.com/go-git/go-git/pull/812](https://togithub.com/go-git/go-git/pull/812) **Full Changelog**: go-git/go-git@v5.7.0...v5.7.1 ### [`v5.7.0`](https://togithub.com/go-git/go-git/releases/tag/v5.7.0) [Compare Source](https://togithub.com/go-git/go-git/compare/v5.6.1...v5.7.0) #### What's Changed - \*: Add support for initializing SHA256 repositories by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/707](https://togithub.com/go-git/go-git/pull/707) - git: add mirror clone option by [@​aymanbagabas](https://togithub.com/aymanbagabas) in [https://github.com/go-git/go-git/pull/735](https://togithub.com/go-git/go-git/pull/735) - git: Add support to ls-remote with peeled references. Fixes [#​749](https://togithub.com/go-git/go-git/issues/749) by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/750](https://togithub.com/go-git/go-git/pull/750) - git: fix cloning with branch name by [@​AriehSchneier](https://togithub.com/AriehSchneier) in [https://github.com/go-git/go-git/pull/755](https://togithub.com/go-git/go-git/pull/755) - git: Worktree, add check to see if file already checked in. Fixes [#​718](https://togithub.com/go-git/go-git/issues/718) by [@​cbbm142](https://togithub.com/cbbm142) in [https://github.com/go-git/go-git/pull/719](https://togithub.com/go-git/go-git/pull/719) - git: Worktree, git grep bare repositories by [@​aymanbagabas](https://togithub.com/aymanbagabas) in [https://github.com/go-git/go-git/pull/728](https://togithub.com/go-git/go-git/pull/728) - git: Add Depth to SubmoduleUpdateOptions by [@​matejrisek](https://togithub.com/matejrisek) in [https://github.com/go-git/go-git/pull/754](https://togithub.com/go-git/go-git/pull/754) - git: Testing, Fix tests not cleaning temp folders by [@​AriehSchneier](https://togithub.com/AriehSchneier) in [https://github.com/go-git/go-git/pull/769](https://togithub.com/go-git/go-git/pull/769) - git: remote, add support for a configurable timeout. by [@​andrewpollock](https://togithub.com/andrewpollock) in [https://github.com/go-git/go-git/pull/753](https://togithub.com/go-git/go-git/pull/753) - git: Allow Initial Branch to be configurable by [@​techknowlogick](https://togithub.com/techknowlogick) in [https://github.com/go-git/go-git/pull/764](https://togithub.com/go-git/go-git/pull/764) - storage: filesystem/dotgit, Improve load packed-refs by [@​fcharlie](https://togithub.com/fcharlie) in [https://github.com/go-git/go-git/pull/743](https://togithub.com/go-git/go-git/pull/743) - storage: filesystem, Populate index before use. Fixes [#​148](https://togithub.com/go-git/go-git/issues/148) by [@​AriehSchneier](https://togithub.com/AriehSchneier) in [https://github.com/go-git/go-git/pull/722](https://togithub.com/go-git/go-git/pull/722) - plumbing: resolve non-external delta references by [@​ZauberNerd](https://togithub.com/ZauberNerd) in [https://github.com/go-git/go-git/pull/485](https://togithub.com/go-git/go-git/pull/485) - plumbing/transport: fix regression in scp-like match by [@​jotadrilo](https://togithub.com/jotadrilo) in [https://github.com/go-git/go-git/pull/715](https://togithub.com/go-git/go-git/pull/715) - plumbing/transport: Add support for custom proxy settings by [@​aryan9600](https://togithub.com/aryan9600) in [https://github.com/go-git/go-git/pull/744](https://togithub.com/go-git/go-git/pull/744) - \*: small fixes across the codebase by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/770](https://togithub.com/go-git/go-git/pull/770) - \*: bump github.com/cloudflare/circl from 1.1.0 to 1.3.3 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/go-git/go-git/pull/776](https://togithub.com/go-git/go-git/pull/776) - \*: bump dependencies by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/748](https://togithub.com/go-git/go-git/pull/748) - \*: bump Go version to 1.18 on go.mod by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/774](https://togithub.com/go-git/go-git/pull/774) - \*: add Codeql workflow and bump dependencies by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/775](https://togithub.com/go-git/go-git/pull/775) - ci: fix upstream git build for master branch by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/739](https://togithub.com/go-git/go-git/pull/739) #### New Contributors - [@​ZauberNerd](https://togithub.com/ZauberNerd) made their first contribution in [https://github.com/go-git/go-git/pull/485](https://togithub.com/go-git/go-git/pull/485) - [@​jotadrilo](https://togithub.com/jotadrilo) made their first contribution in [https://github.com/go-git/go-git/pull/715](https://togithub.com/go-git/go-git/pull/715) - [@​fcharlie](https://togithub.com/fcharlie) made their first contribution in [https://github.com/go-git/go-git/pull/743](https://togithub.com/go-git/go-git/pull/743) - [@​AriehSchneier](https://togithub.com/AriehSchneier) made their first contribution in [https://github.com/go-git/go-git/pull/755](https://togithub.com/go-git/go-git/pull/755) - [@​cbbm142](https://togithub.com/cbbm142) made their first contribution in [https://github.com/go-git/go-git/pull/719](https://togithub.com/go-git/go-git/pull/719) - [@​aryan9600](https://togithub.com/aryan9600) made their first contribution in [https://github.com/go-git/go-git/pull/744](https://togithub.com/go-git/go-git/pull/744) - [@​matejrisek](https://togithub.com/matejrisek) made their first contribution in [https://github.com/go-git/go-git/pull/754](https://togithub.com/go-git/go-git/pull/754) - [@​andrewpollock](https://togithub.com/andrewpollock) made their first contribution in [https://github.com/go-git/go-git/pull/753](https://togithub.com/go-git/go-git/pull/753) - [@​techknowlogick](https://togithub.com/techknowlogick) made their first contribution in [https://github.com/go-git/go-git/pull/764](https://togithub.com/go-git/go-git/pull/764) **Full Changelog**: go-git/go-git@v5.6.1...v5.7.0 ### [`v5.6.1`](https://togithub.com/go-git/go-git/releases/tag/v5.6.1) [Compare Source](https://togithub.com/go-git/go-git/compare/v5.6.0...v5.6.1) #### What's Changed - plumbing/transport: don't use the `firstErrLine` when it is empty by [@​ThinkChaos](https://togithub.com/ThinkChaos) in [https://github.com/go-git/go-git/pull/682](https://togithub.com/go-git/go-git/pull/682) - plumbing/transport: ssh, unable to pass a custom HostKeyCallback func by [@​aymanbagabas](https://togithub.com/aymanbagabas) in [https://github.com/go-git/go-git/pull/655](https://togithub.com/go-git/go-git/pull/655) - storage/filesystem: dotgit: fix a filesystem race in Refs/walkReferencesTree by [@​MichaelMure](https://togithub.com/MichaelMure) in [https://github.com/go-git/go-git/pull/659](https://togithub.com/go-git/go-git/pull/659) - \*: bump golang.org/x/net from 0.2.0 to 0.7.0 by [@​dependabot](https://togithub.com/dependabot) in [https://github.com/go-git/go-git/pull/684](https://togithub.com/go-git/go-git/pull/684) - \*: bump dependencies by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/697](https://togithub.com/go-git/go-git/pull/697) - \*: fix panic for empty revisions by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/696](https://togithub.com/go-git/go-git/pull/696) - ci: bump GitHub actions, enable go test race detection and stop using developer's GPG keys during test execution by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/701](https://togithub.com/go-git/go-git/pull/701) **Full Changelog**: go-git/go-git@v5.6.0...v5.6.1 ### [`v5.6.0`](https://togithub.com/go-git/go-git/releases/tag/v5.6.0) [Compare Source](https://togithub.com/go-git/go-git/compare/v5.5.2...v5.6.0) #### What's Changed - Worktree, check for empty parent dirs during Reset (Fixes [#​670](https://togithub.com/go-git/go-git/issues/670)) by [@​mbohy](https://togithub.com/mbohy) in [https://github.com/go-git/go-git/pull/671](https://togithub.com/go-git/go-git/pull/671) - \*: remove need to build with CGO by [@​pjbgf](https://togithub.com/pjbgf) in [https://github.com/go-git/go-git/pull/688](https://togithub.com/go-git/go-git/pull/688) - plumbing: support SSH/X509 signed tags by [@​hiddeco](https://togithub.com/hiddeco) in [https://github.com/go-git/go-git/pull/690](https://togithub.com/go-git/go-git/pull/690) **Full Changelog**: go-git/go-git@v5.5.2...v5.6.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/mergestat/mergestat). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEyNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
git: stop iterating at oldest shallow when pulling. Fixes go-git#305
The
CommitPreorderIter
created to check whether two given commits are fast-forwardable was trying to iterate beyond the first commit of a shallow clone, this was causingobject not found
errors when trying to pull down new changes from the remote on a shallow clone.This pull solves that by passing in an optional parameter specifying the earliest shallow commit and instructing the iterator to stop before trying to visit that commit's parents.
Note: this will work for
Pull
s that don't specify depth or aPull
with a specified depth that is greater than or equal to the number of new commits on the remote. This means that the following scenario will still fail:If instead of pulling with depth 1 in the above scenario, the user were to pull with a depth of 2 or an unspecified depth, the pull would succeed.