worktree remove: clarify error message on dirty worktree

To avoid data loss, 'git worktree remove' refuses to delete a worktree if it's dirty or contains untracked files. However, the error message only mentions that the worktree "is dirty", even if the worktree in question is in fact clean, but contains untracked files: $ git worktree add test-worktree Preparing worktree (new branch 'test-worktree') HEAD is now at aa53e60 Initial $ >test-worktree/untracked-file $ git worktree remove test-worktree/ fatal: 'test-worktree/' is dirty, use --force to delete it $ git -C test-worktree/ diff $ git -C test-worktree/ diff --cached $ # Huh? Where are those dirty files?! Clarify this error message to say that the worktree "contains modified or untracked files". Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com> Reviewed-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

SZEDER Gábor committed Aug 13, 2019 at 20:02 UTC 507e5470a0e8be7e2a50a5ffe1f690d06dc00056
1 file changed +1 -1
builtin/worktree.c
+1 -1
@@ -880,7 +880,7 @@ static void check_clean_worktree(struct worktree *wt,
880 original_path);
881 ret = xread(cp.out, buf, sizeof(buf));
882 if (ret)
883 - die(_("'%s' is dirty, use --force to delete it"),
883 + die(_("'%s' contains modified or untracked files, use --force to delete it"),
884 original_path);
885 close(cp.out);
886 ret = finish_command(&cp);