dump-2012 - Управление разработкой - "Опыт смены системы...
Post on 16-Jul-2015
799 Views
Preview:
TRANSCRIPT
svn → git
подводные грабли
Андрей Хитрин
Разработчик
ahitrin@naumen.ru
Константин Беклемишев
Руководитель группы
kbeklemishev@naumen.ru
Naumen Phone
• Это 10 лет разработки на C++, Python и
Java
• Гибкая масштабируемая архитектура
• Более 20-и серверных компонент
• Три интерфейса пользователя
• Две команды разработки
Что такое Naumen Phone?
• Это 10 лет разработки на C++, Python и
Java
• Гибкая масштабируемая архитектура
• Более 20-и серверных компонент
• Три интерфейса пользователя
• Две команды разработки
...и мы были счастливы с svn ;)
Что такое Naumen Phone?
Глобальные цели
Захват и полное
доминирование в
регионе APAC!
Следствие: Cмещение
фокуса с проектной
деятельности на
релизный цикл
Наследие: как оно было?
Welcome to SVN hell !
• Множество веток
• Они не синхронизируются
• Актуальна только одна
• Нет единства :(
Наследие: как оно было?
Партизаны начинают переходить на git и hg
Что мы хотим?
Версии
Удобный Code Review
Стабилизацию и Тестирование
• скорость работы
• удобное ветвление и слияние
• отдельные ветки для code review
• копирование коммитов
• эффективный поиск
• bisect
• корректировка истории
• гибкий workflow • он популярен!
Почему git?
• скорость работы
• удобное ветвление и слияние
• отдельные ветки для code review
• копирование коммитов
• эффективный поиск
• bisect
• корректировка истории
• гибкий workflow • он популярен!
Почему git?
Но его надо изучать!
Этапы переезда svn → git
•
• Составление git-workflow (+)
• Самостоятельное изучение githowto (-)
• Тестовый экспорт из svn в git(разбили на
несколько git-репозиториев)
Этапы переезда svn → git
•
• Адаптация систем сборки
• Полный переезд
• Доклад о работе с git (-)
• Мастер-класс по работе с git (+)
• Хуки, подушки и перины
Что содержит git workflow?
• Правила работы над задачей
• Правила ведения коммитов
• Подготовка к работе
• Основные операции
• Стандартные процедуры работы
git-workflow: схема репозитория
master - основная ветка разработки
stable-1.5.0 - стабильная версия
git-svn + файл авторов
Импорт
Контроль доступа
Как контролировать доступ к репозиторию?
Контроль доступа
Может, gitosis?
Контроль доступа
Какие ещё есть решения?
• GitoLitehttps://github.com/sitaramc/gitolite
• GitLab
HQhttps://github.com/gitlabhq/gitlabhq
• GitHub Enterprise
(всего $5000 в год!)
Контроль доступа
Старый добрый ssh+ldap!
Captain Hook
Captain Hook
Поганится владелец :)
Captain Hook
Лес может быстро зарасти
Captain Hook
Добавили сторожевой хук
Результаты
В гр. разработки NPO переезд удался! :)
В гр. разрабоки NP еще многое предстоит
сделать.
Что еще необходимо сделать?
• Покомпонентное дробление git-репозитория NP
• Новая система сборки NP
• Redmine 1.4+ (multi-repo на каждый проект)
Выводы
• надо много обучать
• важно понимать внутреннюю модель
• очень помогает визуализация (gitk)
• учите shell-команды git - в них самое
вкусное
• используйте хуки
• спрашивайте и узнавайте, в чём
проблемы
top related