uVersion
Português
Baixar →

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

Feche o editor Unreal Ao final de um envio, os arquivos enviados voltam a ser somente leitura no disco. Ora, o plugin uVersion, ao abrir o editor, reserva automaticamente todo asset que tenha ficado modificável: se o editor estiver aberto durante a operação, ele retoma imediatamente bloqueios sobre o que você acabou de enviar. Como os bloqueios nunca expiram por conta própria, você os manteria sem saber.

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...

Não vê esse botão? Ele só aparece para o papel admin, porque cria um repositório no servidor. Veja Criar um repositório.
A parte de baixo da janela Open Repository: a caixa Download files after clone, o botão Open Local Repository e, abaixo, o botão New Repository from a Project Folder.

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 formulário de criação no lugar, na janela Open Repository: o caminho da pasta escolhida em uma linha, o campo Repository name pré-preenchido com o nome da pasta, os botões Create and Open e Cancel.

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.
Esta pasta passa a ser sua A conta que inicializa a pasta torna-se sua proprietária, e é sob essa identidade que a linha de comando agirá em seguida nesta pasta. Um colega não deve copiar a sua pasta: ele deve clonar o repositório do lado dele, senão obterá a mensagem This workspace belongs to ....

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 ThirdParty nunca é 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.

A aba Files logo após a inicialização: o selo N local only acima da árvore, o status untracked em cada linha, a coluna Rev em v0 e o selo do mesmo número na aba Pending.

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.

A aba Pending no primeiro envio: a árvore de arquivos à esquerda, a changelist Default à direita com cada arquivo marcado add, os botões Diff e Remove por linha, a área Describe your changes e o botão Checkin all.

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 painel da changelist Default: a área Describe your changes preenchida com uma mensagem de primeiro envio, o botão Checkin all ativo com o número de arquivos.
O envio reserva para você O checkin coloca ele mesmo os bloqueios dos arquivos que envia e depois os libera assim que a revisão é validada. Em um primeiro envio isso não tem consequência, você está sozinho nesses arquivos. Em um repositório já compartilhado, um arquivo reservado por outra pessoa faz o envio falhar: veja as armadilhas mais abaixo.

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.

E depois