Version Control System
Сложности разработки
Сложности разработки
Совместная разработка
Куча разнообразного функционала
Ненужные изменения
Система контроля версий
Система контроля версий
Главная идея
Совместное редактирование
Совместное редактирование
Совместное редактирование
Совместное редактирование
Совместное редактирование
Последовательность изменений
Ответвления и слияния
История изменений
Составные части
Классификация VCS
Классификация
Наш выбор - Git
Итоги
Совместная разработка
Куча разнообразного функционала
Ненужные изменения
VCS – комфорт от которого не отказаться

ТРПО. Version Control System

1. Version Control System

Иван Домашних

2. Сложности разработки

3. Сложности разработки

Совместная разработка
Передача изменений другим
Объединение изменений
Куча разнообразного функционала
Что и зачем было сделано
Параллельная разработка функционала
Исправление багов в релизе
Ненужные изменения
Риск неудачного эксперимента
Риск оставить «хаки» и «хлам»
Случайные баги

4. Совместная разработка

Передача изменений другим
ZIP-архив на флешке или по email
Объединение изменений
Устное описание изменений и ручное объединение

5. Куча разнообразного функционала

Что и зачем было сделано
Хорошая память, комментирование кода
Параллельная разработка функционала
Последующее мучительное объединение изменений
Исправление багов в релизе
Исправление багов в релизе и актуальной версии

6. Ненужные изменения

Риск неудачного эксперимента
Ручной бэкап
Риск оставить «хаки» и «хлам»
Помнить о всех «хаках» и «хламе»
Случайные баги
Аккуратность и внимание

7. Система контроля версий

8. Система контроля версий

VCS – Version Control System
SCM - Source Code Management

9. Главная идея

Храним не файлы,
а изменения

10. Совместное редактирование

Сервер
Петя
Вася

11. Совместное редактирование

Сервер
Петя
Вася

12. Совместное редактирование

Петя
Вася

13. Совместное редактирование

Сервер
Изменения
Пети затерты!
Петя
Вася

14. Совместное редактирование

Сервер
Должно было
быть так!
Петя
Вася

15. Последовательность изменений

Создание файла
Изменения
Время

16. Ответвления и слияния

Время

17. История изменений

18. Составные части

Repository - репозиторий хранит историю
всех изменений
Working directory - можно получить
рабочую копию на любой момент

19. Классификация VCS

20.

CVS
Fossil
SVN
TFS
Bazaar
Git
Perforce
Veracity
Mercurial

21. Классификация

Локальные
• Тулзы для сравнения файлов
Централизованные
• Visual SourceSafe
• Subversion – SVN
Распределенные
• Git
• Mercurial – Hg

22. Наш выбор - Git

Распределенный
• Каждому по репозиторию
Поддерживается
• Есть в популярных IDE
e.g. Visual Studio, WebStorm
• Есть online-репозитории
e.g. GitHub, GitLab, BitBucket
Дает понимание
• Hg аналогичен
• SVN после Git тривиален

23. Итоги

24. Совместная разработка

Передача изменений другим
ZIP-архив на флешке или по email
Единое место хранения всех изменений
Объединение изменений
Устное описание изменений и ручное объединение
Автоматическое объединение в большинстве случаев

25. Куча разнообразного функционала

Что и зачем было сделано
Хорошая память, комментирование кода
История всех изменений с описанием и авторством
Параллельная разработка функционала
Последующее мучительное объединение изменений
Переключение на нужную ветку в истории
Исправление багов в релизе
Исправление багов в релизе и актуальной версии
Возможность слияния/копирования изменений

26. Ненужные изменения

Риск неудачного эксперимента
Ручной бэкап
Возможность отката изменений
Риск оставить «хаки» и «хлам»
Помнить о всех «хаках» и «хламе»
Просмотр изменений перед их публикацией
Случайные баги
Аккуратность и внимание
Просмотр изменений в любой момент

27. VCS – комфорт от которого не отказаться

28.

Вопросы?
English     Русский Правила