From: Junio C Hamano Date: Tue, 16 Oct 2018 07:16:05 +0000 (+0900) Subject: Merge branch 'en/status-multiple-renames-to-the-same-target-fix' X-Git-Tag: v2.20.0-rc0~178 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/98f3f007f520de518c732c74085234dede144926?hp=e366d0c6d04a5c29a8ef49c61bc28209f543f69a Merge branch 'en/status-multiple-renames-to-the-same-target-fix' The code in "git status" sometimes hit an assertion failure. This was caused by a structure that was reused without cleaning the data used for the first run, which has been corrected. * en/status-multiple-renames-to-the-same-target-fix: commit: fix erroneous BUG, 'multiple renames on the same target? how?' --- diff --git a/builtin/commit.c b/builtin/commit.c index 3f33ae6043..1d5292e4d8 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -874,6 +874,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix, s->use_color = 0; commitable = run_status(s->fp, index_file, prefix, 1, s); s->use_color = saved_color_setting; + string_list_clear(&s->change, 1); } else { struct object_id oid; const char *parent = "HEAD"; diff --git a/t/t7500-commit.sh b/t/t7500-commit.sh index 170b4810e0..31ab608b67 100755 --- a/t/t7500-commit.sh +++ b/t/t7500-commit.sh @@ -359,4 +359,27 @@ test_expect_success 'new line found before status message in commit template' ' test_i18ncmp expected-template editor-input ' +test_expect_success 'setup empty commit with unstaged rename and copy' ' + test_create_repo unstaged_rename_and_copy && + ( + cd unstaged_rename_and_copy && + + echo content >orig && + git add orig && + test_commit orig && + + cp orig new_copy && + mv orig new_rename && + git add -N new_copy new_rename + ) +' + +test_expect_success 'check commit with unstaged rename and copy' ' + ( + cd unstaged_rename_and_copy && + + test_must_fail git -c diff.renames=copy commit + ) +' + test_done