diff options
| author | Junio C Hamano <gitster@pobox.com> | 2024-12-19 10:58:31 -0800 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2024-12-19 10:58:31 -0800 |
| commit | cb89eebf3bb0b78c5193f8b6293b4b22ce8b08ca (patch) | |
| tree | e40d34e3a7718102cd77b845067acbb76812ad62 | |
| parent | a1f34d5955035dc64f2e25da0ba2cc0a0c73c21c (diff) | |
| parent | f94bfa151623d7e675db9465ae7ff0b33e4825f3 (diff) | |
| download | git-cb89eebf3bb0b78c5193f8b6293b4b22ce8b08ca.tar.gz | |
Merge branch 'js/log-remerge-keep-ancestry'
"git log -p --remerge-diff --reverse" was completely broken.
* js/log-remerge-keep-ancestry:
log: --remerge-diff needs to keep around commit parents
| -rw-r--r-- | builtin/log.c | 8 | ||||
| -rwxr-xr-x | t/t4069-remerge-diff.sh | 7 |
2 files changed, 13 insertions, 2 deletions
diff --git a/builtin/log.c b/builtin/log.c index 368f6580a6..923e4e6069 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -528,10 +528,14 @@ static int cmd_log_walk_no_free(struct rev_info *rev) * but we didn't actually show the commit. */ rev->max_count++; - if (!rev->reflog_info) { + if (!rev->reflog_info && !rev->remerge_diff) { /* * We may show a given commit multiple times when - * walking the reflogs. + * walking the reflogs. Therefore we still need it. + * + * Likewise, we potentially still need the parents + * of * already shown commits to determine merge + * bases when showing remerge diffs. */ free_commit_buffer(the_repository->parsed_objects, commit); diff --git a/t/t4069-remerge-diff.sh b/t/t4069-remerge-diff.sh index ca8f999cab..c6c94aef14 100755 --- a/t/t4069-remerge-diff.sh +++ b/t/t4069-remerge-diff.sh @@ -352,4 +352,11 @@ test_expect_success 'remerge-diff turns off history simplification' ' test_cmp expect actual ' +test_expect_success 'remerge-diff with --reverse' ' + git log -1 --remerge-diff --oneline ab_resolution^ >expect && + git log -1 --remerge-diff --oneline ab_resolution >>expect && + git log -2 --remerge-diff --oneline ab_resolution --reverse >actual && + test_cmp expect actual +' + test_done |
