Контроль версий на основе SVN
В зависимости от типа репозитория он будет доступен через ряд протоколов, включая:
- Обычный доступ к файлам, который обычно используется для локальных или сетевых репозиториев.
-
Протокол
svn, с использованием простого текста или TCP/IP — либо его защищённыйsvn+sshэквивалент. -
Метод
http, как правило с использованием WebDAV поверх http — либо его защищённыйhttpsэквивалент.
Репозитории Subversion (SVN) подключаются и при необходимости создаются на странице Data Management – Design Repositories page диалогового окна Preferences.
Управление SVN-репозиториями проектов
SVN-репозитории проектов управляются на странице Data Management – Design Repositories page диалогового окна Preferences. На этой странице можно выполнить ряд действий, включая:
-
Создание новых файловых SVN-репозиториев с использованием возможностей контроля версий, встроенных в Altium Designer.
-
Подключение к существующим SVN-репозиториям.
-
Управление активным состоянием каждого определённого репозитория.
Для каждого зарегистрированного, точнее подключённого, репозитория отображается следующая информация:
- Name – осмысленное имя репозитория. Оно может, например, отражать проекты, хранящиеся в репозитории. Это имя используется в других местах программы для быстрого выбора репозитория проектов, который нужно использовать, например при открытии проекта из системы контроля версий.
- Activated – доступен ли репозиторий для использования системой (включён) или нет (отключён). Вновь созданный или подключённый репозиторий по умолчанию будет активирован.
- Type – тип репозитория; SVN или Git.
- Repository – URL корневой папки репозитория.
- Status – успешно ли установлено соединение между Altium Designer и репозиторием или нет Если соединение не удалось, будет показан комментарий с указанием проблемы.
Создание нового SVN-репозитория
Создание новых репозиториев проектов из Altium Designer выполняется на странице Data Management – Design Repositories page диалогового окна Preferences. Нажмите кнопку
и выберите SVN в соответствующем раскрывающемся меню. Появится диалоговое окно Create SVN Design Repository.
Диалоговое окно предоставляет набор параметров конфигурации, позволяющих задать расположение папки репозитория и метод (протокол подключения), а также локальное имя подключения и путь к целевой папке для извлечённых (checked-out) проектных файлов. Обратите внимание, что методы доступа svn и http требуют дополнительной информации, связанной с хост-системой и доступом к ней.
После задания всех необходимых параметров нажмите OK. Репозиторий будет создан в указанном месте, и Altium Designer установит к нему подключение. Запись о нём появится в списке репозиториев проектов на странице Data Management – Design Repositories диалогового окна Preferences.

