TGViewer
CS Space CS Space @csspace · 2.98K subscribers
Post #326 2.61K
Открываем регистрацию на курс 🔽

Алгоритмы в Git / Git Internals

⭐️ Лектор
Даниил Орешников
Backend-разработчик в SourceCraft (Yandex), преподаватель курса алгоритмов и структур данных в ИТМО. Призер финалов школьных всероссийских олимпиад по математике и по программированию, NCUMC, MathOpen; координатор/проблемсеттер олимпиад по программированию для школьников.


📢 Анонс
Git для большинства — привычный набор команд: commit, merge, push, pull. Но за ними стоит достаточно сложная распределённая система с content-addressable storage, алгоритмами и протоколами обмена данными. Как связаны commit и «патчи» из изменений в коде? Как Git находит общее начало двух веток? Когда изменения можно объединить автоматически, а когда Git честно отказывается угадывать смысл результата? Как клиент и сервер определяют, какие объекты уже известны обеим сторонам, не передавая полную историю?

На курсе мы будем последовательно строить ответы на эти инженерные вопросы, чтобы чёрный ящик под названием Git стал немного прозрачнее. Разберём physical storage: packfiles, .idx, delta compression; посмотрим на используемые алгоритмы и структуры данных: object graph, обход commit DAG и поиск merge base; diff-алгоритмы семейства Myers, а также patience и histogram heuristics; three-way merge и устройство conflict state в index. Увидим, как Git приходит к компромиссам между компактностью и стоимостью чтения, обсудим протокол negotiation между клиентом и сервером через want/have, а также оптимизации и механизмы, которые делают Git применимым к большим репозиториям: commit-graph, Bloom filters, reachability bitmaps, partial clone.

Сквозной проект курса — создание собственного минимального Git-сервера, совместимого с настоящим клиентом Git для clone и fetch. Мы начнём с чтения объектов и refs, затем реализуем базовый протокол, discovery capabilities, negotiation общей истории и генерацию packfile.


📑 Пререквизиты курса
– хотя бы раз в жизни пользовались Git'ом
– знание основ алгоритмов и структур данных (графы, хеш-таблицы)


🕑 Первая лекция пройдёт 12 сентября с 14:00 до 15:30. Курс будет проходить по субботам с 14:00 в Мраморном зале, ПОМИ РАН, наб. реки Фонтанки, 27, Санкт-Петербург. Записаться на курс можно через личный кабинет или в боте:
▶️ Личный кабинет
▶️ Бот
  • ❤ 26
  • 🔥 12
  • ⚡ 9
More from @csspace
  1. Sep 18, 2026Автоматическое построение PBR текстур для фотограмметрических моделей ⬇️ – Страница меропр…
  2. Sep 17, 2026Напоминаем про открытую лекцию Андрея Михайловича Райгородского по комбинаторике и теории…
  3. Sep 11, 2026Классические и современные задачи комбинаторики и теории графов ⬇️ – Страница мероприятия…
  4. Sep 5, 2026Открываем регистрацию на курс 🔽 Семантика языков программирования ⭐️ Лектор Дмитрий Булыч…
  5. Sep 3, 2026Открываем регистрацию на курс 🔽 Структурные параметры графов ⭐️ Лектор Данил Сагунов Коор…
  6. Sep 1, 20261 сентября, в День знаний, открываем новый учебный сезон — и начинаем его с регистрации на…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →