Управление версиями
Version Control Systems or VCS (Git, SVN, Perforce, Mercurial, Bazaar, CVS, TFS, etc.) are used to manage changes to code and data, and enable teams to coordinate their development efforts. To make tracking of changes efficient and reduce the amount of disk space required, you should know which files must be tracked by the VCS and which can be ignored.Системы контроля версий или VCS (Git, SVN, Perforce, Mercurial, Bazaar, CVS, TFS и т.д.) используются для управления изменениями в коде и данных и позволяют командам разработчиков координировать свою работу. Для эффективного отслеживания изменений и сокращения объема требуемого дискового пространства нужно знать, какие файлы должны отслеживаться VCS, а какие можно игнорировать.
Ignore ListСписок игнорирования#
In any project there are files and folders that are not subject to version control. These can be files created by the compiler, *.obj, *.tlog, or an output folder used to store binary executables.В любом проекте есть файлы и папки, для которых не требуется контроль версий. Это могут быть файлы, созданные компилятором, *.obj, *.tlog или конечная папка, используемая для хранения двоичных исполняемых файлов.
The following files and folders in you project's root can be ignored, as they are generated automatically on your disk:Следующие файлы и папки в корневом каталоге вашего проекта можно игнорировать, поскольку они автоматически создаются на вашем диске:
Common ignore list for every API and IDEОбщий список игнорирования для любого API и IDE#
- .thumbnails
- bin
Add this folder to version control before updating the engine’s version or reconfiguring the project in SDK Browser to provide the updated bin to all developers. Добавьте эту папку в систему контроля версий перед обновлением версии движка или перенастройкой проекта в SDK Браузере, чтобы предоставить всем разработчикам обновленную версию папки bin.
- data/.thumbnails
- data/microprofile_dump_html
- junk
- obj
- source/x64
- CMakeCache.txt
- source/**/*.obj
- unigine_editor.cfg
- *.cache
- *.modified
- *.tlog
.thumbnails
bin
data/.thumbnails
data/microprofile_dump_html
junk
obj
source/x64
CMakeCache.txt
source/**/*.obj
unigine_editor.cfg
*.cache
*.modified
*.tlog
Additional ignore list for C++ (CMake) projectsДополнительный список игнорирования для проектов на C++ (CMake)#
Add these entries to the common .gitignore specified above when developing projects based on C++ (CMake).Добавьте эти строки в общий .gitignore, указанный выше, при разработке проектов на основе C++ (CMake).
- build-*
- CMakeFiles
- CMakeScripts
- CMakeCache.txt
- cmake_install.cmake
- CMakeUserPresets.json
- compile_commands.json
- CTestTestfile.cmake
build-*
CMakeFiles
CMakeScripts
CMakeCache.txt
cmake_install.cmake
CMakeUserPresets.json
compile_commands.json
CTestTestfile.cmake
Additional ignore list for C++ (Visual Studio 2015+) projectsДополнительный список игнорирования для проектов на C++ (Visual Studio 2015+)#
Add these entries to the common .gitignore specified above when developing projects based on C++ (Visual Studio 2015+).Добавьте эти записи в общий .gitignore, указанный выше, при разработке проектов на основе C++ (Visual Studio 2015+).
- .vs
- *.vcxproj.user
- *.VC.db
- *.opendb
- *.opensdf
- *.pro.user
- *.sdf
- *.suo
.vs
*.vcxproj.user
*.VC.db
*.opendb
*.opensdf
*.pro.user
*.sdf
*.suo
Files and Folders to Add to Version ControlФайлы и папки для добавления в систему управления версиями#
The following files and folders should be subject to version control:Следующие файлы и папки должны учитываться системой контроля версий:
data folder with all its contentsпапка data со всем ее содержимым
If you do not want to share the editor and application settings with other team members, add the following configuration files to .gitignore:Если вы не хотите делиться настройками редактора и приложения с другими членами команды, добавьте в .gitignore следующие файлы конфигурации:
- data/configs/unigine.user
- data/configs/default.user
- data/.editor2/*
This folder also contains runtime files (data/.runtimes) that should be committed. However, if you occasionally fail to commit runtimes, the runtimes validation process will run when UNIGINE Editor is started, and the missing/outdated runtimes are added/updated. The runtime validation is also performed on adding a new mount.В этой папке также содержатся файлы среды выполнения — рантаймы (data/.runtimes), которые нужно закоммитить. Однако, если вы случайно не закоммитили рантаймы, при запуске редактора UNIGINE будет запущен процесс проверки рантаймов, а отсутствующие/устаревшие рантаймы будут добавлены/обновлены. Валидация рантаймов также проводится при подключении новой точки монтирования.
-
source folder contents except for the elements mentioned aboveсодержимое папки source, за исключением элементов, упомянутых выше
This folder is created only for projects that use C++ or C# API.Эта папка создается только для проектов, использующих C++ или C# API. -
*.cache files containing compiled shader cacheфайлы *.cache, содержащие скомпилированный шейдерный кэш
When team members develop a project using different GPUs or/and driver’s version for their machine configuration, it is better to add the shader cache files to .gitignore since these file will be recompiled by an end developer’s computer.Когда члены команды разрабатывают проект, используя разные графические процессоры или/и версию драйвера для своей конфигурации компьютера, лучше добавить файлы шейдерного кэша в .gitignore, поскольку эти файлы будут перекомпилированы компьютером конечного разработчика. - *.project file (and *.csproj for C# projects)файл *.project (и *.csproj для проектов на C#)
Other NoticesДругие уведомления#
This chapter contains recommendations based on the user experience.В этой главе содержатся рекомендации, основанные на пользовательском опыте.
PerforcePerforce#
- Set the Allwrite attribute in Perforce Workspace (the Advanced tab). It's disabled by default, which may cause issues with SDK Browser and *.project file.Установите атрибут Allwrite в поле Perforce Workspace (вкладка Advanced). По умолчанию он отключен, что может вызвать проблемы с браузером SDK и файлом *.project.
- Checking out and locking a file does not prevent other users from modifying it, since that's only a Perforce abstraction.Получение файла из репозитория и блокировка файла не мешает другим пользователям изменять его, поскольку это всего лишь абстракция Perforce.