Контроль версий и проектные репозитории

Вы просматриваете версию 20.1. Для самой новой информации, перейдите на страницу Контроль версий и проектные репозитории для версии 21
Applies to Altium Designer versions: 20.1 and 20.2
 

Одним из основных преимуществ виртуальной среды является простота создания и редактирования файлов. Эта возможность означает, что вы можете быстро фиксировать, изучать и развивать идеи, но это также означает, что может быть сложно отследить изменения, совершенные над вашими ценными файлами, такими как исходный код или проекты электроники.

Необходимость в отслеживании изменений файлов в сочетании с необходимостью в комплексном решении для управления исходными данными, зафиксированными в электронном виде, привело к развитию систем контроля версий (Version Control Systems, VCS). Системы контроля версий являются программными средствами, которые могут не только сопровождать историю различных версий файла, но и также поддерживают открытие любой версии этого файла, а также сравнение любых двух версий файла. Система VCS, как правило, интегрируются с локальной операционной системой (ОС), что предоставляет доступ к дополнительным функциям и операциям над папками и файлами.

Системы контроля версий могут работать совершенно независимо от среды, используемой для создания и изменения файла. Как правило, они предоставляют интерфейс, который позволяет добавлять (Add) файлы в центральную область хранения, которая называется репозиторием, извлекать (Checkout) копию файла из репозитория в рабочую папку, затем фиксировать (Commit) изменения в репозиторий, вместе с пояснениями по изменениям, и многое другое.

Эти возможности предоставляются расширениями оболочки Windows, такими как клиент Tortoise, а также они включены в сам Altium Designer. Операции VCS могут быть выполнены из среды Altium Designer, без необходимости в доступе к файловой системе ОС.

Как правило, система контроля версий также обрабатывает ситуации, когда файл был извлечен и изменен множеством людей, которые затем могут вернуть свои изменения, накладывая их друг на друга, что потенциально может привести к потере работы проектировщиков в самой новой ревизии. Для работы с подобными ситуациями необходимы средства сравнения версий файла для поиска различий, а также интерактивное средство для объединения различий в одну версию файла, такое как возможность совместной работы над платой, доступная в Altium Designer.

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

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

Основным подходом к работе с системой контроля версий (Version Control System, VCS) является доступ к копии проектных файлов, с которыми вы хотите работать, из репозитория, редактирование этих файлов в Altium Designer и их последующая фиксация в репозитории. Взаимодействие с репозиторием осуществляется через интерфейс системы контроля версий, который в Altium Designer встроен в панель Storage Manager и в панель Projects.

Ключевым аспектом работы системы контроля версий является то, что она отслеживает состояние файлов, к которым осуществлен доступ из репозитория, через рабочую папку, и, соответственно, отслеживает, над какой ревизией осуществляется работа и осуществляется ли над ней работа. Хотя результат работы один и тот же, работа с репозиторием и рабочими файлами отличается для различных систем контроля версий – для Altium Designer это может быть Subversion (SVN) или Git.

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

На изображении ниже показана концепция репозитория Subversion, который хранит последовательность ревизий проектных файлов (до ревизии 5), где самая новая ревизия извлечена (File » Check Out) в рабочую папку. При открытии файлов из рабочей папки в среде Altium Designer, система распознает, что они находятся под управлением контроля версий SVN, с отображением текущего статуса контроля версий в панели Storage Manager и в панели Projects.
Рисунок, иллюстрирующий управление файлами с помощью системы контроля версий Subversion

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

На изображении ниже показана концепция удаленного репозитория Git, который хранит последовательность ревизий проектных файлов (до ревизии 5), где его содержимое было скопировано в локальный рабочий репозиторий Git, что, как правило, осуществляется клонированием удаленного репозитория или получением данных в рабочий репозиторий. При открытии файлов из рабочего репозитория в среде Altium Designer, система распознает, что они находятся под управлением контроля версий Git, с отображением текущего статуса контроля версий в панели Storage Manager и в панели Projects.
► Для получения более подробной информации перейдите в разделы Добавление в контроль версий Git и Клонирование репозитория Git.
Рисунок, иллюстрирующий управление файлами с помощью системы контроля версий Git

В обеих системах VCS, показанных выше, ссылка между исходным репозиторием и рабочим расположением указывается в базе данных системы VCS рабочего расположения (в системной подпапке .svn или .git).

► Для получения более подробной информации по работе с системами контроля версий SVN и Git в Altium Designer перейдите на страницу Использования контроля версий.

