Настройка системы контроля версий SVN

Настройка SVN, предоставляемого с проектами

Проекты обеспечивают SVN для использования с Subversion® (SVN) песочницы и репозитории в версии 1.9. Для использования этого интегрирования не требуется устанавливать SVN, поскольку она включает в себя реализацию SVN.

Примечание

Это интегрирование игнорирует любую существующую установку SVN.

Проект SVN поддерживает безопасные входы.

Чтобы использовать версию SVN, предоставленную в проекте, выполните одно из следующих действий:

  • На MATLAB® На вкладке Home» выберите New > Project > From SVN.

  • Кроме того, на начальной странице выберите Project from SVN для извлечения из системы контроля версий или, когда вы добавляете проект к системе контроля версий, выберите SVN в списке Source control tool

. Для получения инструкций смотрите

Внимание

Поместите папку песочницы проекта на локальный жесткий диск. Использование сетевой папки с SVN медленно и ненадежно. Если вы используете Windows® сетевой диск, операции перемещения SVN могут привести к неправильному «не существующему» статусу для файлов, видимых в браузерах файлов.

Когда вы создаете новую песочницу, используя проект SVN, новая песочница использует последнюю версию SVN, предоставленную проектом.

Когда ваш проект находится под системой контроля версий, можно использовать следующие функции проекта:

Можно взять ветвь на изменение, но SVN проекта не поддерживает отводной канал. Чтобы выполнить отводной канал, используйте внешний инструмент, такой как TortoiseSVN. Можно использовать инструменты проекта для сравнения и слияния, сконфигурировав TortoiseSVN, чтобы сгенерировать отчет сравнения при выполнении diff в файлах модели. См. раздел «Объединение моделей Simulink» из отчета о сравнении.

Настройка SVN проекта для уже установленной версии SVN

Если необходимо использовать проекты с более ранней установленной версией SVN, создайте новый проект в папке, уже находящейся под системой контроля версий SVN. Проект обнаруживает SVN.

Для примера:

  1. Создайте песочницу с помощью TortoiseSVN из проводника Windows.

  2. В MATLAB создайте новый проект в этой папке. Проект обнаруживает существующую систему контроля версий. Если песочница имеет версию 1.6, например, она остается песочницей версии 1.6.

Примечание

Перед использованием системы контроля версий необходимо зарегистрировать файлы модели с помощью инструментов. Смотрите Register Model Files with Subversion.

Настройка SVN проекта для версии SVN, еще не предоставленной проектами

Если вам нужно использовать более позднюю версию SVN, чем 1.9, можно использовать Command-Line SVN Integration (compatibility mode), но необходимо также установить клиент SVN командной строки.

Примечание

Выберите Command-Line SVN Integration (compatibility mode) только если вам нужно использовать более позднюю версию SVN, чем 1.9. В противном случае используйте SVN вместо этого, для дополнительных функций, улучшенная производительность и не нужно устанавливать дополнительную командную строку SVN клиента.

Интегрирование SVN в командной строке взаимодействует с любым клиентом Subversion (SVN), который поддерживает интерфейс командной строки.

  1. Установите SVN, поддерживающий интерфейс командной строки.

    Примечание

    TortoiseSVN не поддерживает интерфейс командной строки, если вы не выберете опцию установки инструментов командной строки. Также можно продолжить использовать TortoiseSVN из проводника Windows после установки другого SVN, поддерживающего интерфейс командной строки. Убедитесь, что номера основных версий совпадают, например, оба клиента являются SVN 1.7.

    Клиенты Subversion можно найти на этой веб-странице:

  2. В проекте выберите Command-Line SVN Integration (compatibility mode).

С Command-Line SVN Integration (compatibility mode)Если вы пытаетесь переименовать файл в проекте, а имя папки содержит символ @, появляется ошибка, поскольку SVN командной строки обрабатывает все символы после символа @ как значение версии привязки.

Совет

Проверить наличие обновленной системы контроля версий интегрирования загрузок можно на веб-странице проектов: https://www.mathworks.com/products/simulink/projects.html

Зарегистрируйте файлы модели с Subversion

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

Если вы не регистрируете расширение файла модели как двоичное, SVN может добавить аннотации к конфликтующему Simulink® файлы и попытка automerge. Это повреждает файлы модели, поэтому вы не можете загрузить модели в Simulink.

Чтобы избежать этой проблемы при использовании SVN, зарегистрируйте расширения файлов.

  1. Найдите свои SVN- config файл. Найдите файл в следующих расположениях:

    • C :\Пользователи\ myusername\ AppData\Roaming\Subversion\config или C :\Документы и настройки\ myusername\ Данные приложения\Subversion\config в Windows

    • В ~/.subversion в Linux® или Mac OS X

  2. Если вы не находите config файл, создайте новый. См. раздел «Создание файла Config SVN».

  3. Если вы находите существующее config файл, вы ранее установили SVN. Отредактируйте config файл. См. раздел «Обновление существующего файла Config SVN».

