Получение git для соответствия символическим ссылкам (снова)
Кто-то уже спросил, как вы можете получить git, чтобы следовать символическим ссылкам. Был ответ для символического каталога, но не для символического файла. Это было также год назад.
Вопрос: как вы можете git следовать символической ссылке и добавлять файл, на который он ссылается?
Вот старый вопрос: Как я могу получить git, чтобы следовать символическим ссылкам?. Там также вопрос о том, что git обычно Как git обрабатывать символические ссылки?. Я поменяю это поведение.
В случае, если вам все равно: я запускаю git 1.5.4.3 в unix и git версии 1.6.0 на Mac.
Ответы
Ответ 1
Я почти уверен, что нет.
Кроме того, это звучит как небезопасное поведение undefined - что он должен делать, когда вы перемещаетесь между версиями файла и ему нужно писать? В частности, если вы проверили ревизию до ее добавления, действительно ли хотите удалить содержимое файла вне репозитория? Что произойдет, если вы вернетесь, чтобы представить и воссоздать файл, или если сама симлинковая ссылка была изменена - должен ли git также отслеживать символическую ссылку?
Вещи в этих строках были в списке рассылки git в конце прошлого года в ответ на практически тот же вопрос.
Ответ 2
Вы можете использовать hardlinks вместо softlinks (символические ссылки a.k.a.). Git затем увидит содержимое связанного файла. Недостаток заключается в том, что когда кто-то проверяет, файл создается как обычный файл в выгруженном каталоге, потому что Git не понимает его как ссылку.
Ответ 3
как насчет использования жестких ссылок, тогда git не имеет представления о его связанном файле (не так ли?)
Ответ 4
Проблема с использованием жестких ссылок заключается в том, что если что-то, записывающее в другое место, заменяет файл, а не просто записывает изменения в него, то в целевом файле есть новый индексный дескриптор файловой системы, и hardlink больше не указывает на него, поэтому файлы не синхронизированы.