Update SimpleIni to version 4.19
[TortoiseGit.git] / ext / libgit2-Fix-parsing-rev-with-reflog-of-HEAD-e.g.-HEAD-3.patch
blob1c08f1bfe5ed99331d787ae67d138e3c68173ba6
1 From 143812f3a8b1411e0bedf2567b9d366f1b49dc93 Mon Sep 17 00:00:00 2001
2 From: Sven Strickroth <email@cs-ware.de>
3 Date: Thu, 18 Aug 2022 14:51:31 +0200
4 Subject: [PATCH] Fix parsing rev with reflog of HEAD (e.g., HEAD@{3})
6 Fixes issue #6156.
8 Signed-off-by: Sven Strickroth <email@cs-ware.de>
9 ---
10 src/libgit2/revparse.c | 5 ++++-
11 tests/libgit2/refs/revparse.c | 7 +++++++
12 2 files changed, 11 insertions(+), 1 deletion(-)
14 diff --git a/src/libgit2/revparse.c b/src/libgit2/revparse.c
15 index 9bc28e9fc..2fa426f48 100644
16 --- a/src/libgit2/revparse.c
17 +++ b/src/libgit2/revparse.c
18 @@ -268,7 +268,10 @@ static int retrieve_revobject_from_reflog(git_object **out, git_reference **base
19 int error = -1;
21 if (*base_ref == NULL) {
22 - if ((error = git_reference_dwim(&ref, repo, identifier)) < 0)
23 + if (position > 0 && !strcmp(identifier, "HEAD")) {
24 + if ((error = git_reference_lookup(&ref, repo, identifier)) < 0)
25 + return error;
26 + } else if ((error = git_reference_dwim(&ref, repo, identifier)) < 0)
27 return error;
28 } else {
29 ref = *base_ref;
30 diff --git a/tests/libgit2/refs/revparse.c b/tests/libgit2/refs/revparse.c
31 index 56af3c939..4f38f4022 100644
32 --- a/tests/libgit2/refs/revparse.c
33 +++ b/tests/libgit2/refs/revparse.c
34 @@ -886,3 +886,10 @@ void test_refs_revparse__parses_at_head(void)
35 test_id("@{0}", "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", NULL, GIT_REVSPEC_SINGLE);
36 test_id("@", "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", NULL, GIT_REVSPEC_SINGLE);
39 +void test_refs_revparse__reflog(void)
41 + test_id("HEAD@{0}", "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", NULL, GIT_REVSPEC_SINGLE);
42 + test_id("HEAD@{4}", "5b5b025afb0b4c913b4c338a42934a3863bf3644", NULL, GIT_REVSPEC_SINGLE);
43 + test_id("master@{0}", "a65fedf39aefe402d3bb6e24df4d4f5fe4547750", NULL, GIT_REVSPEC_SINGLE);
45 --
46 2.37.2.windows.2