Re-casing directories on case-insensitive systems
- From
Kevin Ballard <kevin@sb.org>
- Date
- Jan 11, 2008, 20:19 UTC
- Message-ID
- <579DF776-4F4E-464C-88DB-B22C2EC291BD@sb.org>
Somehow I managed to change the case of a directory without git realizing it. I thought I issued `git mv CS4536 cs4536` but since that won't work in my efforts to reproduce the problem, I must have simply issued the `mv` outside of git and then re-added it.
Anyway, here's the state of my directory:
kevin@KBALLARD:~/Documents/School/C07> git ls-tree HEAD 040000 tree b47c8103e2e01fcf145bdc237c0e56ffc61f1c47 CS4536 040000 tree dbf7fc51ef3effebdf9b4e9172e4c86cae52b163 cs4536 040000 tree 15834a7b6534a285bf6930be4e5404b37e1dc718 ece3601 040000 tree 62d229b8c4a389b550df20a3752d666c48c767a4 ma2071
Note that I have both versions of the directory present. Unfortunately, only one of them can be present on the filesystem. If I run `mv cs4536 CS4536; git reset --hard` I end up with a different working tree.
Git should be able to detect this sort of conflict on a case- insensitive system. I didn't even realize what I'd done until I pushed back to the master repo and ran `git reset --hard` there, then wondered why the new file I added to cs4536/ was missing and why my directory was still named CS4536.
-Kevin Ballard
-- Kevin Ballard http://kevin.sb.org kevin@sb.org http://www.tildesoft.com