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

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

Опции системы контроля версий SVN

Чтобы использовать версию SVN, предоставляемую с MATLAB, при извлечении файла из системы контроля версий, выберите SVN в списке Source control integration. Инструкции см. в разделе Взятие на изменение из репозитория SVN. Когда вы создаете новую песочницу с помощью встроенного интегрирования MATLAB SVN, новая песочница использует последнюю версию SVN, предоставленную MATLAB.

Внимание

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

Если вам нужно использовать версию SVN, отличную от встроенной, можно создать репозиторий с помощью Command-Line SVN Integration (compatibility mode) Source control integration опция, но необходимо также установить 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 :\Пользователи\ myusername\ AppData\Roaming\Subversion\config или C :\Документы и настройки\ myusername\ Данные приложения\Subversion\config в Windows®

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

  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, и т.д. Добавьте линии к 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 :\Пользователи\ myusername\ AppData\Roaming\Subversion\config или C :\Документы и настройки\ myusername\ Данные приложения\Subversion\config в Windows

    • ~/.subversion на Linux или macOS.

После создания SVN- config файл, SVN обрабатывает новые файлы с этими расширениями как двоичные. Если у вас уже есть двоичные файлы в репозиториях, смотрите Register Files Againly in Repositories.

Обновление существующего файла 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 файл.

После создания или обновления SVN- config файл, SVN обрабатывает новые файлы как двоичные. Если у вас уже есть файлы в репозиториях, зарегистрируйте их как описано в Register Files Againly in Repositories.

Зарегистрировать файлы уже в репозиториях

Внимание

Изменение 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/ папки. После создания репозитория с этой структурой можно щелкнуть Tag в контекстном меню Source Control, чтобы добавить теги ко всем вашим файлам. Дополнительные сведения см. в разделе Версии файлов тегов.

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

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

  1. Щелкните правой кнопкой мыши в браузере Текущей папки и выберите Source Control > Tag.

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

Примечание

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

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

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

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

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

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

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

Похожие темы