Используйте систему контроля версий с проектами

Можно использовать проекты работать с файлами под системой контроля версий. Система контроля версий хранит файлы в репозитории, позволяет вам проверять файлы из репозитория, чтобы продолжить работать и отступить в него, чтобы сохранить изменения, и позволяет вам видеть историю различных версий файлов, в которых зарегистрировались. Для получения дополнительной информации об использовании системы контроля версий в Продуктах Mathworks займитесь Интеграцией с системой контроля версий MathWorks.

Проекты объединяются с двумя системами контроля версий, Git™ и Subversion® (SVN).

Чтобы настроить проект с системой контроля версий, используйте любой из этих рабочих процессов:

  • Создайте новый проект из существующего репозитория.

  • Добавьте существующий проект в систему контроля версий.

  • Создайте новый проект в папке уже под системой контроля версий.

Затем когда ваш проект находится под системой контроля версий, можно выполнить операции из MATLAB®, такие как регистрация файлов и, осуществление проверок, и фиксация и откатывание изменений.

Система контроля версий Setup

Существует три способа настроить проект с системой контроля версий.

Создайте новый проект из существующего репозитория

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

Создать новый проект из существующего репозитория:

  1. На вкладке Home нажмите New> Project> From Git или New> Project> From SVN. Диалоговое окно Create New Project from Source Control открывается.

  2. Если вы знаете местоположение вашего репозитория, вставляете его в поле Repository Path.

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

    1. В диалоговом окне задайте репозиторий URL путем ввода или вставки URL в поле Repository путем выбора из списка недавних репозиториев, или путем нажатия кнопки Generate URL from folder.

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

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

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

    5. Когда вы закончили задавать путь URL, вы хотите получить, нажать OK. Диалоговое окно закрывается, и вы возвращаетесь к диалоговому окну Create New Project from Source Control.

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

  4. Нажмите Retrieve.

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

    Если ваша песочница еще не содержит проект, то диалоговое окно спрашивает, хотите ли вы создать проект в папке. Чтобы создать проект, задайте название проекта и нажмите OK. Экран приветствия, кажется, помогает вам настроить свой новый проект. Для получения дополнительной информации о подготовке проекта, см. Настроенный Проект.

Если вы сталкиваетесь с ошибками как OutOfMemoryError: Java heap space при клонировании больших репозиториев Git, редактируете настройки MATLAB, чтобы увеличить размер кучи.

  1. На вкладке «Главная страница (Home)» в разделе «Конфигурация (Environment)» нажмите «Настройки (Preferences)».

  2. Выберите MATLAB> General> Java Heap Memory.

  3. Переместите ползунок, чтобы увеличить размер кучи, и затем нажать OK.

  4. Перезапустите MATLAB.

Добавьте существующий проект в систему контроля версий

Если у вас есть существующий проект, можно добавить его в систему контроля версий SVN или Git.

Добавить проект в систему контроля версий:

  1. На вкладке Project, в разделе Source Control, нажимают Use Source Control. Диалоговое окно Source Control Information открывается.

  2. Нажмите Add project to source control button. Диалоговое окно Add to Source Control открывается.

  3. В списке Source control tool выберите правильный инструмент для своего репозитория.

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

    • Чтобы задать существующий репозиторий, нажмите кнопку Generate URL from folder, чтобы просмотреть ваш репозиторий, вставить URL в поле Repository или использовать список, чтобы выбрать недавний репозиторий.

    • Чтобы создать новый репозиторий, нажмите кнопку Create a repository. Для получения дополнительной информации о создании нового репозитория, смотрите, Создают Новый Репозиторий.

    Нажмите Validate, чтобы проверять путь к выбранному репозиторию, и затем нажать OK.

  5. Нажмите Convert, чтобы закончить добавлять проект в систему контроля версий.

    Проект запускает проверки целостности.

  6. После запущенных проверок целостности нажмите Open Project, чтобы возвратиться к вашему проекту.

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

  7. Если вы создали новый репозиторий, выберите представление Files> Modified и нажмите Commit, чтобы передать первую версию ваших файлов к новому репозиторию. В диалоговом окне введите комментарий, если вы хотите и нажимаете Submit.

