Главная страница
Навигация по странице:

  • Примитивная модель хранения версий

  • Достоинства

  • Централизованные системы контроля версий

  • Децентрализованные системы контроля версий

  • Современные системы контроля версий

  • Лекция организация командной работы. Организация работы команды в системе контроля версий. Организация работы команды в системе контроля версий


    Скачать 194.24 Kb.
    НазваниеОрганизация работы команды в системе контроля версий
    АнкорЛекция организация командной работы
    Дата30.10.2022
    Размер194.24 Kb.
    Формат файлаdocx
    Имя файлаОрганизация работы команды в системе контроля версий.docx
    ТипДокументы
    #762314

    Организация работы команды в системе контроля версий.
    Системы контроля версий (их ещё называют системами управления версиями) –  один из инструментов, который использует в своей работе любой программист от первокурсника до опытного тим-лида с сотнями успешных проектов.

    — Ссылки на примеры кода в репозиториях помещают в своё портфолио.

    — Большие проекты с открытым программным кодом получают тысячи улучшений, благодаря размещению на специализированном хостинге.

    — От 30 до 70% кода, использованного в программном продукте, профессиональные разработчики могут скопировать с проектов, представленных в открытых репозиториях.

    Незаменимы системы контроля версий в командной разработке, где синхронизация процесса играет важную роль.

    Но даже если Вы принципиально не работаете в команде, система контроля версий может помочь Вам справиться со многими сложными ситуациями.

    С необходимостью отката программы к предыдущей версии рано или поздно сталкивается любой программист.

    В точке А программа отлично работает, а попытка расширить функционал, ввести дополнительные переменные, классы и пр. приводит в появлению ошибки.

    Распознать ошибку удаётся не всегда. Поэтому многие программисты предпочитают «пройти перезагрузку» — откатиться к стабильной рабочей версии и переписать дополнения заново, построчно анализируя весь добавленный код.

    Реализовать такую процедуру помогает использование системы контроля версий (СКВ), которое позволяет четко отследить историю разработки, найти стабильную версию и продолжить работу.

    В системе контроля версий может содержаться, как программный код, так и любая другая информация (включая текстовые файлы, изображения и т.п.)

    Примитивная модель хранения версий

    В примитивной модели актуальные копии проекта перезаписываются в отдельную директорию через определённый промежуток времени.
    Достоинства:

    — возможность восстановления данных одной из записанных версий.

    Недостатки:

    — сложности с поиском необходимой версии в обширной и плохо структурированной базе данных;

    — возможность потери данных вследствие возникновения физических поломок оборудования;

    — отсутствие возможности совместной разработки.

    Локальные системы контроля версий

    Локальные  СКВ обычно хранят на компьютере список изменений, внесенных в файлы. Основываясь на этих данных, система контроля версий воссоздает нужную версию файла (актуальную на определенный момент времени).



    Локальные системы контроля версий

     

    Достоинства:

    — возможность восстановления данных  из определенной версии (точно определяется по времени записи);

    — высокая скорость выполнения восстановления (база данных четко структурирована, поэтому сложностей при поиске не возникает, сетевая задержка отсутствует, поскольку данные хранятся непосредственно на рабочем компьютере).

    Недостатки:

    — возможность потери данных вследствие возникновения физических поломок оборудования;

    — отсутствие возможности совместной разработки.

    Централизованные системы контроля версий

    Централизованные  системы контроля версий предполагают сохранение версий проектов на  общий сервер, с которого потом получают нужные версии клиенты.



    Централизованные системы контроля версий

    Достоинства:

    — возможность восстановления данных  из определенной версии (точно определяется по времени записи);

    — возможность ведения командной разработки проекта;

    Недостатки:

    —  отсутствие доступа к данным при сбое работы сервера;

    — довольно низкая скорость работы (из-за возникновения сетевых задержек).

    Децентрализованные системы контроля версий

    В децентрализованных системах контроля версий при каждом копировании удалённого репозитория (расположенного на сервере) происходит полное копирование данных в локальный репозиторий (установленный на рабочем компьютере). Каждая копия содержит все данные, хранящиеся в удалённом репозитории. В случае, возникновения технической неисправности на стороне сервера, удаленный репозиторий можно перезаписать с любой сохраненной копии.



    Децентрализованные системы контроля версий

    Достоинства:

    — возможность восстановления данных  из определенной версии (точно определяется по времени записи);

    — возможность ведения командной разработки проекта;

    — при сбое работы сервера система сохраняет данные в локальном репозитории, что позволяет эффективно вести процесс разработки, а после восстановления работы сервера, передать все изменения в удаленный репозиторий;

    — при физической поломке сервера данные можно легко перенести в новый удалённый репозиторий с любого локального репозитория;

    — высокая скорость работы (в ходе работы данные записываются и получаются из локального репозитория, поэтому сетевые задержки отсутствуют).

    Современные системы контроля версий

    Существует много систем контроля версий (Git, Darcs, Mercurial, Bazaar, Monotone и т.д), сходных по принципу работы и конечным задачам. Отличаются они друг от друга архитектурой, использованными решениями и удобством работы.

    Самая популярная на сегодняшний день система контроля версий – Git.

    Git

     



    Git

     

    Умение работать с git’ом — обязательный навык для программиста любого профиля. Можно долго обсуждать преимущества и недостатки разных систем контроля версий, но большинство компаний используют git, поэтому уметь работать с  git’ом нужно всем.

    Git – распределённая система контроля версий. Что даёт ей все преимущества децентрализованной СКВ:

    — высокую скорость проведения всех операций (за счет отсутствия сетевой задержки);

    — идеальные условия для командной разработки;

    — страховку от потери информации при возникновении проблем с центральным сервером.

    Для контроля версий в git используются 2 репозитория: локальный и удаленный. Локальный репозиторий (полноценный репозиторий, а не ссылки или копии отдельных ветвей) находится на компьютере разработчика, а удаленный на удалённом сервере. Доступ к удаленному репозиторию обеспечивается  благодаря гит-хостингу Github, Google Code, GitLab и т.д.

    Как работает git

    Взаимодействие с удаленным репозиторием происходит при наличии интернета и, по сути, представляет собой синхронизацию двух репозиториев.

    Команда push копирует новые данные, содержащиеся в локальном репозитории, в удалённый репозиторий, а команда pull передает данные из удаленного репозитория в локальный.

    Каждая версия документа, внесенные обновления и т.д записываются в локальный репозиторий.

    Дерево проекта

    Дерево файлов в системе контроля версий

    В репозитории содержится «дерево» проекта, то есть все сохраненные версии файлов.

    Дерево может быть прямым (в этом случае каждое последующее сохранение файлов производилось после предыдущего без возвращения к более ранним версиям) и разветвленным.

    К появлению «веток» приводит работа с более ранними версиями и сохранение внесённых изменений.

    На различных ветках дерева  содержатся сохранения, основой которых был один исходный файл. В ходе работы в файлы на разных ветках были внесены разные изменения. В системе управления версиями можно работать со всеми ветками дерева проекта, пошагово, изменяя и дополняя содержащиеся в них данные. После проведения ряда изменений 2 ветки могут «срастись», в новой версии файла будут учтены все внесенные изменения.

    Git-хостинг

    Для комфортной работы с git нужно зарегистрироваться на любом git-хостинге. Их довольно много: GithubSourceforgeGoogle Code,  GitLabCodebase и т.д.

    Самый популярный на данный момент git-хостинг  – это Github.

    Популярность его обоснована простым интуитивно понятным интерфейсом, поддержкой проектов с открытым кодом (возможностью бесплатно размещать такие проекты на хостинге) и обширным функционалом.

    Git-клиент

    Для удобства работы с системой контроля версий git разработан целый ряд графических git-клиентов. Это программы, позволяющие эффективно работать с системой контроля версий, используя графический интерфейс.

    Многие IDE предполагают возможность работы с git.



    Работа с Git через IDE

    Работа с системами контроля версий  — важный навык, нужный каждому программисту.



    написать администратору сайта