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

Вы просматриваете версию 3.2. Для самой новой информации, перейдите на страницу Использование контроля версий для версии 4
Applies to NEXUS Client versions: 3.1 and 3.2

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.

 

Altium NEXUS поддерживает системы контроля версий (version control system, VCS) Subversion (SVN) и Git. Поскольку есть внутренняя поддержка этих систем, общие команды управления файлами SVN/Git, такие как фиксация (Commit), обновление (Update) и т.д., осуществляются в Altium NEXUS, а для Subversion также доступно создание репозитория SVN. Эти команды интегрированы с функциями сравнения схем и плат, что упрощает поиск различий между двумя ревизиями документов схем и плат и, для плат, устранение конфликтов двух ревизий с помощью функциональных возможностей совместной работы в Altium NEXUS.

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

Перед использованием контроля версий для проектов необходимо выполнить несколько предварительных действий:

  • Убедитесь, что в Altium NEXUS установлены дополнительные программные модули VCS Provider - SVN и VCS Provider - Git. Они устанавливаются по умолчанию, но доступ к ним можно получить на странице Extensions and Updates системы.
  • Проверьте, что на странице Data Management - Version Control диалогового окна Preferences Altium NEXUS включен контроль версий SVN.
  • Выберите и/или создайте проектный репозиторий SVN и подключите его к Altium NEXUS. Управление репозиториями Git осуществляется вне Altium NEXUS.

► Для получения более подробной информации по созданию репозиториев SVN и подключению к ним перейдите на страницу Репозитории VCS.

Доступ к контролю версий

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

Панели могут быть открыты с помощью меню кнопки в нижней правой части рабочей области или из главного меню View » Panels.

Панель Projects

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

Состояние контроля версий файла в панели обозначается иконками, которые соответствуют определенным состояниям файла, обнаруженным системой контроля версий. В общем виде, состояние каждого файла относится к его эквиваленту, который существует под контролем версий в подключенном репозитории. Команды VCS в панели Projects доступны в подменю Version Control контекстного меню панели.

Иконки состояния VCS панели отображаются, только когда включена опция Show VCS status (в области General) на странице System - Projects Panel диалогового окна Preferences. Чтобы изменение вступило в силу, может понадобиться перезапуск.

► Для получения более подробной информации перейдите на страницу Панель Projects.

Панель Storage Manager

Панель Storage Manager предоставляет расширенный вид активного документа с точки зрения хранения файла, а также предоставляет доступ к локальной истории документов и командам/состояниям контроля версий.

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

Команды контроля версий в панели Storage Manager доступны через контекстное меню. Чтобы выполнить над определенным файлом какое-либо действие, связанное с контролем версий, щелкните ПКМ по записи файла в панели и выберите необходимую команду, например для фиксации, обновления, устранения конфликта и т.д. Панель Storage Manager также включает в себя события VCS и истории в виде временных потоков в нижних частях панели.

► Для получения более подробной информации перейдите на страницу Панель Storage Manager.

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

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

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

Иконки и их значения:

[пусто]   Файл не находится под контролем версий в репозитории VCS.
Нет изменений Локальная копия файла соответствует файлу в репозитории, и она является актуальной.
Запланирован на добавление Файл был добавлен в контроль версий, но еще не был зафиксирован в репозитории VCS.
Изменен Локальная копия файла была изменена в Altium NEXUS и сохранена в рабочую папку. Зафиксируйте файл, чтобы создать новую ревизию в репозитории.
Не актуален Локальная копия файла (в рабочей папке) устарела по сравнению со своей ответной частью в репозитории, и следовательно, она не актуальна. Используйте обновление (Update) из системы контроля версий для получения самого нового файла из репозитория или сохраните файл, что создаст конфликт.
Конфликт Файл был зафиксирован другим пользователем Altium NEXUS перед тем, как вы зафиксировали собственную измененную и сохраненную версию этого файла. Используйте команды на обновление (Update), откат (Revert) или устранение, чтобы определить, какая из версий файла станет самой новой ревизией в репозитории.
Перед сервером (Git)

Файл в локальном рабочем репозитории является более новым по сравнению с его ответной частью в удаленном репозитории Git. Это происходит, когда локальная копия файла была изменена, сохранена и зафиксирована в локальном репозитории, но еще не была отправлена (Push) в удаленный репозиторий.

