11
Алексей Шитиков http://github.com/ shytikov

Shytikov on git Magic

Embed Size (px)

Citation preview

Page 1: Shytikov on git Magic

Алексей Шитиков

http://github.com/shytikov

Page 2: Shytikov on git Magic

Типичный евангелист:

Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к

оскорблениям.

Page 3: Shytikov on git Magic

БЛА-БЛА-БЛА!

• Git очень быстрый (мне и скорости SVN хватает)

• В Git локальная история (что я там не видел???)• Git не требует сервера (Э!!! А я ХОЧУ сервер!)• Работа с Github (зачем ещё один SourceForge?)• Мощные консольные команды (а я люблю GUI)• Простое создание веток (опять эта путаница…)• Автоматические слияния в Git (НЕ ВЕРЮ!!!)

Page 4: Shytikov on git Magic

Шутки в сторону!

Git (произносится «гит») — распределённая система управления версиями файлов.

Page 5: Shytikov on git Magic

Что означает «распределённость»?

• Ваш локальный компьютер хранит ВСЮ детальную информацию о вашем коде;

• И он активно использует ВСЮ эту детальную информацию в работе с кодом;

• Ваш компьютер может получать ЕЩЁ БОЛЬШЕ детальной информации от других компьютеров, работающих над тем же проектом.

Page 6: Shytikov on git Magic

Как используется информация?

M E R G E

Page 7: Shytikov on git Magic

Застёжка «Молния»!

Page 8: Shytikov on git Magic

Почему до этого не додумались другие?

• На самом деле, — додумались ещё раньше, чем появились системы контроля версий;

• Раньше в Unix исходные коды хранились как последовательность patch-файлов (заплаток);

• Git — не единственная система, реализующая данный принцип (Mercurial, Baazar, fossil, Veracity).

Page 9: Shytikov on git Magic

Остальное — производное:

• Вам понравится история коммитов с детализацией, которую выберете ВЫ (я гарантирую это!);

• Скорость работы (вы будете приятно удивлены!);

• Приёмы работы, которые отлично ложатся на Agile методологию.

Page 10: Shytikov on git Magic

Мой опыт использования:• Необходимо перенести разработку из ветки CTP3 в CTP5, общее

количество файлов — больше 4000;• Из них изменения для заказчика — 1170;• Синхронизация не проводилась более полугода;• Результат автоматического слияния — конфликты в 140 файлах;• 88% успешных слияний (1170 – 140) / 1170 * 100 = 88%;• Среди 140 файлов большинство конфликтов были тривиальными

(изменение записи о ревизии файла, что хранится в самом файле —требование технологии MS Dynamic NAV);

• Нетривиальные конфликты (изменение «интерфейсов» взаимодействия) — 20 файлов;

• Суммарное количество ошибок компиляции (результат нетривиальных конфликтов) — 50;

• Количество неработоспособных объектов после автоматического слияния — 4% (50 / 1170 * 100% = 4%);

• Время потраченное на слияние — 4 часа. Выполнено одним человеком.• Заказчик потратил 4 недели ручной работы 4-х разработчиков для

достижения аналогичного результата. Ими были допущены ошибки слияния.

Page 11: Shytikov on git Magic

http://git-scm.com/

• Качайте!• Изучайте!• Используйте!