Если вы хотите объединить ответвления с Git, необходимо выполнить дополнительные шаги настройки. Для получения дополнительной информации смотрите Настроенную Систему контроля версий Git.

Если вы хотите использовать версию SVN кроме встроенной версии, см. Настройку системы контроля версий SVN.

Создайте Новый проект в Папке Уже Под Системой контроля версий

Если вы создаете новый проект из папки, которая уже находится под системой контроля версий, MATLAB может автоматически добавить новый проект в систему контроля версий. После создания проекта нажмите кнопку Detect. Для получения дополнительной информации о создании проекта от папки, смотрите, Создают Проекты.

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

Получите версии и файлы проекта контроля

Эта таблица показывает, как проверять на измененные файлы проекта, версии обновления, получить и управлять блокировками файла и файлами проекта тега.

ДействиеПроцедура
Обновите состояние файлов проекта.

Чтобы проверять на локально измененные файлы, на вкладке Project, в разделе Source Control, нажимают Refresh. Обновление запрашивает состояние локальной тестовой среды и проверки на изменения, внесенные с другим инструментом за пределами MATLAB.

Для получения дополнительной информации смотрите Состояние Файла Git Версии или Состояния и Обновления Файла SVN Обновления и Версию.

Проверяйте на модификации в файлах проекта.

Чтобы узнать, существует ли новая версия проекта в репозитории в представлении Files, щелкают правой кнопкой по файлу и выбирают Source Control> Check for Modifications.

С SVN эта опция связывается с репозиторием, чтобы проверять на внешние модификации. Проект сравнивает количества версии локального файла и версии репозитория. Если номер версии в репозитории больше, чем это в папке локальной тестовой среды, то проект отображает (not latest) рядом с количеством версии локального файла.

Обновите все файлы проекта.

Используя SVN, чтобы получить последние изменения всех файлов проекта, переходят к вкладке Project, и в разделе Source Control, нажимают Update. Проект отображает диалоговое окно, перечисляющее все файлы, которые изменились на диске. Можно управлять этим поведением с помощью настройки проекта Show changes on source control update. Для получения дополнительной информации смотрите Состояние Файла SVN Обновления и Версию.

Используя Git, чтобы получить последние изменения для всех файлов проекта от репозитория системы контроля версий и объединить их в ваше текущее ответвление, переходят к вкладке Project, и в разделе Source Control, нажимают Pull. Чтобы получить изменения и слияние вручную, на вкладке Project, в разделе Source Control, нажимают Fetch. Это обновляет все ответвления источника в локальном репозитории. Когда вы нажимаете Fetch, ваши файлы песочницы не изменяются. Чтобы видеть изменения от других, объедините в изменениях источника в ваших локальных ответвлениях. Для получения дополнительной информации смотрите Получение по запросу, Нажатие и Файлы Выборки с Git.

Обновите версию для выбранных файлов проекта.

Чтобы обновить выбранный набор файлов, в представлении Files, щелкают правой кнопкой по файлам и выбирают Source Control> команда Update для системы контроля версий, которую вы используете. Например, если вы используете SVN, выберите Source Control> Update from SVN, чтобы получить новые локальные копии выбранных файлов от репозитория.

Получение блокировок файла SVN.

Чтобы получить блокировки файла SVN, в представлении Files, выбирают файлы, которые вы хотите проверить. Щелкните правой кнопкой по выбранным файлам и выберите Source Control> Get File Lock. Символ блокировки появляется в столбце системы контроля версий SVN. Другие пользователи не видят символ блокировки в своих песочницах, но они не могут получить блокировку файла или зарегистрироваться в изменении, когда у вас есть блокировка. Чтобы просмотреть или повредить блокировки, на вкладке Project, нажимают Locks.

Get File Lock только для SVN. Git не имеет блокировок.

Управляйте блокировками репозитория SVN.

Чтобы управлять глобальными блокировками SVN для репозитория, на вкладке Project, в разделе Source Control, нажимают Locks. Для получения дополнительной информации смотрите, Получают Блокировки Файла SVN.

Пометьте версии файлов проекта.