Запланирован на удаление Проектный файл был удален из контроля версий в Altium NEXUS, и он будет удален из репозитория и базы данных VCS при фиксации. Эта иконка также отображается, если файл не может быть найден в локальной рабочей папке (он был удален, переименован или перемещен), что можно устранить путем повторной загрузки данных в папку из репозитория с помощью команды Update.
Заблокирован Файл был заблокирован вами или другим пользователем. Другой пользователь не может обновить заблокированный файл до новой ревизии в репозитории, пока файл не будет разблокирован. Для обозначения заблокированного файла используется одна иконка, но текст иконки будет отображать, кто заблокировал файл: Locked by me (Заблокирован мной) или Locked by someone else (Заблокирован кем-то другим). Текст также может обозначать комбинированное состояние, например Modified and locked by me (Изменен и заблокирован мной).

Чтобы обновить текущее состояние контроля версий для записи каждого файла, выберите команду Version Control » Refresh из контекстного меню панели (или нажмите F5).

Наведите курсор мыши на иконку VCS в панели Projects, чтобы увидеть ее значение.

► Перейдите в раздел Терминология контроля версий для получения информации по определениям функций контроля версий, таким как фиксация, извлечение и т.д.

Добавление в контроль версий SVN

В общем случае, проектные файлы могут быть добавлены в репозиторий контроля версий с помощью команд панелей Projects и Storage Manager, и этот процесс включает в себя этапы регистрации файлов на добавление и последующей их фиксации в VCS.

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

Добавление проекта

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

Будет открыто диалоговое окно Add to Version Control с опциями для выбора целевого проектного репозитория и подпапки. Используйте кнопку , чтобы автоматически создать подпапку репозитория с именем папки исходного проекта – нажмите , чтобы подтвердить настройки. После этого в диалоговом окне будут отображены записи файлов из исходной папки, где будут выбраны входящие в состав проекта файлы – используйте флажки, чтобы включать и исключать файлы, если это необходимо.

Нажмите , чтобы подтвердить выбор – обратите внимание, что у записей файлов в панели Projects теперь будет отображено состояние Scheduled for addition (Запланирован на добавление, ). Это значит, что VCS зарегистрировала файлы на добавление в контроль версий, и они готовы к фиксации в репозитории VCS.

Фиксация проекта

Файлы с состоянием Scheduled for addition () будут добавлены в контроль версий и проектный репозиторий при их фиксации (Commit). Для этого выберите команду Version Control » Commit Whole Project из контекстного меню панели Projects, чтобы начать этот процесс.

Будет открыто диалоговое окно Add to Version Control, которое позволяет снять выделение с отдельных проектных файлов (или выделить дополнительные файлы) для их включения в контроль версий. Также можно добавить комментарий, который будет включен в предстоящую ревизию VCS.

Проект и входящие в его состав документы будут затем скопированы в репозиторий VCS и зарегистрированы в качестве новой ревизии, и состояние файлов в панелях Altium NEXUS изменится на No Modification (Нет изменений, ).

Для получения более подробной информации по новой ревизии, откройте любой проектный документ на редактирование и затем выберите файл в панели Storage Manager. История ревизий и локальная история выбранного файла будет отображена в нижней части панели, либо можно увидеть общую временную шкалу событий при переключении в "классический вид" – команда Switch to Classic View из контекстного меню. Отображенный номер ревизии будет увеличиваться с каждой фиксацией VCS, где первая ревизия (ревизия 1) соответствует созданию папок VCS проекта перед добавлением файлов.

После того, как проект добавлен в контроль версий, вы можете добавлять и фиксировать файлы в контроль версий по отдельности с помощью команд Add to Version Control и Commit. Аналогичным образом, отдельные файлы могут быть по отдельности удалены из контроля версий (но сохранены в локальном рабочем проекте) с помощью команды Remove from Version Control.

Добавление в контроль версий Git

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

► Перейдите на веб-сайт Git для получения более подробной информации и на страницу основ контроля версий для обзора применяемых принципов.

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

Удаленный репозиторий также может быть репозиторием Git общедоступного типа (чистым) в удобном расположении, таком как общий сетевой ресурс. Чтобы создать общедоступный удаленный репозиторий Git с помощью консольных средств Git, используйте команду git init --bare.

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

