Why are you removing the ls-files -u? This will break the detection
The status should be named 'uptodate instead of 'up-to-date since
that's what's used for individual files. Having two different
spellings for the same word would be very confusing.
You don't want to do a git-find-status-file in all cases, this is
O(n^2) and becomes much too slow on a large project. That's the reason
there's a skip-existing flag, to avoid that cost in the common case.