Re: [PATCH] "git checkout -- paths..." should signal error
- From
Marius Storm-Olsen <marius@trolltech.com>
- Date
- May 29, 2008, 06:28 UTC
- Message-ID
- <483E4D09.1070400@trolltech.com>
- In-Reply-To
- <7vtzgirus5.fsf_-_@gitster.siamese.dyndns.org>
Junio C Hamano said the following on 28.05.2008 23:19:
Show 17 quoted lines
> 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 <gitster@pobox.com> > --- > > * 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 bytesD:\some\path> del .\nul The filename, directory name, or volume label syntax is incorrect.
D:\some\path> del \\.\d:\some\path\nul # Success
-- .marius [@trolltech.com] 'if you know what you're doing, it's not research'