Добавление проекта в Git

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

Здесь эти средства используются для следующих задач:

  1. Создание (инициализация) рабочего репозитория Git в папке проекта.
  2. Добавление проектный файлов в контроль версий Git. Шаблон *.* добавляет файлы, но не папки.
  3. Определение ссылки на общедоступный удаленный репозиторий Git на веб-сервере. PCrepo является указанным локальным псевдонимом URL удаленного репозитория.

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

Когда проект открыт в Altium NEXUS, состоянием его файлов в панелях Projects и Storage Manager будет Scheduled for Addition (). При последующей фиксации в рабочем репозитории, состояние файлов изменится на Ahead of Server (Перед сервером, ), поскольку они еще не находятся под контролем версий удаленного репозитория Git.

Команда Push отправит файлы локального репозитория в удаленный сервер Git, что может потребовать ввода корректных учетных данных доступа к целевому репозиторию (это нужно будет сделать лишь один раз). Обратите внимание, что операции Commit и Push могут быть выполнены за одно действие в Altium NEXUS ( ), но здесь, с целью объяснения, они будут выполнены по отдельности.

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

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

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

Добавление новых изменений в контроль версий

Когда проект добавлен в контроль версий, его локальная рабочая папка становится привязанной к ее ответной части в репозитории VCS, что обозначено иконкой связи у записей папок проекта в панели Storage Manager. Чтобы узнать расположение связанной папки и репозитория, щелкните ПКМ по записи файла в панели и выберите VCS Properties (не доступно при использовании Git). Будет открыто диалоговое окно Properties, которое включает в себя пути связанных расположений и информацию о самой новой ревизии VCS.

Благодаря этой ссылке, система контроля версия может отслеживать и обнаруживать различия между файлами в локальной папке проекта и их эквивалентами в папке репозитория VCS. При обнаружении различия, например когда проектный файл был изменен и сохранен в Altium NEXUS, система контроля версий изменит состояние локального файла на Modified (Изменен, ), и Altium NEXUS предложит соответствующий набор команд VCS в контекстном меню панелей.

Фиксация изменений

После того, как проектный файл был изменен и сохранен в Altium NEXUS, он помечается как измененный (Modified) и отображается с соответствующей иконкой () в панелях Projects и Storage Manager. Чтобы зафиксировать эти изменения в качестве новой ревизии в VCS, щелкните ПКМ по записи файла в панели и выберите команду Commit контекстного меню. Можно также использовать команду Commit Whole Project, что зафиксирует все измененные файлы в проекте.

  • При использовании Subversion (SVN): Процесс фиксации скопирует обновленные файлы из локальной папки в репозиторий, с увеличением номера ревизии записи в VCS и заданием состояния файла No Modification (Нет изменений, ).
  • При использовании Git: Процесс фиксации обновит локальный рабочий репозиторий VCS, с увеличением номера ревизии записи и заданием состояния файла Ahead of Server (Перед сервером, ). Вы можете продолжить редактировать, сохранять и фиксировать файлы в рабочем репозитории или опубликовать новые изменения с помощью команды Push для обновления удаленного репозитория Git – будет возвращено состояние файла No Modification (Нет изменений, ).

Откройте панель Storage Manager, чтобы увидеть последовательность действий в области VCS Revisions, которая будет включать в себя создание новой ревизии VCS (с увеличенным номером ревизии) для этого файла – в этом случае, ревизия 3 и добавленный к ней комментарий. Иконка обозначает самую новую и текущую ревизию выбранного файла, или, в терминах контроля версий, ревизию Head.

Для комбинированного вида записей ревизий и событий истории, измените его на единый вид, выбрав команду Switch to Combined View из контекстного меню.

Извлечение из контроля версий

Как обозначено выше, локальный проект, который был добавлен в контроль версий, может быть изменен в Altium NEXUS из локальной папки проекта, и затем эти изменения передаются в репозиторий VCS. Локальная папки и папка репозитория связаны между собой, и они, в конечно счете, синхронизируются системой VCS.

Проект под управлением Git может быть извлечен из удаленного репозитория Git путем клонирования этого репозитория в локальный рабочий репозиторий – см. ниже.

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

