Upload
shytikov
View
334
Download
2
Embed Size (px)
Citation preview
Алексей Шитиков
http://github.com/shytikov
Типичный евангелист:
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к
оскорблениям.
БЛА-БЛА-БЛА!
• Git очень быстрый (мне и скорости SVN хватает)
• В Git локальная история (что я там не видел???)• Git не требует сервера (Э!!! А я ХОЧУ сервер!)• Работа с Github (зачем ещё один SourceForge?)• Мощные консольные команды (а я люблю GUI)• Простое создание веток (опять эта путаница…)• Автоматические слияния в Git (НЕ ВЕРЮ!!!)
Шутки в сторону!
Git (произносится «гит») — распределённая система управления версиями файлов.
Что означает «распределённость»?
• Ваш локальный компьютер хранит ВСЮ детальную информацию о вашем коде;
• И он активно использует ВСЮ эту детальную информацию в работе с кодом;
• Ваш компьютер может получать ЕЩЁ БОЛЬШЕ детальной информации от других компьютеров, работающих над тем же проектом.
Как используется информация?
M E R G E
Застёжка «Молния»!
Почему до этого не додумались другие?
• На самом деле, — додумались ещё раньше, чем появились системы контроля версий;
• Раньше в Unix исходные коды хранились как последовательность patch-файлов (заплаток);
• Git — не единственная система, реализующая данный принцип (Mercurial, Baazar, fossil, Veracity).
Остальное — производное:
• Вам понравится история коммитов с детализацией, которую выберете ВЫ (я гарантирую это!);
• Скорость работы (вы будете приятно удивлены!);
• Приёмы работы, которые отлично ложатся на Agile методологию.
Мой опыт использования:• Необходимо перенести разработку из ветки 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-х разработчиков для
достижения аналогичного результата. Ими были допущены ошибки слияния.
http://git-scm.com/
• Качайте!• Изучайте!• Используйте!