exponenta event banner

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

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

Параметры системы управления версиями SVN

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

Внимание

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

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

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

Регистрация двоичных файлов с помощью SVN

При использовании сторонних средств управления версиями необходимо зарегистрировать расширения файлов MATLAB и Simulink ®, такие как.mlx, .mat, .fig, .mlapp, .mdl, .slx, .mdlp, .slxp, .sldd, и .p как двоичные форматы. Если расширения не зарегистрированы, эти инструменты могут повредить файлы при их отправке, изменив символы конца строки, развернув маркеры, подставив ключевые слова или попытавшись сделать их автоматическими. Повреждение может произойти при использовании средств управления версиями вне MATLAB или при попытке отправки файлов из MATLAB без предварительной регистрации форматов файлов.

Также убедитесь, что другие расширения файлов зарегистрированы как двоичные, чтобы избежать повреждения при возврате. Проверка и регистрация файлов, таких как MEX-файлы, .xlsx, .jpg, .pdf, .docxи т.д.

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

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

    • C:\Users\myusername\AppData\Roaming\Subversion\config или C:\Documents and Settings\myusername\Application Data\Subversion\config в ОС Windows ®

    • ~/.subversion в ОС Linux ® или macOS

  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и т.д. Добавление строки к 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
  3. Назовите файл config и сохраните его в соответствующем месте:

    • C:\Users\myusername\AppData\Roaming\Subversion\config или C:\Documents and Settings\myusername\Application Data\Subversion\config в Windows

    • ~/.subversion в Linux или macOS.

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

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

Внимание

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

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

svn propset svn:mime-type application/octet-stream binaryfilename

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

Создание репозитория с использованием стандарта tags, trunk, и branches папки и извлечение файлов из trunk. Проект Subversion рекомендует эту структуру. См. https://svn.apache.org/repos/asf/subversion/trunk/doc/user/svn-best-practices.html.

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

Теги версий файлов

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

  1. Щелкните правой кнопкой мыши в браузере текущей папки и выберите «Система управления версиями» > «Тег».

  2. Укажите текст тега и нажмите кнопку «Отправить». Тег добавляется к каждому файлу в папке. Ошибки появляются, если у вас нет tags в репозитории.

Примечание

Можно получить отмеченную версию файлов из системы управления версиями, но нельзя снова пометить их новым тегом. Необходимо выписать из trunk для создания новых тегов.

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

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

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

  1. Создание файлов с помощью .m расширение только для чтения, добавьте свойство в SVN config в файле [auto-props] раздел. Если нет записи для файлов с .m расширение, добавьте одно с needs-lock собственность.

    *.m = svn:needs-lock=yes

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

  2. Создание файлов с помощью .mlx расширение только для чтения, добавьте свойство в SVN config в файле [auto-props] раздел. Поскольку необходимо зарегистрировать файлы в .mlx расширение как двоичное, существует запись для типа файла. Добавить needs-lock свойство для записи в любом порядке, но в той же строке и разделено точкой с запятой.

    *.mlx = svn:mime-type=application/octet-stream;svn:needs-lock=yes 
  3. Создайте изолированную программную среду для вступления конфигурации в силу.

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

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

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

Связанные темы