Чтобы идентифицировать определенные версии всех файлов проекта, на вкладке Project, в разделе Source Control, нажимают Tag. Задайте текст тега и нажмите OK. Тег добавляется к каждому файлу проекта. Ошибки появляются, если у вас нет папки tags в вашем репозитории. Для получения дополнительной информации см. Настройку системы контроля версий SVN.

Обзор изменений в файлах проекта

Можно рассмотреть изменения в файлах проекта с помощью представления Files> Modified. Эта таблица показывает, как просмотреть список измененных файлов проекта, рассмотреть историю файла и сравнить версии двух файлов.

ДействиеПроцедура
Просмотрите измененные файлы проекта.

В представлении Files выберите вкладку Modified (number of files). Представление Files> Modified видимо, только если вы используете систему контроля версий со своим проектом.

Совет

Используйте размещение List, чтобы просмотреть файлы, не будучи должен расширить папки.

Можно идентифицировать измененное или конфликтовавшее содержание папки с помощью состояния сводных данных системы контроля версий. В представлении Files папки отображают прокрученное состояние системы контроля версий. Это облегчает определять местоположение изменений в файлах, особенно конфликтовал файлы. Можно навести на состояние системы контроля версий для папки (например, Git или столбец SVN) для папки, чтобы просмотреть отображение подсказки, сколько файлов внутри изменяется, конфликтовало, добавленные, и удалило.

Обновите измененный список файлов.

Чтобы обновить измененный список файлов, на вкладке Project, в разделе Source Control, нажимают Refresh.

Просмотрите историю версии.

В представлении Files щелкните правой кнопкой по файлу и выберите Source Control> Show Revisions.

Чтобы просмотреть и сравнить файлы в зафиксированных массивах изменений SVN, на вкладке Project, в разделе Source Control, выбирают Show Log. В диалоговом окне File Revisions выберите версию, чтобы просмотреть список измененных файлов. Щелкните правой кнопкой по файлам по более низкому списку, чтобы просмотреть изменения или сохранить версии.

Сравните версии.

В представлении Files щелкните правой кнопкой по файлу и выберите Compare>, Compare to Ancestor, чтобы запустить сравнение с локальным репозиторием (Git) или с последним проверил версию в песочнице (SVN). Инструмент Сравнения отображает отчет.

Чтобы сравнить другие версии файла, выберите Compare> Compare to Revision.

Чтобы просмотреть отчет сравнения, выберите версии, вы хотите сравнить и нажать Compare Selected. Или, выберите версию и нажмите Compare to Local. Для получения дополнительной информации смотрите, Сравнивают Файлы и Файлы Слияния и Папки.

Файлы Определений проекта.  Файлы в папке resources/project являются файлами определения проекта, сгенерированными вашими изменениями. Файлы определения проекта позволяют вам добавлять метаданные в файлы, не проверяя их, например, путем создания ярлыков, добавления меток и добавления описания проекта. Файлы определения проекта также задают файлы, которые добавляются к вашему проекту.

Любые изменения, которые вы вносите в свой проект (например, в ярлыки, метки, категории или файлы в проекте) генерируют изменения в папке resources/project. Эти файлы хранят определение вашего проекта в XML-файлах, формат которых подвержен изменениям.

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

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

  1. На вкладке «Главная страница (Home)» в разделе «Конфигурация (Environment)» нажмите «Настройки (Preferences)». Выберите MATLAB> Project и в разделе New Project, выберите опцию Project definition files:.

  2. Создайте архив .mlproj проекта. Для получения дополнительной информации см. Проекты Доли или export.

  3. Создайте новый проект из заархивированного проекта. Для получения дополнительной информации смотрите, Создают Проекты.

Осуществите проверки проекта

Чтобы осуществить проверки для проекта, перейдите к вкладке Project и нажмите Run Checks> Check Project. Проект проверяет на проблемы с целостностью проекта, такие как недостающие файлы, несохраненные файлы или файлы не под системой контроля версий. Диалоговое окно сообщает о результатах. Можно щелкнуть для деталей и следовать за подсказками, чтобы решить проблемы.

