Re: git checkout under 1.7.6 does not properly list untracked files and aborts
- From
Joshua Jensen <jjensen@workspacewhiz.com>
- Date
- Sep 19, 2011, 19:44 UTC
- Message-ID
- <4E779BA4.8070109@workspacewhiz.com>
- In-Reply-To
- <4E6A7167.6070408@workspacewhiz.com>
----- Original Message ----- From: Joshua Jensen Date: 9/9/2011 2:04 PM
Show 11 quoted lines
> This may be an msysGit 1.7.6 issue, as that is what I am using. It > also occurs in msysGit 1.7.5, but I am almost certain it did not > happen in msysGit 1.7.2. > > Given an untracked file in the working directory that has been added > to an alternate branch, when switching to that alternate branch, 'git > checkout' exits with an error code but does not print anything to the > console. It should print an untracked file error. > > I have been trying to track this down in code. The point where the > error messages are printed, display_error_msgs, is never hit.
Okay, so I've tracked this down, but I am unsure what the correct fix is.
In unpack-trees.c's unpack_trees() function, there are some lines that read:
if (ce->ce_flags & CE_ADDED &&
verify_absent(ce, ERROR_WOULD_LOSE_UNTRACKED_OVERWRITTEN, o))
return -1;If the 'return -1' is changed to 'goto return_failed', then a proper error message appears:
error: The following untracked working tree files would be
overwritten by checkout:
one/file/listed/here.txt
Please move or remove them before you can switch branches.
AbortingThe thing is, there are multiple files that would be overwritten by checkout, and I believe an older version of Git showed me the entire list before aborting.
What would be the proper fix here? What am I doing wrong?
Thanks.
Josh