[[!comment format=mdwn username="http://joey.kitenet.net/" nickname="joey" subject="comment 7" date="2011-03-31T19:08:01Z" content=""" git 1.7.4 does not make things better. With it, if I add first \"X/foo\" and then \"x/bar\", it commits \"X/bar\". That will *certianly* cause problems when interoperating with a repo clone on a case-sensative filesystem, since git-annex there will not see the location log that git committed to the wrong case directory. It's possible there is some interoperability problem when pulling from linux like you did, onto HFS+, too. I am not quite sure. Ah, I did find one.. if I clone the repo with \"X/foo\" in it to a case-sensative filesystem, and add a \"x/foo\" there, and pull that commit back to HFS+, git says:
* branch master -> FETCH_HEAD Updating 8754149..e3d4640 Fast-forward x/foo | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) create mode 100644 x/foo joey@gnu:/mnt/r4>ls X/ joey@gnu:/mnt/r4>git st # On branch master # Changes not staged for commit: # (use \"git addAha -- that lets me reproduce your problem with the same file being staged twice with different capitalizations, too:...\" to update what will be committed) # (use \"git checkout -- ...\" to discard changes in working directory # modified: X/foo
joey@gnu:/mnt/r4>echo haaai >| x/foo joey@gnu:/mnt/r4>git st # On branch master # Changes not staged for commit: # (use \"git addAnd modified files that git refuses to commit, which entirely explains [[git-annex_has_issues_with_git_when_staging__47__commiting_logs]]....\" to update what will be committed) # (use \"git checkout -- ...\" to discard changes in working directory) # # modified: X/bar # modified: X/foo # modified: x/foo # joey@gnu:/mnt/r4>git commit -a fatal: Will not add file alias 'X/Bar' ('x/Bar' already exists in index)
joey@gnu:/mnt/r4>git add X/foo joey@gnu:/mnt/r4>git commit X/foo # On branch master # Changes not staged for commit: # (use \"git addI think git is frankly, buggy. It seems I will need to work around this by stopping using mixed case hashing for location logs. """]]...\" to update what will be committed) # (use \"git checkout -- ...\" to discard changes in working directory) # # modified: X/bar # modified: X/foo # no changes added to commit (use \"git add\" and/or \"git commit -a\")