1 / 18

Михаил Пизик (miha@xbow.ru)

Организация работы коллектива программистов с использованием системы контроля версий на примере CVS. Михаил Пизик (miha@xbow.ru). Содержание доклада. Что такое Система контроля версий Почему CVS? Преимущества CVS Подготовка к работе с CVS Правило Полного обновления

eve-alford
Download Presentation

Михаил Пизик (miha@xbow.ru)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Организация работы коллектива программистов с использованием системы контроля версий на примере CVS. Михаил Пизик (miha@xbow.ru)

  2. Содержание доклада • Что такое Система контроля версий • Почему CVS? • Преимущества CVS • Подготовка к работе с CVS • Правило Полного обновления • Особенности работы с CVS

  3. Что такое Система контроля версий (1) • Когда возникает необходимость в Системе контроля версий? • Когда >= 1разработчика • Необходимо хранить историю развития проекта • Необходимость ведения нескольких веток проекта • Резервное копирование исходников

  4. Game.cpp v.1.0 Система контроля версий Game.cpp v.1.1 Game.cpp v.1.2 Репозиторий Game.cpp v.2.0 Что такое Система контроля версий (2) Клиент A Game.cpp v.2.0 Протокол Клиент B Game.cpp (изм.) Клиент C Game.cpp v.1.1

  5. Почему CVS? (1) • Опыт общения с VSS (3 месяца) • состояние неуверенности • ожидание разблокировки • куда делись изменения?!!! Вывод: мало знаний, что то не так… • Опыт общения с CVS (2года) • первых 3 месяца: опять что-то происходит не так • озарение! суть CVS в простоте! • выработаны правила работы с CVS • налаженная работа уже 2 года

  6. Почему CVS? (2) • Почему в начале было недоверие к CVS? • хорошая система бесплатной не бывает • она же под Unix! • сложности при настройке • непонятное поведение • Что теперь? • устойчивая работа 2 года • интенсивная работа c CVS во время дедлайна • легкое обучение новичков правилам работы

  7. Преимущества CVS (1) • Клиент-серверная архитектура • Полноценные ветки проекта • Прозрачный формат репозитория • Малый объём репозитория • Многопользовательское редактирование файлов • Статистика работы с файлами проекта • Доступ из WEB • Распространенность (www.sourceforge.net) • Цена, CVS – бесплатный продукт!

  8. Создание ветки: GUI_BRANCH Ветка разработки GUI TAG: GUI_VER_1_0 Внедрение GUI версия 1.0 Обязательно создать метки! TAG: GUI_VER_1_1 Обновление GUI версия 1.1 Изменения GUI между версией 1.0 и 1.1 Преимущества CVS (2) Ветки проекта: Основная ветка проекта - ствол

  9. Подготовка к работе с CVS (1) • Что из себя представляет CVS? • это в первую очередь инструмент • “заточен” для работы с текстовыми файлами • может хранить бинарные файлы, но не поддерживает слитие изменений для них • сервер (служба) и клиенты (консольные) • на сервере – Репозиторий с проектами • доступ по сетевым протоколам (сжатие, шифрование)

  10. Подготовка к работе с CVS (2) Для работы на Windows платформе: Сервер: CVS for NT (можно установить для Win9x, но будут ограничения) • Протокол: pserver(простота настройки) • Доступ только из локальной сети. • Клиент: WinCVS (консольная версия с оконным интерфейсом)

  11. Подготовка к работе с CVS (3) • Запустить сервер CVS • Создать репозиторий (указать в CVS for NT) • Создать пользователей для доступа к CVS • Перед началом с сервером Login • Закачать исходный проект в репозиторий (Import Module) • Для каждого разработчика скачать проект в рабочую папку (Checkout Module)

  12. Корневой каталог проектов Каталоги проектов Файлы выбранного каталога Логи и сообщения CVS Получить и Отправить выбранное в репозиторий Фильтр выводимых файлов Сравнение, статистика, граф версий, удаление Создание, удаление меток, создание веток Добавление и удаление файлов в репозитории WinCVS

  13. Локальные изменения Программиста Б, приведшие к конфликту Изменения, пришедшие с версией 1.2 (от Программиста A), с которыми произошёл конфликт. Локализованный конфликт Правило Полного обновления Пример конфликтной ситуации: Файл Track.cpp, версия1.1, строка: const int a = 0; Программист А изменил строку на: const int a = 1; и залил изменения в репозиторий(стала версия 1.2). Одновременно Программист Б изменил строку на: const int a = 20; и перед отправкой по правилу полностьюобновил проект. CVS обнаружил конфликт и обозначил его в файле так: <<<<<<< Track.cpp const int a = 20; ======= const int a = 1; >>>>>>> 1.2 В репозитории всегда храниться последняя, работоспособная версия. Шаги для Правила полного обновления: • Скачать ПОЛНОСТЬЮ все изменения проекта из репозитория. • Если есть конфликты изменений, исправить их. • Убедиться в работоспособности скаченных изменений (компиляция и проверка). • Убедиться, что за время проверки не появилось новых обновлений (шаг 1, F4 в WinCVS). • В конце ПОЛНОСТЬЮ залить изменения в репозиторий CVS. Программист Б сам, или с помощью программиста А выясняет, как исправить конфликт В итоге конфликт исправен, в репозиторий залита новая версия1.3: const int a = 21;

  14. Особенности работы с CVS (1) • Интеграция с IDE не нужна • Первого пользователя заводить по протоколу “local” • При импорте проекта корректно указывать типы файлов (текстовые: cpp, c, h, hpp, dsw, dsp, sln, vcproj, rc, xml) • Получать изначально проект из репозитория в пустую папку • Отдельно закачивать файл “*.vcproj” • Перегружать проект в 7-ой VisualStudio в ручную в случае обновления из репозитория файла “*.vcproj” • CVS никогда не даёт просто потерять исходники, а сохраняет их в определённом формате: “.#test.cpp.1.2”

  15. Особенности работы с CVS (2) • При полном обновлении полезно включить опцию “Create missing directories that exist in the repository” • Следить за вновь созданными файлами, не забывать добавлять их в репозиторий. • В настройках WinCVS лучше отключить опцию “Checkout read only” • Пользоваться фильтрами файлов в WinCVS • Внимание, при использовании Sticky option (вернуться к последней версии: “Reset any sticky date/tag options”) • При слитии веток рекомендуется всегда обозначать точку слития в исходной ветке меткой (TAG).

  16. Особенности работы с CVS (3) • Проверка возможных обновлений в WinCVS с помощью клавиши F4 • В среде CVS есть возможность использования ключевых слов (keywords) • Для удаления файла из репозитория пользоваться командной Remove в WinCVS для пометки его к удалению с последующим обновлением в репозиторий • При удалении всех файлов в каталоге CVS автоматически удаляет сам каталог при следующем обновлении • “Зависшие”lock`и в проекте можно убрать, удалив вручную найденный файл lock в репозитории CVS.

  17. Ссылки Ниже приведены ссылки, по которым можно скачатьнеобходимый для работы софт, а так же найтиподробную документацию по работе с CVS: • CVS: http://www.cvshome.org • CVS for NT: http://www.cvsnt.org • WinCVS: http://www.wincvs.org • Документация: http://www.cvs.ru

  18. Конец Вопросы? miha@xbow.ru mihapro@newmail.ru

More Related