git показывает случайные файлы, измененные в файловой системе Mac NFS - PullRequest
2 голосов
/ 19 декабря 2011

У нас здесь на работе странная проблема, которую я не смог понять.Мы все используем MacBook с Snow Leopard на наших настольных компьютерах, и у нас есть несколько серверов Linux, которые мы также используем удаленно.Некоторые из членов моей команды помещают git-репозитории в файловую систему NFS, которая используется совместно серверами Mac и Linux, чтобы им не приходилось думать о совместном использовании кода между репозиториями в их личном рабочем процессе.

Здесь начинается странное событие: на машинах OSX git будет случайным образом показывать некоторые устаревшие файлы в состоянии при попытке объединения или переключения веток и т. Д. Если вы запускаете git statusфайлы не отображаются устаревшими.gitk покажет файлы как измененные, но не зафиксированные таким же образом, как обычно.Если вы reset --hard эти файлы, вы можете иногда менять ветки до того, как это произойдет, но в основном это не так.Если вы войдете в систему на одном из компьютеров Linux и увидите один и тот же репозиторий, все работает отлично.Файлы не помечены как измененные, и вы можете делать все, что захотите.

Я удалил различия в конце строки и различия в режиме файлов как виновник, но я не уверен, что еще можно попробовать.Есть ли какое-то специфичное для OSX взаимодействие с NFS, с которым нам нужно как-то обойтись?

1 Ответ

3 голосов
/ 29 августа 2012

Возможно, несинхронизированное время между серверами и рабочими станциями делает время модификации файлов ненадежным.Помогает ли установка core.trustctime?(это верно по умолчанию).Существует еще более тяжелая настройка: core.ignoreStat для игнорирования полной stat(2) информации в коде обнаружения изменений.

...