► Для получения информации по доступу к проектным репозиториям перейдите в раздел Репозитории VCS.

Чтобы извлечь проект из репозитория, выберите команду File » Check Out из главного меню Altium NEXUS. Используйте открывшееся диалоговое окно Check Out, чтобы выбрать нужный репозиторий из выпадающего меню, или используйте кнопку , чтобы задать новое подключение к репозиторию на странице Data Management - Design Repositories диалогового окна Preferences. Опцию Check out to можно изменить для переопределения пути, заданного при изначальной настройке подключения к репозиторию.

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

По завершении редактирования файла зафиксируйте (Commit) изменения для синхронизации файлов в проектном репозитории с соответствующими файлами в папке извлечения, с созданием новой ревизии VCS.

Извлечение и открытие проекта

Когда локальный проект был добавлен в контроль версий, есть два способа, с помощью которых его можно изменять и обновлять в VCS:

  • Открытие локального проекта (File » Open Project) в Altium NEXUS и фиксация сохраненных изменений в репозиторий VCS.

    В этом случае, системой VCS связаны папка локального проекта и ее ответная часть в репозитории.

  • Извлечение проекта (File » Check Out) из репозитория VCS и последующая фиксация в репозитории сохраненных изменений, выполненных в Altium NEXUS.

    В этом случае, системой VCS связаны проект в указанной папке извлечения и его ответная часть в репозитории.

Локальный проект является источником проекта VCS, который доступен другим пользователям. В зависимости от предпочитаемого режима работы, эта локальная исходная версия может быть удалена или заблокирована как архивный источник проекта, и для выполнения последующих изменений будет использоваться подход Check Out. Либо вы можете продолжить открывать проектные файлы и работать с ними из локальной "исходной" папки (Open Project).

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

Если проект не доступен локально, как в случае другого пользователя, то единственным вариантом будет извлечение проекта из репозитория VCS. Аналогичный процесс при использовании Git см. ниже.

Также обратите внимание, что при первом извлечении проекта из репозитория VCS, он существует локально, и его можно повторно открыть непосредственно из папки извлечения (File » Open Project). В этом случае, здесь, опять же, будет выбор извлечения проекта из VCS (File » Check Out) или открытия локальной версии (Open Project), но здесь всегда будет только одна локальная копия. С точки зрения практического использования VCS, эти два метода очень схожи между собой, но в некоторых случаях они будут вести себя по-разному – например, когда локальный файл не найден, он будет восстановлен при использовании команды Check Out, но при использовании команды Open Project он будет удален из проекта.

Клонирование репозитория Git

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

Другие пользователи, которые хотят совместно работать над проектом, могут получить доступ к нему путем клонирования удаленного репозитория Git в локальный рабочий репозиторий. Хотя подход доступа к файлам из удаленного репозитория Git будет отличаться для различных корпоративных систем и методов, базовым способом клонирования содержимого из удаленного репозитория в локальный репозиторий является использование команды Git: git clone [URL удаленного репозитория] [папка целевого рабочего репозитория], как показано на изображении ниже.

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

Ревизии контроля версий

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

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

Неактуальная ревизия

Взаимодействие между несколькими проектировщиками и центральным хранилищем может проявляться различными способами, одним из которых является то, что локально открытый проект больше не является самой новой ревизией – у проекта, извлеченного из репозитория или открытого из локальной рабочей папки, будет состояние Out of date (Не актуален, ) в панели Projects.

В этом случае, другой пользователь изменил и зафиксировал тот же проект в репозитории с момента его последнего локального изменения. Например, локальный пользователь Barry работал над проектом и зафиксировал ревизию Revision 14, а другой пользователь, Harold, зафиксировал после этого ревизию Revision 15, как показано в панели Storage Manager ниже. Поскольку VCS ищет различия между файлом в локальной рабочей папке и его ответной частью в репозитории (которая, в данном случае, является более новой), система отображает самую новую локальную ревизию (обозначенную иконкой ) как неактуальную.

Вы можете использовать функцию Compare в Altium NEXUS для определения различий между ревизиями файла.

