[PATCH 0/6] revision: fix order of revs for ^!
- From
René Scharfe <l.s.r@web.de>
- Date
- Sep 15, 2022, 14:48 UTC
- Message-ID
- <ba6eea28-fb3a-b376-2529-351727c02f1a@web.de>
According to gitrevisions(7), "R^!" is the same as "R ^R^1 [^R^2...]", but handle_revision_arg_1() instead resolves it to "^R^1 [^R^2...] R". This ordering affects git diff, which expects the child to be given before its parents when asked to produce a combined diff of a merge.
This series reverses that order and makes "git diff R^!" consistent with "git show R^!". First an unrelated cleanup in the vicinity:
revision: use strtol_i() for exclude_parent
Then dissolve add_parents_only() to gain the necessary flexibility. I may have overdone it:
revision: factor out get_commit() revision: factor out add_parent() revision: factor out add_parents() revision: rename add_parents_only() to add_nth_parent()
Finally the actual change of order:
revision: add parents after child for ^!
revision.c | 87 ++++++++++++++++++++++++++-------------- t/t4038-diff-combined.sh | 10 +++++ 2 files changed, 68 insertions(+), 29 deletions(-)
-- 2.37.3