The order of the parents in git pull is wrong, many big threads [1] [2] have been started because of that. There's no need for git update to repeat that mistake. [1] https://lore.kernel.org/git/20130522115042.GA20649@xxxxxxxxxxxxxx/ [2] https://lore.kernel.org/git/4ay6w9i74cygt6ii1b0db7wg.1398433713382@xxxxxxxxxxxxxxxxx/ Signed-off-by: Felipe Contreras <felipe.contreras@xxxxxxxxx> --- builtin/update.c | 2 +- t/t5563-update.sh | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/builtin/update.c b/builtin/update.c index 5946b383f5..94e83532a8 100644 --- a/builtin/update.c +++ b/builtin/update.c @@ -59,7 +59,7 @@ static int run_merge(void) int ret; struct strvec args = STRVEC_INIT; - strvec_pushl(&args, "merge", "FETCH_HEAD", NULL); + strvec_pushl(&args, "merge", "--reverse-parents", "FETCH_HEAD", NULL); ret = run_command_v_opt(args.v, RUN_GIT_CMD); strvec_clear(&args); diff --git a/t/t5563-update.sh b/t/t5563-update.sh index 833a5285da..72d6a357a1 100755 --- a/t/t5563-update.sh +++ b/t/t5563-update.sh @@ -53,7 +53,9 @@ test_expect_success 'git update non-fast-forward with merge' ' git commit -m new && git checkout -b test -t other && git reset --hard master && - git update --merge + git update --merge && + test_cmp_rev @^2 master && + test_cmp_rev @^1 other ) ' -- 2.32.0.36.g70aac2b1aa