Wiki
Enviar um projeto existente
Colocar sob o uVersion um projeto Unreal que já está no seu disco: inicializar a pasta no lugar, verificar as exclusões e depois um checkin a partir da aba Pending. Com as armadilhas do primeiro envio.
Você tem um projeto Unreal no seu disco e quer colocá-lo sob o uVersion. Esta página cobre exatamente esse caso: seus arquivos não se movem, a pasta é ligada ao servidor no lugar e depois enviada.
Se, ao contrário, você parte de um repositório vazio já criado no servidor, o que você precisa é de um clone, não desta página.
Antes de começar
Verifique também que a pasta que você vai declarar é de fato a
raiz desejada do repositório. O arquivo .uproject deve
ficar no máximo três níveis abaixo dessa raiz, senão o cliente não reconhecerá
o projeto como um projeto Unreal e o painel Unreal permanecerá invisível.
Inicializar a pasta
1. Abrir a janela Open Repository
Na barra lateral, abra Workspace e depois clique em Open Repository (ou o “+” da barra de abas). A janela que se abre serve primeiro para clonar um repositório existente: não é o que você quer aqui. Desça até o fim, abaixo da lista de repositórios e abaixo de Open Local Repository..., e clique em New Repository from a Project Folder...
admin, porque cria um repositório no
servidor. Veja Criar um repositório.
2. Escolher a raiz do projeto
Um seletor de pastas se abre, intitulado
Select your project folder to create a new repository. Escolha a
raiz do seu projeto, aquela que contém o .uproject ou a pasta
que o contém. Nada é copiado nem movido: essa pasta ficará onde está.
3. Nomear o repositório e criar
O formulário aparece na própria janela, no lugar do botão que você acabou de clicar, e não em uma nova caixa de diálogo. Ele relembra o caminho escolhido e oferece um campo Repository name pré-preenchido com o nome da pasta. Ajuste se preciso e depois clique em Create & Open. O botão fica inativo enquanto o nome estiver vazio, e esse nome deve ser único em todo o servidor.
O cliente faz então quatro coisas, e nada mais:
- ele cria o repositório no servidor;
-
ele grava uma pasta
.uversion/no seu projeto, que memoriza o repositório, o endereço do servidor e a conta proprietária do workspace; -
ele grava um arquivo
.uversionignore, apenas se ainda não existir um; - ele não baixa nada e não toca em nenhum dos seus arquivos.
Verificar as exclusões
É o momento certo, e é bem mais simples agora do que depois. Abra o
arquivo .uversionignore na raiz: ele lista o que nunca será
enviado. O modelo posto por padrão já descarta o que um projeto Unreal regenera
sozinho, em especial Binaries/, Build/,
DerivedDataCache/, Intermediate/,
Saved/ e Packages/, bem como os arquivos de projeto
dos ambientes de desenvolvimento.
Duas regras não são modificáveis, e é melhor conhecê-las:
-
Plugins/uVersioné sempre excluído. O plugin Unreal nunca é versionado: cada máquina instala a versão que corresponde ao SEU motor, via cliente desktop. Vê-lo ausente do repositório é normal. -
Um caminho contendo uma pasta chamada exatamente
ThirdPartynunca é excluído, seja qual for a regra que você escreva. Suas bibliotecas de terceiros, portanto, sempre sobem.
Como Packages/ está excluído, um build empacotado nunca irá para o
repositório: ele é distribuído pela função de publicação de builds, não pelo
versionamento.
Enviar
4. Constatar o estado na aba Files
Todo o seu projeto aparece ali com o status untracked: presente no seu lado, ainda não no servidor. É o estado normal de uma pasta que acabou de ser inicializada. O selo de contagem acima da árvore resume a mesma coisa (N local only), a coluna Rev indica v0 em toda parte, e a aba Pending já traz um selo com o mesmo número: o cliente identificou seus arquivos sozinho, não há nada a “adicionar” à mão.
5. Abrir a aba Pending
Todos os seus arquivos já estão ali, marcados como add, organizados na
changelist Default. A coluna da esquerda mostra a árvore do
que vai subir, o painel da direita a lista plana com um
Diff e um Remove por linha. Aqui, remova apenas
o que você nunca queira versionar: a boa resposta a “esta pasta não tem nada
a fazer aqui” é uma regra em .uversionignore, não um Remove linha
a linha.
6. Descrever e depois Checkin all
Escreva uma mensagem em Describe your changes...: ela é obrigatória, o botão Checkin all fica inativo enquanto a área estiver vazia. “Primeiro envio do projeto” já basta. Depois clique em Checkin all (N).
O envio decorre em seguida sozinho, em várias fases exibidas na barra de cabeçalho: fatiamento, verificação do que o servidor já possui, transferência, e depois validação. Você pode mudar de aba durante esse tempo, o progresso acompanha. Uma transferência interrompida retoma de onde parou em vez de recomeçar tudo. No fim, os arquivos enviados passam a somente leitura: é o sinal de que estão no servidor e de que será preciso reservá-los para modificá-los.
Armadilhas do primeiro envio
Procuro o botão de envio em Files
Ele não está ali. A aba Files mostra o estado e serve para ações pontuais; o envio é feito a partir da aba Pending, onde todo arquivo não rastreado ou modificado aparece por conta própria. Se o Pending exibir um selo, é que há algo a enviar.
“Failed to acquire locks for N file(s)”
Um ou mais arquivos já estão reservados por outra pessoa, e o envio inteiro é cancelado, não apenas os arquivos em questão. Olhe a aba das reservas pendentes para saber quem os detém, e peça a ela que os libere.
Um arquivo que selecionei foi como exclusão
Um caminho enviado mas ausente do disco no momento da transferência é interpretado como uma exclusão. Isso acontece se você move ou renomeia arquivos entre a seleção e o envio. Evite trabalhar na pasta durante a operação.
“This folder is already a uVersion repository”
A pasta já contém um .uversion/. Use
Open Local Repository... em vez de recriá-lo.
A pasta é recusada
O cliente recusa deliberadamente certos locais: a raiz de um disco, uma pasta de sistema, uma pasta de inicialização automática ou um caminho relativo. Escolha uma pasta de trabalho comum.