Пример вновь созданного SVN-репозитория проектов, отображаемого в Altium Designer как Local Repository.
Подключение к существующему SVN-репозиторию
В среде совместной работы один или несколько репозиториев проектов могли уже быть созданы в месте, доступном нескольким пользователям. В этом случае вам не нужно создавать новый репозиторий — «изобретать велосипед», — достаточно просто подключиться к нужному существующему репозиторию. Это также актуально, если вы удалили репозиторий из своего списка репозиториев и хотите добавить его обратно.
Чтобы подключиться к существующему репозиторию, на странице Data Management – Design Repositories диалогового окна Preferences нажмите кнопку
и выберите SVN в соответствующем раскрывающемся меню. Появится диалоговое окно SVN Design Repository. Введите имя, под которым репозиторий будет отображаться в Altium Designer, задайте путь checkout по умолчанию, а также укажите метод доступа к репозиторию и путь к корневой папке репозитория. Также можно указать конкретную подпапку внутри репозитория.
После задания всех необходимых параметров нажмите OK — будет установлено соединение, и репозиторий будет готов к использованию.
Подключение к существующему репозиторию — в данном случае это локальный репозиторий на жёстком диске.
Подключение к существующему репозиторию — в данном случае это репозиторий, находящийся внутри серверной установки.
Options and Controls of the SVN Design Repository Dialog
Свойства репозитория проектов
- Name — просмотреть и/или изменить имя репозитория проектов.
- Default Checkout Path — нажмите кнопку обзора (browse) в текстовом поле, чтобы найти и выбрать папку репозитория проектов.
Репозиторий
- Method — метод (протокол подключения) репозитория проектов.
-
Server — хост-сервер репозитория.
-
Server Port — просмотр, использует ли репозиторий порт сервера по умолчанию или нестандартный.
-
Default — если выбрано, репозиторий использует порт сервера по умолчанию.
-
Non Default — если выбрано, репозиторий использует нестандартный порт сервера. Информация о порте сервера также будет отображаться.
-
-
Repository Subfolder — назначенная подпапка репозитория. Нажмите
справа от поля Repository Subfolder, чтобы открыть диалоговое окно Browse Repository directories dialog и выбрать подпапку в каталоге репозитория.
-
User Name — имя пользователя для репозитория.
-
Password — пароль для репозитория проектов.
-
Test — нажмите, чтобы проверить, работает ли подключение к вашему репозиторию проектов. Появится диалоговое окно, подтверждающее, работает оно или нет. Если подключение не удалось, перепроверьте и исправьте данные.
Редактирование свойств репозитория
Вы также можете в любое время редактировать свойства репозитория проектов. Например, может потребоваться изменить имя репозитория, как оно отображается и используется в Altium Designer. Или может понадобиться отредактировать подключение, например чтобы связаться с другим репозиторием. Для этого выберите запись репозитория в списке репозиториев (на странице Data Management – Design Repositories диалогового окна Preferences ), затем нажмите кнопку
. Появится диалоговое окно SVN Design Repository (или Git Repository), в котором можно внести необходимые изменения.
Отключение от репозитория
Чтобы отключиться от репозитория проектов, выберите его запись в списке и нажмите кнопку
. Репозиторий будет удалён из списка подключённых репозиториев проектов. Сам репозиторий не удаляется — он просто становится отключённым от системы. Чтобы снова использовать репозиторий, подключитесь к нему.
Использование SVN-репозиториев проектов
После определения подключённый характер SVN Design Repository упрощает возможность либо добавить проект в этот репозиторий, либо открыть существующий проект из этого репозитория. Вместо того чтобы помнить путь или «проваливаться» в меню обзора, чтобы выбрать репозиторий, вы просто выбираете нужный репозиторий из удобного списка всех Design Repositories, к которым вы сейчас подключены и которые активированы для использования.
В целом файлы проекта можно добавить в репозиторий системы контроля версий с помощью команд из панелей Projects или Storage Manager, что включает шаги регистрации файлов на добавление, а затем их фиксации (commit) в VCS.
Процесс, показанный ниже, использует панель Projects, которая удобнее «под рукой», но стоит отметить, что панель Storage Manager предоставляет больше деталей и опций VCS.
Добавление локального проекта в SVN Design Repository
Добавление локального design‑проекта (который сейчас не находится под контролем версий) в Design Repository — процесс простой. При открытом проекте используйте команду Add Project Folder To Version Control из панели Projects panel или Storage Manager panel либо из Project » History & Version Control главного меню. Появится диалог Add to Version Control. Поле в верхней части этого диалога содержит выпадающий список всех подключённых и активированных Design Repositories. Выберите нужный репозиторий.
Иерархия папок внутри выбранного Design Repository отображается в области Folders диалога. Укажите существующую папку, в которую нужно добавить design‑файлы, либо создайте новую папку с помощью кнопки
. Во втором случае папка будет добавлена в указанном месте иерархии папок репозитория и будет названа по имени исходной папки, содержащей проект.

Добавление локального design‑проекта в локальный design repository.
Нажмите
, чтобы подтвердить настройки. Затем диалог заполнится записями файлов, полученными из исходной папки, при этом составные файлы проекта будут выбраны — при необходимости используйте флажки, чтобы включить или исключить файлы из добавления. Выберите
, чтобы подтвердить выбор — обратите внимание, что записи файлов в панели Projects теперь имеют статус Scheduled for addition Это означает, что VCS зарегистрировала файлы для добавления под контроль версий и они готовы к сдаче (Commit) в репозиторий VCS.
Файлы запланированы к добавлению
Фиксация (Commit) проекта
Файлы со статусом Scheduled for addition будут добавлены под контроль версий и в design repository при выполнении Commit. Для этого выберите команду Version Control » Commit Whole Project в контекстном меню (правый клик) панели Projects, чтобы запустить процесс.
Команда Commit Whole Project
Следующая версия диалога Add to Version Control позволяет снять выбор с отдельных файлов проекта (или выбрать дополнительные) для включения под контроль версий. Также можно добавить комментарий, который будет включён в предстоящую ревизию VCS.
Включение определённых файлов, добавляемых под контроль версий
Затем проект и входящие в него design‑документы копируются в репозиторий VCS и регистрируются как новая ревизия, а статус файлов в панелях Altium Designer меняется на No Modification
Создание нового проекта под контролем версий
При создании нового проекта под контролем версий поле Repository в диалоге Create Project dialog содержит выпадающий список всех подключённых и активированных Design Repositories. Выберите нужный репозиторий.

