Re: git checkout under 1.7.6 does not properly list untracked files and aborts
From: Joshua Jensen <hidden>
Date: 2016-06-15 22:52:04
----- Original Message ----- From: Joshua Jensen Date: 9/9/2011 2:04 PM
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.
Aborting
The 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