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

Вы просматриваете версию 2.1. Для самой новой информации, перейдите на страницу Контроль версий и проектные репозитории для версии 4

This documentation page references Altium NEXUS/NEXUS Client (part of the deployed NEXUS solution), which has been discontinued. All your PCB design, data management and collaboration needs can now be delivered by Altium Designer and a connected Altium 365 Workspace. Check out the FAQs page for more information.

 

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

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

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

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

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

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

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

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

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

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

На изображении ниже показана концепция репозитория Subversion, который хранит последовательность ревизий проектных файлов (до ревизии 5), где самая новая ревизия извлечена (File » Check Out) в рабочую папку. При открытии файлов из рабочей папки в среде Altium NEXUS, система распознает, что они находятся под управлением контроля версий SVN, с отображением текущего статуса контроля версий в панели Storage Manager и в панели Projects.
Concept image showing how the files are managed by the Subversion Version Control System

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

На изображении ниже показана концепция удаленного репозитория Git, который хранит последовательность ревизий проектных файлов (до ревизии 5), где его содержимое было скопировано в локальный рабочий репозиторий Git, что, как правило, осуществляется клонированием удаленного репозитория или получением данных в рабочий репозиторий. При открытии файлов из рабочего репозитория в среде Altium NEXUS, система распознает, что они находятся под управлением контроля версий Git, с отображением текущего статуса контроля версий в панели Storage Manager и в панели Projects.
► Для получения более подробной информации перейдите в разделы Добавление в контроль версий Git и Клонирование репозитория Git.
Concept image showing how the files are managed by the Git Version Control System

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Чтобы создать локальный проектный репозиторий SVN, перейдите на страницу Data Management - Design Repositories диалогового окна Preferences и используйте кнопку Create New button, click to access the Create SVN Design Repository dialog, чтобы открыть диалоговое окно Create SVN Design Repository.

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

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

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

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

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

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

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

Add to Version Control dialog, used to add documents to the VCS repository 

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

Create Project dialog, showing how a new version-controlled project can be created

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

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

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

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

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

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

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

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

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

Ссылки

If you find an issue, select the text/image and pressCtrl + Enterto send us your feedback.
Content