SVN Plugin
SVN Plugin is designed to let the version control system (SVN) track all file changes performed in UNIGINE Editor. The plugin tracks all actions (with some exceptions) and processes them. All tracked actions go to SVN Commit via the SVN client, where they are assigned the corresponding status. This will help users avoid manual work. SVN Plugin предназначен для того, чтобы сделать все взаимодействия с файлами, происходящие в редакторе, прозрачными для системы контроля версий Subversion (или SVN). Все действия (за некоторым исключением) должны отслеживаться плагином и корректно интерпретироваться. Отслеженные взаимодействия через svn-клиент попадают в SVN Commit, где им присваивается соответствующий статус. Это поможет пользователям не тратить время на правку вручную.
What is SVN PluginЧто из себя представляет SVN Plugin#
SVN Plugin has no interface and starts automatically after the Asset System is initialized and all assets are imported. Similar to other plugins, this plugin can be loaded and unloaded via the Editor Plugins window (Help -> Plugins). When the plugin is loaded and running, it receives data about every event in the Asset System (asset or directory adding/deleting/renaming or asset editing). For every such event the svn.exe console tool is called and the corresponding process with the required arguments is started. SVN Plugin не имеет интерфейса и запускается автоматически после инициализации Ассет-системы и импорта всех ассетов. Как и любой другой плагин его можно загрузить и выгрузить через окно Editor Plugins (Help -> Plugins). Когда плагин загружен, в процессе работы он получает от Редактора сигналы о событиях в ассет системе через API (добавление/удаление/переименование ассета или каталога, или изменение ассета). Для каждого такого события выполняется вызов консольного инструмента svn.exe и запускается соответствующий процесс с требуемыми аргументами.
System RequirementsСистемные требования#
The following is required for SVN Plugin correct operation: Для корректной работы SVN Plugin необходимо следующее:
The Subversion client (svn.exe) must be installed on the computer and it should have command-line tools. Make sure that the svn.exe is available, otherwise you will see the following error message: На компьютере должен быть установлен Subversion client (svn.exe) и обязательно с консольными инструментами. Проверьте в каталоге наличие файла svn.exe, и если его нет, то в консоли Редактора вы увидите следующую ошибку:
[SVN Plugin] 'svn.exe' not found. [SVN Plugin] 'svn.exe' not found.
Run the SVN installer, click Modify, and then click on the command line client tools icon to install it. Запустите установщик SVN, выберите Modify и затем в списке включите установку command line client tools.
Add the path to the svn.exe file to the PATH environment variable. You can do that as follows: Также необходимо, чтобы путь к svn.exe был добавлен в переменную окружения PATH. Сделать это можно так:
Type Advanced System Settings in the search bar next to the Start button and click on the matching option. В панели поиска рядом с кнопкой Start набираем Advanced System Settings и открываем.
In the window that opens, select Environment Variables. В окне щелкаем Environment Variables (Переменные окружения).
Select the system variable Path from the list and click Edit. Выбираем в списке системную переменную Path и нажимаем Edit.
In the window that opens, select New and add the path. For TortoiseSVN it will have the default value: C:\Program Files\TortoiseSVN\bin. В появившемся окошке щелкаем New и добавляем путь, для TortoiseSVN по умолчанию это будет: C:\Program Files\TortoiseSVN\bin.
Then select ОК. Затем жмем ОК.
Your working repository must be managed by SVN. Otherwise, an error message will appear in the console window: Ваш рабочий репозиторий должен быть под управлением SVN, в противном случае в консоли появится ошибка вида:
[SVN Plugin] Start initialization…
[SVN Plugin] `D:/SVN/test path/data/` is not SVN repository.
SVN Plugin LimitationsОграничения SVN Plugin#
The plugin does not provide fully-fledged integration with version control systems and can't solve all issues. Its aim is to facilitate tracking of major content changes done by multiple developers working on the same project in the Editor and saving these changes to the repository. Therefore, be aware of the following restrictions: Плагин не является универсальным инструментом интеграции с системами контроля версий и не решает всех проблем, его задача - упростить отслеживание основных изменений при совместной работе над контентом проекта в Редакторе и сохранение этих изменений в репозиторий. В связи с этим имеются следующие ограничения:
The plugin only manages the /data directory. This means that the plugin can't track changes to directories or assets outside of that directory. Плагин работает только с директорией /data. Соответственно любые изменения каталогов или ассетов вне этой директории плагином не отслеживаются;
The plugin doesn't process unicode characters like: "لا أدري不知道боль". Therefore, only use English characters, numbers or space in file and directory names. Using other characters in the file and folder names may cause changing the recursive status to non-versioned. Howether, this restriction doesn't apply to the file content. Плагин не работает с юникодными символами вида "لا أدري不知道боль". Поэтому в именах файлов и папок рекомендуется использование английских символов, цифр и пробела (к содержимому файлов это требование не относится). Использование иных может привести к тому, что файлы (рекурсивно) будут иметь статус non-versioned;
The Cleaner tool allows deleting lost runtime files (Lost Runimes), but this can't be handled by the SVN Plugin. Files deleted using this feature will have the missing status. В инструменте Cleaner есть возможность удаления потерянных рантаймов (Lost Runimes), но SVN Plugin-ом это никак не обрабатывается. Удаленные таким образом рантаймы будут иметь статус missing;
Editor plugins run after Asset System is initialized and all assets are imported. Therefore, if project files have been added or removed before the Editor is launched, SVN Plugin can't track these changes upon initialization, and they will have the non-versioned/missing status in SVN Commit. Плагины редактора стартуют после инициализации Ассет-системы и импорта всех ассетов. Поэтому если до запуска Редактора были добавлены/удалены файлы в проекте, то после запуска Редактора SVN плагин уже не сможет отследить эти файлы и в SVN Commit они будут иметь статус non-versioned/missing;
The plugin doesn't track changes in the mounted directories (mount). Плагин не отслеживает изменений в смонтированных каталогах (mount);
The plugin doesn't solve and doesn't simplify conflict solving. It only helps SVN to correctly determine the file status. Плагин не разрешает и не упрощает разрешение конфликтов. Его задача только помочь SVN корректно выставлять статус для файлов.
The TortoiseSVN Ignore list is not used by the plugin — such files still are tracked. Thus be aware that if such files and the directories containing them are changed, they will be added to the SVN Commit list. For example: when a texture is imported to a directory added to the Ignore list, the plugin will process it and mark it with the added status instead of ignoring that texture and mark it with non-versioned status. Make sure to exclude such files from the commit! Плагин игнорирует внесение файлов в Ignore list TortoiseSVN и продолжает отслеживать их. Это значит что при внесении изменений в такие файлы, а также в директории их содержащие, эти файлы/директории появятся в списке SVN Commit и будут закоммичены, будьте внимательны. Пример: при импорте текстуры в директорию, находящуюся в Ignore list, вместо того, чтобы проигнорировать текстуру и выставить ей статус non-versioned, плагин ее обработает и пометит как added. Не забывайте исключать такие файлы из коммита!
When the plugin is running, the Editor may slow down. This is caused by processing of all file interactions by SVN, which is time-consuming. The more files are affected by changes, the longer the processing is. This is especially obvious when adding or removing files, in other cases processing is rather quick. При работе плагина может наблюдаться замедление в работе Редактора, “подвисание”. Это связано с тем, что SVN обрабатывает все взаимодействия с файлами, что требует времени. Чем большее количество файлов затронуто изменениями, тем дольше будет процесс ожидания окончания действия. В особенности это актуально при добавлении/удалении файлов, в остальных случаях все работает достаточно быстро.
How to Work With SVN PluginПорядок работы с SVN Plugin#
From the user's point of view, the plugin operation has almost no effect on the Editor behavior — you won't observe any changes. You can delete, add, rename, edit, and create files and directories just the same way as you have done before, only with SVN Plugin tracking and processing all changes made by you. Во время работы плагин остается для вас незаметным, в этом смысле работа с плагином практически не отличается от работы без него. Вы также можете удалять, добавлять, переименовывать, изменять, перемещать и создавать файлы и каталоги, но теперь SVN Plugin будет отслеживать и обрабатывать все ваши действия.
The working pipeline basically is as follows: Общий порядок работы таков:
Before getting started, update (SVN Update) and clean up (SVN Cleanup) the repository. Перед началом работы обновите (SVN Update) и очистите репозиторий (SVN Cleanup).
Run the Editor and work as usual (you can add and edit files as you did it before). Затем запустите редактор и работайте в обычном режиме (добавляйте, удаляйте и изменяйте файлы и каталоги, как вы всегда это делали).
When you are done, save the project and close the Editor. We recommend closing the Editor because an update may be required before committing, and it can break everything. После окончания работы сохраните проект и закройте редактор. Закрывать редактор рекомендуется, поскольку перед коммитом может потребоваться апдейт, а он может все сломать.
Commit all your changes to the repository (SVN Commit). If conflicts arise, resolve them as you have done before. However be aware that all changes made without the Editor running (via File Explorer) will have an invalid status. Закоммитьте свои изменения в репозиторий (SVN Commit). При возникновении конфликтов разрешайте их так же, как делали ранее, но учтите, что все изменения сделанные вне редактора (через проводник) корректного статуса иметь не будут.
SVN Plugin Usage ExamplesПримеры работы SVN Plugin#
Adding New AssetДобавление нового ассета#
The user imports a new asset humanoid_run_forward.fbx to the directory. The new FBX asset, its metadata, and all runtime files with their metafiles will be displayed in the SVN Commit. All files will have the added status.Пользователь импортирует в директорию новый ассет humanoid_run_forward.fbx. В SVN Commit будет отображаться новый FBX-ассет, его мета и все сгенерированные рантаймы с их метами. Все файлы будут иметь статус added.
Renaming AssetПереименование ассета#
The user renames an asset from PNG.png to ddd.png. The texture asset and its metadata with the old name will show up as deleted in SVN Commit, the same files with the new name will be displayed as added(+).Пользователь переименовывает ассет PNG.png в ddd.png. В SVN Commit ассет текстуры и ее мета со старым именем должны отображаться как deleted, а с новым именем как added(+).
Moving AssetПеремещение ассета#
The user moves a complex asset import_materials.fbx from one directory to another. The asset and its metadata will be displayed in SVN Commit, then the files from the old directory will have the deleted status, and those added to the new directory will be marked as added(+).Пользователь перемещает сложный ассет import_materials.fbx из одной директории в другую. В SVN Commit будет отображаться сам ассет и его мета, при этом файлы из старой директории будут иметь статус deleted, а появившиеся в новой директории (перенесенные) будут отмечены как added(+).
Deleting AssetУдаление ассета#
The user deletes a complex asset humanoid_run_forward.fbx. The asset, its metadata, and all runtime files with their metadata will have the deleted status within SVN Commit.Пользователь удаляет сложный ассет humanoid_run_forward.fbx. В SVN Commit сам ассет, его мета и все рантаймы, которые были сгенерированы для него, вместе с их собственными метами будут иметь статус deleted.
Changing Asset Import ParametersИзменение параметров импорта ассета#
When an asset is re-imported with new parameters, its runtime files and metadata will have the modified status in SVN Commit. The asset itself remains unchanged. При реимпорте ассета с новыми параметрами импорта в SVN Commit мета и рантаймы ассета будут иметь статус modified. Сам ассет при этом останется неизменным.
Disabling SVN PluginОтключение SVN Plugin#
SVN Plugin is disabled the same way as other plugins in the Editor. Select Help → Plugins in the menu, find SVN Plugin in the list and click Unload. After that, the plugin will be disabled until the Editor is restarted or the Load button is clicked.SVN Plugin отключается так же, как и все остальные редакторские плагины. В меню нужно выбрать Help → Plugins, затем найти в списке SVN Plugin и кликнуть Unload. После этого плагин будет отключен до перезапуска Редактора или нажатия кнопки Load.