Создание нового design‑проекта под контролем версий — все определённые Design Repositories доступны для использования.
Параметр Local Storage в диалоге Create Project определяет, где хранится рабочая копия проекта. Именно эти файлы открываются и редактируются в Altium Designer и в итоге фиксируются обратно в репозиторий (check‑in) как новые ревизии после завершения правок.
Открытие проекта под контролем версий из SVN Design Repository
Так же просто можно открыть design‑проект под контролем версий, который находится в Design Repository. Используйте команду File » Checkout — появится диалог Check Out. В поле Check out from выберите нужный репозиторий из выпадающего списка всех подключённых и активированных design repositories, доступных вам.
Иерархия папок внутри выбранного Design Repository отображается в области Folders диалога. Используйте эту область, чтобы указать точную папку, которую нужно извлечь (check out) из репозитория.
Используйте поле Check out to, чтобы указать, куда следует выполнить checkout содержимого выбранной папки. Это ваша локальная «песочница».

Выполните checkout существующего design‑проекта под контролем версий из выбранного Design Repository — легко и контролируемо!
Блокировка файлов SVN‑проекта
SVN VCS поддерживает блокировку файлов — чтобы никакой другой пользователь не мог зафиксировать изменения в заблокированных файлах. Чтобы заблокировать design‑файл проекта в SVN VCS, щёлкните по нему правой кнопкой в панели Projects и выберите команду History & Version Control » Lock (или выберите команду Lock в контекстном меню файла в панели Storage Manager). Заблокированный файл отображается с иконкой
в панелях Projects и Storage Manager.
Файл был заблокирован вами или другим пользователем. Если файл заблокирован вами, другой пользователь не сможет обновить его до новой ревизии в репозитории (если только блокировка не будет принудительно снята). Хотя для обозначения заблокированного файла используется один тип значка, связанный с ним текст будет указывать, кто заблокировал файл — Locked by me или Locked by someone else. Текст VCS также будет указывать комбинированные состояния, например: Modified and locked by me.
Чтобы разблокировать документ, который сейчас заблокирован, щёлкните по нему правой кнопкой в панели Projects и выберите команду History & Version Control » Unlock (или выберите команду Unlock в контекстном меню файла в панели Storage Manager). После разблокировки любой пользователь сможет зафиксировать документ с любыми внесёнными изменениями в репозиторий контроля версий.
Очистка (Cleanup) документа
Перед тем как вносятся какие-либо изменения в вашу локальную рабочую копию файла проекта, SVN создаёт своего рода список «что нужно сделать» — действия, которые необходимо выполнить, чтобы безопасно применить изменения. Выполняя эти действия, он устанавливает блокировку на соответствующую часть рабочей копии на время работы. Это предотвращает доступ других клиентов Subversion к рабочей копии в процессе изменения. По завершении блокировка снимается, и Subversion очищает свой внутренний список задач. Однако если операция Subversion прерывается — например, процесс был остановлен или компьютер аварийно завершил работу — внутренний список задач остаётся на диске. Это позволяет SVN позже вернуться к этому списку, завершить незаконченные операции и привести вашу рабочую копию в согласованное состояние.
Команда cleanup, доступная через правый клик по записи документа проекта и выбор History & Version Control » Cleanup или через выбор команды Project » Version Control » Cleanup в главных меню, сканирует вашу рабочую копию и выполняет оставшиеся пункты списка задач, снимая блокировки рабочей копии по мере завершения операций, и в итоге возвращает вашу рабочую копию документа проекта в согласованное состояние.