Мне удалось получить индекс в состоянии, когда некоторые файлы не отслеживаются, как ожидалось.git не обнаруживает изменений в некоторых файлах
В качестве примера я size.h и test.h в неизменном виде в рабочем каталоге:
$ git-ls-files -st size.h test.h
H 100644 de2c741b07d86f92bdd660626848072cb2bf510f 0 size.h
H 100644 8bb24bc7483ffcfc0fc1a3761dc63e86a1b3e003 0 test.h
$ git status
# On branch master
nothing to commit (working directory clean)
Тогда я сделать некоторые случайные изменения в обоих файлах:
$ fortune >> size.h
$ fortune >> test.h
По какой-то причине размера .h не изменяется (хотя файл явно есть). В то же время test.h модифицируется, как и ожидалось:
$ git status
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: test.h
#
no changes added to commit (use "git add" and/or "git commit -a")
После удаления индекса и сброса все возвращается в нормальное русло:
$ rm .git/index
$ git reset
Unstaged changes after reset:
M size.h
M test.h
$ git status
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: size.h
# modified: test.h
#
no changes added to commit (use "git add" and/or "git commit -a")
Я работал с мерзавцем 1.6.6 на CentOS и msysgit 1.6.5.1 на Windows над samba в этом хранилище до появления странности. Я не смог воспроизвести это из нового клона.
У меня возникает чувство, что это ошибка в msysgit, возможно, в сочетании с самбой. Есть идеи?