Если вы хотите проверять на необходимые файлы, нажмите Dependency Analysis, чтобы анализировать зависимости измененных файлов. Используйте инструменты зависимости, чтобы анализировать структуру вашего проекта.

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

Фиксируйте измененные файлы проекта

После рассмотрения изменений и осуществления проверок проекта, вы готовы передать свои измененные файлы проекта системе контроля версий. Эта таблица показывает, как фиксировать измененные файлы проекта.

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

В представлении Files выберите вкладку Modified (number of files). На вкладке Project, в разделе Source Control, нажимают Commit. Введите комментарии в диалоговое окно и нажмите Submit. Если вы используете систему контроля версий Git, это соглашается на ваш локальный репозиторий. Если вы используете систему контроля версий SVN, это передает изменения в вашем репозитории.

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

Передайте выбранные файлы системе контроля версий.

В представлении Files выберите файлы, щелкните правой кнопкой и выберите Source Control> Commit.

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

Продвиньте файлы проекта с Git.

Чтобы отправить локальные фиксации в удаленный репозиторий, на вкладке Project, в разделе Source Control, нажимают Push. Сообщение появляется, если вы не можете продвинуть свои изменения непосредственно, потому что репозиторий шел дальше. Нажмите Fetch, чтобы выбрать все изменения от удаленного репозитория. Объедините ответвления и конфликты твердости, и затем можно продвинуть изменения. Для получения дополнительной информации смотрите Получение по запросу, Нажатие и Файлы Выборки с Git.

Продвиньте пустые папки проекта с Git.

Вы не можете добавить пустые папки в систему контроля версий Git, таким образом, вы не можете нажать Push и затем клонировать пустую папку. Можно создать пустую папку в проекте, но если вы продвигаете изменения и затем синхронизируете новую песочницу, пустая папка не появляется в новой песочнице. Вместо этого выполнение Check Project, который создает пустую папку для вас.

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

Создайте притоны Git.

Хранилище притонов Git отменило фиксацию изменений для дальнейшего использования. Чтобы создать притон, на вкладке Project, в разделе Source Control, нажимают Stashes. Диалоговое окно Stashes открывается. Нажмите New Stash, чтобы создать притон, содержащий ваши в настоящее время измененные файлы. Для получения дополнительной информации смотрите Притоны Git Использования.

Создайте ответвление с Git.

Чтобы создать ответвление, на вкладке Project, в разделе Source Control, нажимают Branches. Диалоговое окно Branches появляется, где можно просмотреть, переключить, создать и объединить ответвления.

Выберите источник для нового ответвления. Кликните по узлу в схеме Браузера Ответвления или введите уникальный идентификатор в поле Исходного текста. Можно ввести тег, имя ответвления или уникальный префикс хеша SHA1 (например, 73c637), чтобы идентифицировать определенную фиксацию. Оставьте значения по умолчанию, чтобы создать ответвление от главы текущего ответвления. Введите имя в текстовом поле Branch name и нажмите Create.

Переключите, сравните, сохраните и объедините ответвления с Git.

Чтобы переключиться, сравните, сохраните, и объедините ответвления, на вкладке Project, в разделе Source Control, нажмите Branches. Диалоговое окно Branches появляется, где можно просмотреть, переключить, создать и объединить ответвления. Для получения дополнительной информации смотрите Ответвление и Слияние с Git.

Решение конфликтов.

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

Ищите противоречивые файлы в представлении Files> Modified. Идентифицируйте конфликтовавшее содержание папки с помощью состояния сводных данных системы контроля версий. Папки отображают прокрученное состояние системы контроля версий. Это облегчает определять местоположение изменений в файлах, особенно конфликтовал файлы. Можно навести на состояние системы контроля версий для папки, чтобы просмотреть отображение подсказки, сколько файлов внутри изменяется, конфликтовало, добавленные, и удалило.

Совет

Используйте размещение List, чтобы просмотреть файлы, не будучи должен расширить папки.

Проверяйте столбец состояния системы контроля версий (Git или SVN) для файлов с красным предупреждающим символом, который указывает на конфликт. Щелкните правой кнопкой по противоречивому файлу и выберите View Conflicts, чтобы сравнить версии. Отчет сравнения открывает показ различий между противоречивыми файлами.