Когда рабочие файлы VCS открыты в Altium Designer, контекстное меню панели Storage Manager (и панели Projects) позволяет выполнять стандартные операции VCS, такие как фиксация измененного файла в центральном репозитории (SVN) или рабочем репозитории (Git).

Команда Commit регистрирует измененный файл в репозитории, увеличивает номер ревизии (которая хранится внутри VCS), регистрирует сообщение, которое вы можете ввести для описания изменения файла, и, в случае Subversion, сохраняет копию файла в центральном репозитории. Для Git, измененный файл может быть в любое время скопирован из рабочего репозитория в удаленный репозиторий с помощью команды Push.

Доступ к интерфейсу контроля версий Altium Designer осуществляется непосредственно из панели Projects или из панели Storage Manager, где доступно больше опций.
Доступ к интерфейсу контроля версий Altium Designer осуществляется непосредственно из панели Projects или из панели Storage Manager, где доступно больше опций.

Функциональные возможности управления версиями SVN и Git доступны в Altium Designer благодаря соответствующим дополнительным программным модулям: VCS Provider - SVN и VCS Provider - Git. Они устанавливаются по умолчанию, и доступ к ним можно осуществить с помощью страницы Extension & Updates системы.

Доступ множества пользователей

В большинстве ситуаций, инфраструктура контроля версий предприятия основана на центральных серверных репозиториях SVN или Git, обслуживаемых в локальной сети с помощью одного из доступных протоколов: svn, svn+ssh, https и т.д. Это обеспечивает всех пользователей сети доступом, на основе серверных разрешений, и средством для совместной разработки проекта из единого управляемого ресурса.

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

Тем не менее, система VCS для совместной работы требует средств и методов для разрешения неизбежных ситуаций, когда два пользователя изменили один и тот же файл. Когда эти возможности доступны, существует основа для настоящей совместной работы множества пользователей и связанных с ней преимуществ.

Для работы с подобными ситуациями, Altium Designer включает в себя возможности сравнения схем и плат, доступные через панели Storage Manager и Collaborate, Compare and Merge. Altium Designer предлагает полноценные функциональные возможности совместного проектирования плат, которые позволяют просматривать и разрешать различия файлов в редакторе и, в конечном счете, создавать новую основную ревизию в VCS. Расширенная функциональность совместной работы над платой также позволяет динамически проводить совместную работу множества пользователей, с возможностью определять и назначать области проекта в качестве рабочих регионов пользователя.

► Для получения руководства по использованию контроля версий для проекта в Altium Designer перейдите на страницу Использование контроля версий.

Репозитории VCS

Перед использованием контроля версий, проектные файлы должны быть распознаны системой VCS и Altium Designer, как находящиеся под контролем версий. Этот процесс может отличаться для различных методов и приложений VCS, но, по сути, он включает в себя создание и/или подключение к проектному репозиторию и добавление проектных файлов в этот репозиторий.

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

В зависимости от типа репозитория, он будет доступен с помощью различных протоколов, которые включают в себя:

  • Простой файловый доступ, который обычно используется для локальных или сетевых репозиториев.
  • Протокол svn для серверного репозитория, использующий плоский текст или TCP/IP или его безопасный эквивалент svn+ssh.
  • Метод http для серверного репозитория, как правило использующий WebDAV через http или его безопасный эквивалент https.

Подключение к репозиториям Subversion (SVN) и, при необходимости, их создание, осуществляется на странице Data Management - Design Repositories диалогового окна Preferences.

  • Репозитории типа Git создаются вне Altium Designer, и доступ к локальному рабочему репозиторию Git осуществляется путем открытия файлов из его хост-папки.
  • Управление удаленным и локальным репозиториями Git осуществляется, как правило, через корпоративные системы или внешние средства Git, где операции на уровне файлов (фиксация, передача, обновление и т.д.) обрабатываются в среде редактирования Altium Designer.
  • При использовании управляемых проектов на сервере управляемых данных Altium управление репозиториями осуществляется автоматически.

Подключение к репозиторию SVN

Чтобы подключиться к существующему проектному репозиторию SVN, на странице Data Management – Design Repositories диалогового окна Preferences нажмите кнопку  Кнопка Connect To, по нажатию которой открывается диалоговое окно SVN Design Repository и выберите SVN из соответствующего меню. Будет открыто диалоговое окно SVN Design Repository, в котором представлены настройки Design Repository Properties, позволяющие определить локальное имя подключения к репозиторию и его путь целевой папки для извлечения проектных файлов.