Создание Config SVN

  1. Если SVN не найден config создайте текстовый файл, содержащий следующие линии:

    [miscellany]
    enable-auto-props = yes
    [auto-props]
    *.mlx = svn:mime-type=application/octet-stream
    *.mat = svn:mime-type=application/octet-stream
    *.fig = svn:mime-type=application/octet-stream
    *.mdl = svn:mime-type=application/octet-stream
    *.slx = svn:mime-type= application/octet-stream
    *.mlapp = svn:mime-type= application/octet-stream
    *.p = svn:mime-type=application/octet-stream
    *.mdlp = svn:mime-type=application/octet-stream
    *.slxp = svn:mime-type=application/octet-stream
    *.sldd = svn:mime-type=application/octet-stream
    *.slxc = svn:mime-type=application/octet-stream
    *.mlproj = svn:mime-type=application/octet-stream
    *.mldatx = svn:mime-type=application/octet-stream
    *.slreqx = svn:mime-type=application/octet-stream
    *.sfx = svn:mime-type=application/octet-stream
    *.sltx = svn:mime-type=application/octet-stream
  2. Проверьте наличие других типов файлов, используемых в проектах, которые также должны быть зарегистрированы как двоичные, чтобы избежать повреждения при регистрации. Проверьте наличие таких файлов, как файлы MEX (.mexa64, .mexmaci64, .mexw64), .xlsx, .jpg, .pdf, .docx, и т.д. Добавьте линии в файл атрибутов для каждого типа файла, который вам нужен. Примеры:

    *.mexa64 = svn:mime-type=application/octet-stream
    *.mexw64 = svn:mime-type=application/octet-stream
    *.mexmaci64 = svn:mime-type=application/octet-stream
    *.xlsx = svn:mime-type=application/octet-stream
    *.docx = svn:mime-type=application/octet-stream
    *.pdf = svn:mime-type=application/octet-stream
    *.jpg = svn:mime-type=application/octet-stream
    *.png = svn:mime-type=application/octet-stream
  3. Назовите файл config и сохранить его в соответствующем месте:

    • C :\Пользователи\ myusername\ AppData\Roaming\Subversion\config или C :\Документы и настройки\ myusername\ Данные приложения\Subversion\config в Windows

    • ~/.subversion на Linux или Mac OS X

После того, как вы создали конфигурационный файл SVN, SVN обрабатывает новые файлы модели как двоичные.

Если у вас уже есть модели в репозиториях, см. «Регистрация моделей уже в репозиториях».

Обновление существующего файла Config SVN

