From: Mark Levedahl Date: Thu, 29 May 2008 23:24:34 GMT Subject: Re: [PATCH 0/5] "best effort" checkout Message-ID: <483F3B32.9000907@verizon.net> In-Reply-To: <1212020246-26480-1-git-send-email-gitster@pobox.com> Junio C Hamano wrote: > > [PATCH 1/5] "git checkout -- paths..." should error out when paths cannot be written > [PATCH 2/5] checkout: make reset_clean_to_new() not die by itself > [PATCH 3/5] checkout: consolidate reset_{to_new,clean_to_new|() > [PATCH 4/5] unpack_trees(): allow callers to differentiate worktree errors from merge errors > [PATCH 5/5] checkout: "best effort" checkout > [PATCH 6/5] NUL hack to create_file() This works! I've added these patches (pulled from pu) to my tree and rebuilt. The current results on Cygwin... git>git checkout -f b71ce7f3f13ebd0e Previous HEAD position was 952538f... checkout: "best effort" checkout error: git-checkout-index: unable to create file t/t5100/nul (File exists) HEAD is now at b71ce7f... Merge 1.5.5.3 in git>git status # Not currently on any branch. # Changed but not updated: # (use "git add ..." to update what will be committed) # # modified: t/t5100/nul # no changes added to commit (use "git add" and/or "git commit -a") git>git mv t/t5100/nul t/t5100/nul-plain fatal: renaming t/t5100/nul failed: Invalid argument git>git rm -f --cached t/t5100/nul rm 't/t5100/nul' git>git show HEAD:t/t5100/nul From nobody Mon Sep 17 00:00:00 2001 --- diff --git a/foo b/foo ^Some strange test^^ ^@ So, for posterity, git-mv cannot rename the offending file in the index, but the file can be removed, and its contents piped into a file of non-offending name, so a reasonable solution for this case exists. Many thanks to all, especially to Junio for actually creating the fix. Mark