Когда вы разрешите изменения и захотите фиксировать версию в своей песочнице, щелкните правой кнопкой по файлу и выберите Source Control> Mark Conflict Resolved.

Для Git состояние Branch в панели Git изменяется от MERGING до SAFE.

Выберите представление Files> Modified, чтобы проверять изменения.

Отмена изменений

Эта таблица показывает, как откатить изменения в файлах проекта. Для получения дополнительной информации об откатывании изменений, см. Отмену изменений в Системе контроля версий.

ДействиеПроцедура
Вернитесь локальные изменения.

Чтобы выпустить блокировки и вернуться к версии в последнем обновлении песочницы (то есть, последняя версия вы синхронизировали или получили из репозитория), в представлении Files, щелкают правой кнопкой по файлам, чтобы вернуться и выбрать Source Control> Discard Local Changes and Release Locks.

Чтобы отменить локальные изменения при использовании Git, щелкните правой кнопкой по файлу и выберите Source Control> Revert Local Changes. Чтобы удалить все локальные изменения, нажмите, Branches в Git разделяют на области и нажимают Revert to Head.

Вернитесь файл к заданной версии

Чтобы вернуться файл к заданной версии, щелкните правой кнопкой по файлу и выберите Source Control> Revert using SVN или Source Control> Revert using Git.

В диалоговом окне Revert Files выберите версию, чтобы вернуться к. Выберите версию, чтобы просмотреть информацию об изменении, таком как автор, дата, логарифмическое сообщение. Нажмите Revert.

Если вы возвращаетесь файл к более ранней версии и затем вносите изменения, вы не можете фиксировать файл, пока вы не разрешаете конфликт с историей репозитория.

Вернитесь проект к заданной версии.

Чтобы вернуться проект к заданной версии, на вкладке Project, в разделе Source Control, нажимают Revert Project. В диалоговом окне Revert Files выберите версию, чтобы вернуться к.

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

Если вы выбрали версию и удовлетворены, что информация правильна, нажмите Revert.

Работа с производными файлами в проектах

В целом это - лучшая практика не использовать выведенные и временные файлы из вашего проекта или исключить их из системы контроля версий. Используйте Check Project в панели Precommit Actions или вкладке Project, чтобы проверять на выведенные или временные файлы. Если вы добавляете папку resources в проект, проверки проекта советуют вам удалять это из проекта и предлагать делать фиксацию.

Это - также лучшая практика, должен исключить производные файлы из системы контроля версий, потому что они могут вызвать проблемы. Это включает файлы .mex, содержимое папки resources или других папок генерации кода. Например:

  • С системой контроля версий, которая может сделать захват файла, можно столкнуться с конфликтами. Если resources находится под системой контроля версий, и вы генерируете код, большинство файлов под изменением resources и становитесь заблокированными. Другие пользователи не могут сгенерировать код из-за ошибок разрешения файла. Блокирование двоичных файлов, таких как файлы .mex, может оказать влияние на команду.

  • Удаление resources часто требуется. Однако удаление resources вызывает проблемы, такие как ошибки not a working copy, если папка находится под некоторыми инструментами системы контроля версий (например, SVN).

  • Если вы хотите зарегистрироваться в сгенерированном коде как в артефакте процесса, распространено скопировать некоторые файлы из папки кэша resources и в отдельное местоположение, которое является частью проекта. Тем путем можно удалить временную папку кэша, когда вы должны. Используйте функцию packNGo, чтобы перечислить файлы сгенерированного кода и использовать API проекта, чтобы добавить их в проект с соответствующими метаданными.

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

Найдите файлы проекта с несохраненными изменениями

Можно проверять проект на файлы с несохраненными изменениями. На вкладке Project, в разделе Tools, нажимают Unsaved Changes.

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

Управляйте открытыми файлами при закрытии проекта

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

Чтобы управлять этим поведением, на вкладке Home, в разделе Environment, нажимают Preferences. Перейдите к MATLAB> Project и в разделе Project Shutdown, выберите или снимите флажок, маркировал Check for open project models and close them, unless they are dirty.

Похожие темы