Эта ситуация исправляется обновлением локальных файлов, чтобы они соответствовали файлам в центральном репозитории VCS, с помощью команды Update из контекстного меню панели Projects или Storage Manager. После этого две версии файла будут синхронизированы, и локальная версия (для пользователя Barry) будет обновлена до самой новой ревизии – в этом примере, до ревизии Revision 15. Обратите внимание, что если вы сохранили (Save) файл, обозначенный как неактуальный (Out of date) это создаст конфликтную ситуацию контроля версий (Conflict), где VCS обнаружит, что более старая ревизия файла была обновлена в рабочей папке.

Файл не будет отображать состояние Out of date, если проект был открыт из локальной папки извлечения, а не был извлечен из репозитория. Команда Refresh панели Storage Manager (или нажатие клавиши F5) может исправить это, запустив сравнение связанных папок. Тем не менее, эта ситуация является еще одной иллюстрацией, по которой проекты следует извлекать из репозитория (а не открывать локально) при совместной работе с центральным репозиторием SVN.

Конфликт ревизий

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

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

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

Панель Storage Manager предлагает несколько команд, которые можно использовать, когда файл находится в состоянии Conflict:

  • Commit (Зафиксировать) – этот вариант создаст ошибку Subversion, поскольку фиксация локально измененной ревизии (например, Revision 15) перезапишет более новую ревизию (Revision 16), уже зафиксированную другим пользователем.
  • Update (Обновить) – этот вариант обновит локальную ревизию файла до самой новой версии из центрального репозитория (Revision 16), соответственно, все локальные изменения ревизии Revision 15 будут потеряны.
  • Resolve Conflict (Устранить конфликт) – этот вариант обновит файл в рабочей папке до самой новой ревизии (Revision 16), но позволит редактору сохранить совершенные изменения (над ревизией Revision 15). Локальный файл, соответственно, будет в состоянии Modified (Изменен), что позволит зафиксировать изменения в новую ревизию, которая станет ревизией Revision 17. Другой пользователь затем увидит, что файл неактуален (Out of date), поскольку вы создали более новую ревизию.
  • Revert (Откатить) – этот вариант отменит локальные изменения, откатив локальный файл до его базовой ревизии – Revision 15 в этом примере. Конфликт ревизий, таким образом, решен, но файл будет помечен как неактуальный (Out of date), поскольку в репозитории существует более новая ревизия (Revision 16).

По сути, эти команды панели позволяют принять самую новую ревизию файла (Update), создать новую ревизию (Resolve Conflict) или просто отменить локальные изменения (Revert).

Сравнение ревизий

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

► Для получения более подробной информации о навигации по различиям перейдите на страницу Панель Differences.

Чтобы начать сравнение двух ревизий, выберите обе записи (с помощью стандартного сочетания Ctrl+ЛКМ) в списке VCS Revisions панели Storage Manager и выберите команду Compare из контекстного меню панели.

Обе ревизии файла будут открыты в режиме разделенного экрана для их визуального сравнения. Отображаемые различия определяются опциями, выбранными для типов физического сравнения на вкладке Comparator диалогового окна Options for ProjectProject » Project Options.

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

Функция сравнения также применима к ревизиям документов плат, а также к ревизиям документов схем и текстовых документов.

Команду Compare также можно применить к любой паре ревизий, в том числе к текущей локальной ревизии (в рабочей папке) и к более новой ревизии в репозитории. В этом случае, самая новая локальная ревизия будет обозначена в панели Storage Manager как неактуальная (Out of date, ), но тем не менее, она будет сравниваться с более новой ревизией, которая была добавлена в репозиторий другим пользователем.

Этот подход позволяет предварительно графически просматривать изменения, которые будут применены при обновлении до более новой ревизии. В примере на изображении ниже, текущая локальная ревизия (обозначенная иконкой ) является ревизией Revision 19, но другой пользователь зафиксировал в репозитории более новую ревизию (Revision 22). Визуальное сравнение ревизий Revision 19 и Revision 22 позволяет принять взвешенное решение по принятию новых изменений из репозитория и, соответственно, применить команду Update, или отменить их, вызвав конфликт, при пересохранении локального файла и устранении конфликта в пользу локальной версии.

► Также перейдите на страницу панели Collaborate, Compare and Merge для получения информации об использовании расширенных функциональных возможностей совместной работы над платой в Altium NEXUS.

Content