Junio C Hamano said the following on 28.05.2008 23:19:
When "git checkout -- paths..." cannot update work tree for whatever
reason, checkout_entry() correctly issued an error message for the path to
the end user, but the command ignored the error, causing the entire
command to succeed.  This fixes it.

Signed-off-by: Junio C Hamano <[EMAIL PROTECTED]>
---

 * Now that we detect this failure, post-checkout-hook _might_ want to
   know that what we have is an incomplete checkout.  Not calling the hook
   in such a case may be another option, but we always called the hook and
   that would be a change in behaviour.

 builtin-checkout.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/builtin-checkout.c b/builtin-checkout.c

I'd like to just chip in that you actually _can_ create those files (nul, con, prn, all which are "special" filenames on Windows), but need a slight different construct to create them. That, and most tools will break on _using_ them, since they's also have to refer to them in a certain way.

So, certainly msysgit could write a workaround to handle such cases. (Git would also know how to remove these files on Windows)

Though, I still think that your patch is a Good Thing(tm).


For example, if you:

D:\some\path> echo foo > nul    # Ok, an no output, nor file created
D:\some\path> echo foo > .\nul  # Same thing
D:\some\path> echo foo > \\.\d:\some\path\nul  # Creates the nul file

 Directory of D:\some\path

29.05.2008  08:23    <DIR>          .
29.05.2008  08:23    <DIR>          ..
29.05.2008  08:23                 6 con
29.05.2008  08:22                 6 nul
29.05.2008  08:23                 6 prn
               3 File(s)             18 bytes

D:\some\path> del .\nul
The filename, directory name, or volume label syntax is incorrect.

D:\some\path> del \\.\d:\some\path\nul  # Success

--
.marius [EMAIL PROTECTED]
'if you know what you're doing, it's not research'

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to