LINUX.ORG.RU
Форум — Talks  

Циклически зависимые директории в гит

 ,


0

1

Поскольку sha1 давно взломан, думаю можно организовать ситуацию чтобы две директории были взаимно вложены друг в друга. Какие интересные последствия могут быть у такой репы (ну кроме того что её невозможно checkout, впрочем на каком именно этапе checkout упадёт или зависнет - тоже интересный вопрос)? Например как отреагирует гуи гитохостингов, например гитхаба, на неё?

Мне лень всё это делать самому и проверять, а то потом опять обвинят что я вредоносные репы распространяю, вот решил обсудить исследование интересного явления публично вместо этого.

★★★★★

Git не знает ничего про директории. Пустые .gitkeep не от хорошей жизни добавляют. А так, продолжай наблюдения! ;)

beastie ★★★★★
()
Ответ на: комментарий от beastie

Как это не знает, когда есть объекты типа tree, их обозначающие? То что он пустые директории игнорирует при сканировании файловой системы это другой вопрос.

Как бы то ни было, это всё мало связано с моим вопросом.

firkax ★★★★★
() автор топика

Мне лень всё это делать самому и проверять, а то потом опять обвинят что я вредоносные репы распространяю, вот решил обсудить исследование интересного явления публично вместо этого.

Я бы ответил, да что-то лень.

Bfgeshka ★★★★★
()

Мне лень всё это делать самому и проверять

Попроси ии-шку, если лень:)

Beewek ★★★★
()

Занимательная тема с отображением одних деревьев на другие.

Что в git, что в S3 - нет никаких «директорий,каталогов,папок». Просто набор закорючек объекта/артефакта.

Так и в ФС же их нет по большому счёту. Можно и тут придумать способ сделать hard link на два разных каталога, в т.ч. вложенных друг в друга.

Лепили мы тут имитацию ФС в PostgreSQL. Куда отображаются деревья из разных источников, чтоб в итоге людям казалось, что всё это «папки». От циклических ссылок защищались и на входе и на выходе на всякий пожарный.

Toxo2 ★★★★★
()
Ответ на: комментарий от Toxo2

И тебе отвечу, в гите есть директории. Это объекты типа tree, содержание которых - массив структур:

char filemode_octal[];
char ' ';
char filename[];
char 0;
uint8 hash[20];
Рассказы про якобы их отсутствие берутся из поведения высокоуровневой части гит-клиента, который директории без файлов игнорирует и к формату его базы отношения не имеют.

Так и в ФС же их нет по большому счёту

Это уже точно демагогия.

firkax ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему: только для зарегистрированных, score>=50.