Wiki
Загрузить существующий проект
Поставить под uVersion проект Unreal, уже находящийся на вашем диске: инициализировать папку на месте, проверить исключения, затем checkin со вкладки Pending. С ловушками первой загрузки.
У вас есть проект Unreal на диске, и вы хотите поставить его под uVersion. Эта страница охватывает именно этот случай: ваши файлы не перемещаются, папка связывается с сервером на месте, затем загружается.
Если же вы, напротив, начинаете с пустого репозитория, уже созданного на сервере, то вам нужен клон, а не эта страница.
Перед началом
Проверьте также, что папка, которую вы собираетесь объявить, действительно является
нужным корнем репозитория. Файл .uproject должен находиться
не более чем в трёх уровнях под этим корнем, иначе клиент не распознает
проект как проект Unreal и панель Unreal останется невидимой.
Инициализировать папку
1. Открыть окно Open Repository
На боковой панели откройте Workspace, затем нажмите Open Repository (или «+» на панели вкладок). Открывающееся окно служит сначала для клонирования существующего репозитория: это не то, что вы хотите здесь. Прокрутите до самого низа, под списком репозиториев и под Open Local Repository..., и нажмите New Repository from a Project Folder...
admin, потому что создаёт репозиторий на
сервере. См. Создать репозиторий.
2. Выбрать корень проекта
Открывается выбор папки с заголовком
Select your project folder to create a new repository. Выберите
корень вашего проекта, тот, что содержит .uproject, или папку,
которая его содержит. Ничего не копируется и не перемещается: эта папка останется там, где она есть.
3. Назвать репозиторий и создать
Форма отображается в самом окне, на месте кнопки, которую вы только что нажали, а не в новом диалоговом окне. Она напоминает выбранный путь и предлагает поле Repository name, предзаполненное именем папки. Скорректируйте его при необходимости, затем нажмите Create & Open. Кнопка остаётся неактивной, пока имя пустое, и это имя должно быть уникальным на всём сервере.
Клиент тогда делает четыре вещи, и ничего больше:
- он создаёт репозиторий на сервере;
-
он записывает папку
.uversion/в ваш проект, которая запоминает репозиторий, адрес сервера и учётную запись владельца рабочей области; -
он записывает файл
.uversionignore, только если такого ещё не существует; - он ничего не скачивает и не трогает ни один из ваших файлов.
Проверить исключения
Сейчас подходящий момент, и это гораздо проще сейчас, чем потом. Откройте
файл .uversionignore в корне: он перечисляет то, что никогда не будет
загружено. Шаблон, заданный по умолчанию, уже отбрасывает то, что проект Unreal воссоздаёт
сам, в частности Binaries/, Build/,
DerivedDataCache/, Intermediate/,
Saved/ и Packages/, а также файлы проекта
сред разработки.
Два правила изменить нельзя, и лучше их знать:
-
Plugins/uVersionвсегда исключён. Плагин Unreal никогда не версионируется: каждая машина устанавливает версию, соответствующую ЕЁ движку, через настольный клиент. То, что его нет в репозитории, нормально. -
Путь, содержащий папку с именем ровно
ThirdParty, никогда не исключается, какое бы правило вы ни написали. Ваши сторонние библиотеки поэтому всегда уходят.
Поскольку Packages/ исключён, упакованная сборка никогда не попадёт в
репозиторий: она распространяется через функцию публикации сборок, а не через
версионирование.
Загрузить
4. Увидеть состояние на вкладке Files
Весь ваш проект появляется там со статусом untracked: есть у вас, ещё нет на сервере. Это нормальное состояние папки, которая только что была инициализирована. Значок счётчика над деревом резюмирует то же самое (N local only), столбец Rev показывает v0 повсюду, а вкладка Pending уже несёт значок с тем же числом: клиент сам обнаружил ваши файлы, ничего не нужно «добавлять» вручную.
5. Открыть вкладку Pending
Все ваши файлы уже там, помечены add, разложены в
список изменений Default. Левый столбец показывает дерево
того, что уйдёт, правая панель — плоский список с
Diff и Remove в каждой строке. Убирайте здесь только
то, что никогда не хотите версионировать: правильный ответ на «этой папке здесь
нечего делать» — это правило в .uversionignore, а не Remove по строкам
одну за одной.
6. Описать, затем Checkin all
Напишите сообщение в Describe your changes...: оно обязательно, кнопка Checkin all остаётся неактивной, пока область пуста. «Первая загрузка проекта» вполне подходит. Затем нажмите Checkin all (N).
Затем загрузка идёт сама собой, в несколько фаз, отображаемых в строке заголовка: разбиение, проверка того, чем сервер уже владеет, передача, затем проверка. В это время вы можете сменить вкладку, прогресс следует за вами. Прерванная передача возобновляется с того места, где была, а не начинает всё заново. В конце загруженные файлы становятся доступными только для чтения: это признак того, что они на сервере и что их придётся зарезервировать, чтобы изменить.
Ловушки первой загрузки
Я ищу кнопку загрузки в Files
Её там нет. Вкладка Files показывает состояние и служит для разовых действий; загрузка делается со вкладки Pending, где всякий неотслеживаемый или изменённый файл появляется сам собой. Если Pending показывает значок, значит есть что загрузить.
«Failed to acquire locks for N file(s)»
Один или несколько файлов уже зарезервированы кем-то другим, и вся загрузка отменяется, а не только затронутые файлы. Посмотрите вкладку ожидающих резерваций, чтобы узнать, кто их держит, и попросите его освободить их.
Выбранный мной файл ушёл как удаление
Путь, который загружается, но отсутствует на диске в момент передачи, толкуется как удаление. Это происходит, если вы перемещаете или переименовываете файлы между выбором и загрузкой. Избегайте работы в папке во время операции.
«This folder is already a uVersion repository»
Папка уже содержит .uversion/. Используйте
Open Local Repository... вместо того, чтобы создавать её заново.
Папка отклонена
Клиент намеренно отклоняет некоторые расположения: корень диска, системную папку, папку автозапуска или относительный путь. Выберите обычную рабочую папку.