При регистрации существующего репозитория SVN в Altium Designer, проектные файлы могут быть включены в систему управления Subversion.
При регистрации существующего репозитория SVN в Altium Designer, проектные файлы могут быть включены в систему управления Subversion.

Параметры Repository диалогового окна необходимо настроить в соответствии с расположением доступного репозитория, опциональной целевой подпапкой и совместимым протоколом для подключения. Обратите внимание, что для методов доступа svn и http необходима дополнительная информация, которая относится к хост-серверу и учетных данных доступа к нему.

В этом процессе подключения нет необходимости, если репозиторий доступен на сервере управляемых данных Altium. Altium Designer автоматически подключается к серверным репозиториям SVN/Git при входе пользователя на сервер. См. Доступ к серверу из Altium Designer.

Для получения более подробной информации перейдите на страницы:
► Страница Data Management - Design Repositories диалогового окна Preferences.
► Страница диалогового окна SVN Design Repository.

Создание репозитория SVN

Чтобы создать локальный проектный репозиторий SVN, перейдите на страницу Data Management - Design Repositories диалогового окна Preferences и используйте кнопку  Кнопка Create New, по нажатию которой открывается диалоговое окно Create SVN Design Repository, чтобы открыть диалоговое окно Create SVN Design Repository.

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

Укажите или создайте локальную папку, которая будет настроена в качестве репозитория VCS.Укажите или создайте локальную папку, которая будет настроена в качестве репозитория VCS.

После этого, установленная система VCS создаст корректную структуру файлов и базу данных контроля версий в указанной папке репозитория. После того, как новый репозиторий создан и зарегистрирован, его запись будет отображена в списке на странице Data Management - Design Repositories диалогового окна Preferences. Нажмите Кнопка OK диалогового окна или Кнопка Apply диалогового окна, чтобы подтвердить изменения.

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

Использование репозитория SVN

Когда в Altium Designer доступен новый или существующие репозиторий, проектные файлы могут быть добавлены в репозиторий и извлечены из него с помощью панелей Storage Manager и Projects и команд главного меню. Поскольку файлы репозитория находятся под контролем версий, все ревизии отслеживаются из Altium Designer.

Используйте команду Add Project Folder to Version Control контекстного меню записи проекта в панелях Storage Manager и Projects для добавления и последующей фиксации всей папки проекта (и входящих в его состав файлов) в контроль версий.

Диалоговое окно Add to Version Control, используемое для добавления документов в репозиторий VCS 

Либо новый проект может быть добавлен в контроль версий при его создании с помощью диалогового окна Create ProjectFile » New » Project. Выберите Version Control в списке Locations в левой части диалогового окна и выберите целевой репозиторий из списка зарегистрированных репозиториев в выпадающем меню Repository.

Диалоговое окно Create Project, показывающее, как может быть создан новый проект под управлением контроля версий

Опция Local Storage в диалоговом окне Create Project определяет, где хранится рабочая копия проекта. Именно эти файлы открываются и редактируются в Altium Designer и, в конечном счете, фиксируются в репозитории по завершении редактирования. Рабочую копию проекта можно повторно открыть на редактирование с помощью команды File » Open Project или списка File » Recent Projects.

При необходимости, новый экземпляр проекта можно извлечь в новую рабочую папку и загрузить в Altium Designer с помощью команды File » Check Out, как показано ниже.

После того, как совместимый репозиторий VCS стал доступен в Altium Designer, проектные файлы могут быть добавлены в репозиторий и извлечены из него.
После того, как совместимый репозиторий VCS стал доступен в Altium Designer, проектные файлы могут быть добавлены в репозиторий и извлечены из него.

Система контроля версий сервера управляемых данных Altium

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

Целевой репозиторий VCS на сервере управляемых данных тесно интегрирован с сервером и Altium Designer (при входе на сервер), что устраняет необходимость в определении и настройке отдельных репозиториев VCS. Права доступа пользователя/групп, содержимое репозитория и состояние проектов могут управляться через веб-интерфейс сервера.

Чтобы узнать больше об управляемых проектах, перейдите на страницы:
Управляемые проекты и выпуск проекта
Работа с сервером управляемых данных

Дополнительная информация

Терминология контроля версий

Ссылки

Примечание

Доступные функциональные возможности зависят от вашего уровня Подписки на ПО Altium Designer.

Content