Сохраняйте атрибуты файлов с контролем версий неизменными
-
11-09-2019 - |
Вопрос
Можно ли сохранить неизменными атрибуты файла с контролируемой версией?У меня есть структура каталогов, которую я хотел бы воссоздать установщиком на клиентском компьютере.Я надеялся, что весь каталог можно будет разместить в VCS, не затрагивая атрибуты файла.
Я использую TFS, но хотел бы услышать и о других системах контроля версий.
Редактировать: Я говорю об атрибутах файловой системы Windows, таких как «Скрытый/Архив/Система/Только для чтения», но также приветствуется любая другая информация, такая как даты создания/изменения.У меня есть структура каталогов, в которой некоторые файлы доступны только для чтения, и эти файлы необходимо установить как таковые на клиентском компьютере.TFS имеет тенденцию устанавливать/снимать атрибут «только для чтения» в зависимости от того, был ли файл возвращен или извлечен.
Решение
Обычно системы контроля версий не хранят полную информацию метаданных о файлах, находящихся под ее контролем, в репозитории.При обычном использовании систем контроля версий это не требуется и может даже вызвать проблемы;Системы контроля версий хранят «разумное» подмножество метаданных (например,разрешения на выполнение и символические ссылки).
Возможное решение — использовать перехватчики для сохранения необходимых частей метаданных файла при фиксации в каком-либо файле (обычно текстовом файле), держать этот файл под контролем версий, чтобы автоматически распространять его среди всех клиентов, и использовать перехватчики для восстановления метаданных при извлечении.
Примеры решений инструментов для сохранения и восстановления метаданных включают в себя (к сожалению, примеры Гит, а не TFS, но важна идея):
Примеры решений инструментов для хранения файлов конфигурации под контролем версий (опять же:все они используют Git в качестве бэкэнда):
Другие советы
TFS не хранит данные атрибутов файла (например, дату создания, дату изменения) и т. д. в текущих версиях TFS.Значениями этих атрибутов будет время на локальном компьютере, когда файлы впервые загружаются/изменяются.
TFS 2010 имеет возможность прикреплять произвольные метаданные к объектам контроля версий.Однако вам придется написать свой собственный инструмент.
Спецификация API (предварительная версия): http://blogs.msdn.com/mrod/archive/2008/05/09/team-foundation-server-properties.aspx