Wiki
Upload an existing project
Put an Unreal project already on your disk under uVersion: initialise the folder in place, check the exclusions, then a checkin from the Pending tab. With the pitfalls of the first upload.
You have an Unreal project on your disk and you want to put it under uVersion. This page covers that exact case: your files do not move, the folder is linked to the server in place, then uploaded.
If, on the contrary, you are starting from an empty repository already created on the server, what you need is a clone, not this page.
Before you begin
Also check that the folder you are about to declare is really the
intended root of the repository. The .uproject file must sit
at most three levels below that root, otherwise the client will not recognise
the project as an Unreal project and the Unreal panel will stay invisible.
Initialise the folder
1. Open the Open Repository window
In the sidebar, open Workspace, then click Open Repository (or the "+" of the tab bar). The window that opens is meant first for cloning an existing repository: that is not what you want here. Scroll all the way down, below the list of repositories and below Open Local Repository..., and click New Repository from a Project Folder...
admin role, because it creates a repository on the
server. See Create a repository.
2. Choose the project root
A folder picker opens, titled
Select your project folder to create a new repository. Choose the
root of your project, the one that contains the .uproject or the folder
that contains it. Nothing is copied or moved: this folder will stay where it is.
3. Name the repository and create
The form appears in the window itself, in the place of the button you have just clicked, not in a new dialog box. It recalls the chosen path and offers a Repository name field pre-filled with the folder name. Adjust it if needed, then click Create & Open. The button stays inactive as long as the name is empty, and this name must be unique across the whole server.
The client then does four things, and nothing else:
- it creates the repository on the server;
-
it writes a
.uversion/folder in your project, which records the repository, the server address and the account that owns the workspace; -
it writes a
.uversionignorefile, only if one does not already exist; - it downloads nothing and touches none of your files.
Check the exclusions
This is the right moment, and it is far simpler now than later. Open the
.uversionignore file at the root: it lists what will never be
uploaded. The default template already sets aside what an Unreal project regenerates
on its own, notably Binaries/, Build/,
DerivedDataCache/, Intermediate/,
Saved/ and Packages/, as well as the project files
of the development environments.
Two rules cannot be changed, and it is better to know them:
-
Plugins/uVersionis always excluded. The Unreal plugin is never versioned: each machine installs the version that matches ITS engine, through the desktop client. Seeing it absent from the repository is normal. -
A path containing a folder named exactly
ThirdPartyis never excluded, whatever rule you write. Your third-party libraries therefore always go up.
Since Packages/ is excluded, a packaged build will never go into the
repository: it is distributed through the build publishing feature, not through
versioning.
Upload
4. Observe the state in the Files tab
Your whole project appears there with the untracked status: present on your side, not yet on the server. That is the normal state of a folder that has just been initialised. The counter badge above the tree sums up the same thing (N local only), the Rev column shows v0 everywhere, and the Pending tab already carries a badge with the same number: the client spotted your files on its own, there is nothing to "add" by hand.
5. Open the Pending tab
All your files are already there, marked add, filed in the
Default changelist. The left column shows the tree of
what will go up, the right panel the flat list with a
Diff and a Remove per row. Only remove here
what you never want to version: the right answer to "this folder has nothing
to do here" is a rule in .uversionignore, not a Remove row
by row.
6. Describe, then Checkin all
Write a message in Describe your changes...: it is mandatory, the Checkin all button stays inactive as long as the area is empty. "First upload of the project" works perfectly well. Then click Checkin all (N).
The upload then runs on its own, in several phases displayed in the header bar: chunking, checking what the server already holds, transfer, then validation. You can switch tabs in the meantime, the progress follows. An interrupted transfer resumes where it left off rather than starting all over. At the end, the uploaded files go to read-only: that is the sign that they are on the server and that they will have to be reserved to be modified.
Pitfalls of the first upload
I am looking for the upload button in Files
It is not there. The Files tab shows the state and serves for one-off actions; the upload is done from the Pending tab, where every untracked or modified file appears on its own. If Pending shows a badge, then there is something to upload.
"Failed to acquire locks for N file(s)"
One or more files are already reserved by someone else, and the whole upload is cancelled, not only the files concerned. Look at the pending reservations tab to find out who holds them, and ask them to release them.
A file I selected went up as a deletion
A path that is uploaded but absent from the disk at the moment of the transfer is interpreted as a deletion. This happens if you move or rename files between the selection and the upload. Avoid working in the folder during the operation.
"This folder is already a uVersion repository"
The folder already contains a .uversion/. Use
Open Local Repository... instead of recreating it.
The folder is refused
The client deliberately refuses certain locations: the root of a disk, a system folder, an automatic-startup folder, or a relative path. Choose an ordinary working folder.