Subject: Re: [PATCH 0/5] "best effort" checkout

From: Junio C Hamano <[email-masked]>
Date: Thu, 29 May 2008 17:33:57 -0700

Mark Levedahl <[email-masked]> writes:

> 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...

I hope you did not use 6/5.  My understanding is that your platform
natively supports it without that compatibility layer ;-)

> 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 <file>..." to update what will be committed)
> #
> #   modified:   t/t5100/nul

Interesting breakage.

I expected to see "deleted" here.  I guess lstat("anything/nul") says "it
exists" everywhere, and that probably is why you are getting EEXIST.