Если вы находите существующее config файл, вы ранее установили SVN. Отредактируйте config файл для регистрации файлов как двоичных.

  1. Отредактируйте config файл в текстовом редакторе.

  2. Найдите [miscellany] и проверьте, что следующая линия включена auto-props с yes:

    enable-auto-props = yes 
    Убедитесь, что эта линия не комментируется (то есть она не начинается с #). Config файлы могут содержать пример линий с комментариями. Если в начале линии есть символ #, удалите его.

  3. Найдите [auto-props] раздел. Убедитесь, что [auto-props] не комментируется. Если в начале есть символ #, удалите его.

  4. Добавьте следующие линии в конец [auto-props] раздел:

    *.mlx = svn:mime-type=application/octet-stream
    *.mat = svn:mime-type=application/octet-stream
    *.fig = svn:mime-type=application/octet-stream
    *.mdl = svn:mime-type=application/octet-stream
    *.slx = svn:mime-type= application/octet-stream
    *.mlapp = svn:mime-type= application/octet-stream
    *.p = svn:mime-type=application/octet-stream
    *.mdlp = svn:mime-type=application/octet-stream
    *.slxp = svn:mime-type=application/octet-stream
    *.sldd = svn:mime-type=application/octet-stream
    *.slxc = svn:mime-type=application/octet-stream
    *.mlproj = svn:mime-type=application/octet-stream
    *.mldatx = svn:mime-type=application/octet-stream
    *.slreqx = svn:mime-type=application/octet-stream
    *.sfx = svn:mime-type=application/octet-stream
    *.sltx = svn:mime-type=application/octet-stream
    Эти линии препятствуют добавлению SVN аннотаций к файлам MATLAB и Simulink при конфликте и автоматизации.

  5. Проверьте наличие других типов файлов, используемых в проектах, которые также должны быть зарегистрированы как двоичные, чтобы избежать повреждения при регистрации. Проверьте наличие таких файлов, как файлы MEX (.mexa64, .mexmaci64, .mexw64), .xlsx, .jpg, .pdf, .docx, и т.д. Добавьте линии к config файл для каждого типа файла, который вам нужен.

    Примеры:

    *.mexa64 = svn:mime-type=application/octet-stream
    *.mexw64 = svn:mime-type=application/octet-stream
    *.mexmaci64 = svn:mime-type=application/octet-stream
    *.xlsx = svn:mime-type=application/octet-stream
    *.docx = svn:mime-type=application/octet-stream
    *.pdf = svn:mime-type=application/octet-stream
    *.jpg = svn:mime-type=application/octet-stream
    *.png = svn:mime-type=application/octet-stream
  6. Сохраните config файл.

После того, как вы создаете или обновляете файл config SVN, SVN обрабатывает новые файлы модели как двоичные.

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

Регистрируйте модели уже в репозиториях

Внимание

Изменение файла config SVN не влияет на файлы модели, уже зафиксированные в репозитории SVN. Если модель не зарегистрирована как двоичная, используйте svn propset чтобы вручную зарегистрировать модели как двоичные.

Чтобы вручную зарегистрировать файл в репозитории как двоичный, используйте следующую команду с SVN командной строки:

svn propset svn:mime-type application/octet-stream modelfilename
Если необходимо установить SVN-клиент командной строки, см. раздел Настройка SVN проекта для версии SVN, еще не предоставленной проектами.

Принудительная блокировка файлов модели SVN перед редактированием

Чтобы пользователи не забывали получить блокировку файлов модели перед редактированием, можно сконфигурировать SVN, чтобы сделать указанные расширения файлов доступными только для чтения. Чтобы найти свой config SVN, смотрите Register Model Files with Subversion.

После этой настройки SVN устанавливает файлы модели на чтение только когда вы открываете проект, поэтому вам нужно выбрать Source Control > Get File Lock, прежде чем вы сможете редактировать их. Это помогает предотвратить редактирование моделей, не получая блокировки файла. Когда файл имеет блокировку, другие пользователи знают, что файл редактируется, и можно избежать проблем слияния.

  1. Чтобы сделать файлы SLX доступными только для чтения, добавьте свойство к файлу config SVN. Найдите эту линию в [auto-props] раздел, который регистрирует файлы SLX как двоичные:

    *.slx = svn:mime-type= application/octet-stream
    

  2. Добавьте needs-lock свойство до конца существующей slx линия, разделенная точкой с запятой, поэтому строка выглядит следующим образом:

    *.slx = svn:mime-type=application/octet-stream;svn:needs-lock=yes 
    Можно объединить свойства в любом порядке, но несколько записей (например, для slx) должна находиться в одной линии, разделенной точками с запятой.

  3. Воссоздайте песочницу для вступления в силу config.

  4. Вам нужно выбрать Get File Lock, прежде чем вы сможете редактировать файлы модели. См. раздел «Получение блокировок файлов SVN».

Если необходимо решить проблемы слияния, см. раздел «Разрешение конфликтов».

Совместное использование репозитория Subversion

Когда необходимо предоставить общий доступ к репозиторию, необходимо настроить сервер. Вы можете использовать svnserve или Apache™ модуль SVN. См. ссылки на веб-страницы:

Стандартная структура репозитория

Создайте репозиторий со стандартными tags, trunk, и branches папки и извлечение файлов из trunk. Проект Subversion рекомендует эту структуру. См. веб-страницу:

Если для создания репозитория SVN используется проект, он создает стандартную структуру репозитория. Чтобы включить маркировку, репозиторий должен иметь trunk/ и tags/ папки.

После создания репозитория с этой структурой, чтобы добавить теги ко всем файлам проекта, на вкладке Project, в разделе Система Контроля Версий, нажмите Tag. См. раздел «Тег и извлечение версий файлов проекта».

Управление внешними устройствами SVN

Чтобы получить файлы в ваш проект из другого репозитория или из другой части того же репозитория, используйте внешние SVN.

  1. В проекте щелкните правой кнопкой мыши папку проекта и выберите Source Control > Manage Externals.

  2. В диалоговом окне «Управление внешними объектами» нажмите кнопку Add entry. Можно просматривать и проверять местоположение репозитория, задавать относительный формат ссылки, задавать подпапку, выбирать ревизию, например HEAD узел и т.д.

  3. После определения внешних параметров нажмите кнопку OK. Проект отображает определение внешних объектов в диалоговом окне Управление внешними объектами (Manage Externals).

    Другой способ - ввести или вставить svn:external определение в диалоговом окне Управление внешними объектами. Проект применяет определение внешних устройств SVN версии 1.6.

  4. Щелкните Set, чтобы проверить и применить изменения.

  5. Чтобы получить внешние файлы, нажмите кнопку Update, чтобы обновить песочницу.

Если два пользователя изменяют svn:external для папки можно получить конфликт. Чтобы разрешить конфликт, в представлении «Все файлы» найдите .prej подайте и исследуйте детали конфликта. Откройте диалоговое окно «Управление внешними объектами» и задайте требуемые svn:externalОтметьте разрешенный конфликт папки и внесите изменения.

Похожие примеры

Подробнее о