Подтвердить что ты не робот

Что означает "git commit", когда он говорит "создать режим..." на stdout?

EDIT:

Смотрите Danny Lin git -store-meta в качестве предлагаемого решения проблемы с версией-метаданных, описанной ниже. Я еще не тестировал его по состоянию на 2015-05-13.

ОРИГИНАЛЬНЫЙ ВОПРОС:

Строки create|delete mode ... на выходе git commit (пример ниже) представляют собой некоторый элемент управления метаданными? (И/или, что представляют собой эти строки вообще?) Они, похоже, являются кодами/представлениями типа unix-подобных файлов, хотя я не уверен, что-то, - сопоставление, но главный вопрос: что, если что-либо делает git сделать с помощью этих кодов/настроек/значений? git пытается использовать эти сохраненные коды каким-либо образом, чтобы доказать, что помогает решить проблемы с метаданными мой вопрос superuser.com [ "Как повторно использовать/расширять механизм метаданных etckeeper для управления файловой системой /w/ " > или /w 21 > с указанной способностью? "] (https://superuser.com/info/367729/how-to-reuse-extend- etckeepers-metadata-engine-for- git -control-of-non-etc-file)? Я знаю, что git не контролирует все метаданные файловой системы.

[Git, по-видимому, уже управляет "исполняемым атрибутом /perm " файла (по-видимому, переносимым для большинства ОС) и некоторыми другими вещами, такими как ссылки файловой системы. Я ищу еще один механизм управления Unix/Linux/BSD/DarwinMacOSX для более/всех метаданных, а именно всех разрешений и прав пользователя/группы. ACL и другие элементы управления метаданными. Попытка выяснить, хранится ли материал git в настоящее время, может оказаться полезным для решения этой проблемы.]

[email protected] Dec 15 09:40:45 ~/.../sandbox-1# git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   modified:   README
#   new file:   dummy-file-will-be-removed
#   deleted:    ownerfile
#
[email protected] Dec 15 09:40:45 ~/.../sandbox-1# git commit -m "testing git"
[master c5b0201] testing git
 2 files changed, 1 insertions(+), 2 deletions(-)
 create mode 100644 dummy-file-will-be-removed
 delete mode 100644 ownerfile
[email protected] Dec 15 09:41:55 ~/.../sandbox-1# 
[...]
[email protected] Dec 15 11:33:11 ~# git --version
git version 1.7.4.1
[email protected] Dec 15 11:33:14 ~# 
4b9b3361

Ответ 1

Для получения дополнительной информации о режиме Git см. этот ответ.

Git способность хранить метаданные файлов ограничена простым подмножеством информации, чтобы позволить Git отслеживать некоторые основные изменения файловой системы, позволяя Git отслеживать соответствующие изменения для управления исходным кодом; например, был ли файл изменен и является ли файл обычным файлом или исполняемым файлом.

Git не пытается реализовать какое-либо понятие файловой системы, оставив подпрограммы файловой системы фактической реализации файловой системы. Это имеет смысл позволить Git работать в равной степени независимо от того, работает ли файловая система FAT32, NTFS, EXT3, XFS, NFS и др. В Linux, MacOS, Windows и т.д.

Ответ 2

Это разрешения файлов как значения разрешений в стиле unix. Они печатаются в восьмеричном и представляют собой кластеры из 3 бит для чтения, записи и выполнения. Если вы посмотрите на объект дерева в git (например: git ls-tree HEAD), вы можете увидеть все git записи о содержимом каталога. Это дерево содержит деревья и капли с битами разрешений

C:\project>git ls-tree HEAD
100644 blob 66f3f25c8ca9ae73b99669aca6ba5ecfa4703b2b    .gitignore
100644 blob 60b88ac20b8b7cccdcd856e65415a9eb9495b63a    Makefile
040000 tree e1d9381e4d12effea7e33f8d7e2b16e372f67b51    demos
100644 blob a60e08eeb9f75160ae2bf6a9feeff3c1c75bfc1d    doxygen.cfg

6 означает чтение-запись, 4 - только для чтения.

Ответ 3

Нет, git не хранит полные метаданные. Он сохраняет только тип файла (и он ограничен регулярными файловыми файлами, каталогами и символическими ссылками) и является ли исполняемый файл (какие каталоги по умолчанию, конечно).