Скачать презентацию Системы контроля версий Version Control Systems МАИ каф Скачать презентацию Системы контроля версий Version Control Systems МАИ каф

88b90dbd65b85a3abe6eaa16b583986e.ppt

  • Количество слайдов: 9

Системы контроля версий (Version Control Systems) МАИ, каф. 806, Гаврилов Евгений (eugavrilov at gmail. Системы контроля версий (Version Control Systems) МАИ, каф. 806, Гаврилов Евгений (eugavrilov at gmail. com)

Проблемы Работать вместе над одним кодом • Решение: единый репозиторий Хранить историю изменений • Проблемы Работать вместе над одним кодом • Решение: единый репозиторий Хранить историю изменений • Решение: хранить все изменения файлов в репозитории Разрабатывать параллельные версии программы • Решение: ветки и теги репозитория

Цикл работы с VCS (Subversion) 0. Checkout: cоздание локальной копии [1 раз] Репозиторий 1. Цикл работы с VCS (Subversion) 0. Checkout: cоздание локальной копии [1 раз] Репозиторий 1. Редактирование файлов локальной копии 2. Update: обновление локальной копии из репозитория Репозиторий 2. 1. Разрешение конфликтов (если в репозитории изменился тот же файл) 3. Commit: фиксирование изменений в репозиторий Репозиторий

Одновременный доступ • Пессимистическая блокировка – MS Visual Source Safe, Subversion Locks • Оптимистическая Одновременный доступ • Пессимистическая блокировка – MS Visual Source Safe, Subversion Locks • Оптимистическая блокировка – Merge (слияние изменений) – Unified Diff (формат хранения изменений)

Атомарный Commit – аналог транзакции – Atomicity: все, или ничего Repository – Consistency: ? Атомарный Commit – аналог транзакции – Atomicity: все, или ничего Repository – Consistency: ? ? ? – Isolation: ? ? ? – Durability: откат изменений невозможен

Advanced: trunk, tags, branches • Trunk – основная ветка разработки кода • Тег (tag): Advanced: trunk, tags, branches • Trunk – основная ветка разработки кода • Тег (tag): именованная метка на код в репозитории на определенный момент времени (snapshot) • Бранч (branch): копия кода в репозитории, предназначенная для параллельной работы над несколькими версиями системы.

Advanced: Branches • Для исправления ошибок в текущей версии системы (после code freeze), при Advanced: Branches • Для исправления ошибок в текущей версии системы (после code freeze), при параллельной разработки следующей версии Release 1 – исправление ошибок Code freeze merge Trunk – основная разработка • Для экспериментов над кодом текущей версии Create copy Experimental branch merge Trunk – основная разработка Final back merge

Системы контроля версий • CVS (бесплатный, очень популярный) • Subversion (Open. Source, простой, активно Системы контроля версий • CVS (бесплатный, очень популярный) • Subversion (Open. Source, простой, активно развивается, заменяет CVS) • Perforce (коммерческий, наиболее мощный) • MS Visual Source Safe (коммерческий, интеграция с MS) • Microsoft Team. FS (коммерческий, интеграция с MS, заменяет MS Source Safe) • Borland Star. Team • GIT / Mercurial

 • Tortoise. SVN – клиент windows для SVN • Tortoise. SVN – клиент windows для SVN