exponenta event banner

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

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

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

Примечание

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

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

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

  • На вкладке Главная страница MATLAB ® выберите Создать > Проект > Из SVN.

  • Либо на начальной странице выберите Проект из SVN для извлечения из системы управления версиями, либо при добавлении проекта в систему управления версиями выберите SVN в списке инструментов системы управления версиями

. Инструкции см. в разделе

Внимание

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

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

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

Можно взять на изменение из филиала, но SVN проекта не поддерживает объединение филиалов. Для объединения ветвей используйте внешний инструмент, например, TortoitySVN. Для сравнения и объединения можно использовать инструменты проекта, настроив TortoureSVN для создания отчета сравнения при выполнении разбиения на файлы модели. См. раздел Объединение моделей Simulink в отчете о сравнении.

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

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

Например:

  1. Создайте изолированную программную среду с помощью программы TortoitySVN из проводника Windows.

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

Примечание

Перед использованием системы управления версиями необходимо зарегистрировать файлы модели с помощью инструментов. См. раздел Регистрация файлов модели с помощью 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, поддерживающий интерфейс командной строки.

    Примечание

    TortoableSVN не поддерживает интерфейс командной строки, если не выбран вариант установки инструментов командной строки. Кроме того, можно продолжить использование TortoureSVN из проводника 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:\Users\myusername\AppData\Roaming\Subversion\config или C:\Documents and Settings\myusername\Application Data\Subversion\config в Windows

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

  2. Если вы не найдете config создайте новый файл. См. раздел Создание конфигурационного файла SVN.

  3. При обнаружении существующего config , вы уже установили SVN. Изменить config файл. См. раздел Обновление существующего конфигурационного файла SVN.

Создать конфигурационный файл 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:\Users\myusername\AppData\Roaming\Subversion\config или C:\Documents and Settings\myusername\Application Data\Subversion\config в Windows

    • ~/.subversion в ОС Linux или Mac OS X

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

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

Обновить существующий конфигурационный файл SVN

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

  1. Изменить config в текстовом редакторе.

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

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

  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 файл.

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

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

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

Внимание

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

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

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

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

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

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

  1. Чтобы сделать SLX-файлы доступными только для чтения, добавьте свойство в конфигурационный файл 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. Создайте изолированную программную среду, чтобы конфигурационный элемент вступил в силу.

  4. Перед редактированием файлов модели необходимо выбрать команду Получить блокировку файла (Get File Lock). См. раздел Получение блокировки файлов SVN.

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

Общий доступ к репозиторию Subversion

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

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

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

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

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

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

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

  1. В проекте щелкните правой кнопкой мыши папку проекта и выберите «Система управления версиями» > «Управление внешними объектами».

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

  3. После задания внешних параметров нажмите кнопку «ОК». Проект отображает определение внешних параметров в диалоговом окне «Управление внешними параметрами».

    Либо введите или вставьте svn:external в диалоговом окне «Управление внешними объектами». В проекте применяется определение внешних устройств, совместимых с SVN версии 1.6.

  4. Нажмите кнопку Задать, чтобы проверить и применить изменения.

  5. Чтобы извлечь внешние файлы, нажмите кнопку «» Обновить «», чтобы обновить изолированную среду.

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

Связанные примеры

Подробнее