Manuals

Importar Dados Para Um Repositório

Importar

Se estás a importar um repositório existente, que já contém alguns projectos então a sua estrutura já está definida. Se estás a importar dados para um novo repositório, então vale a pena tirar algum tempo para pensar no modo em como será organizado. Ler “Estrutura do Repositório” para aconselhamento posterior.

Esta secção descreve o comando importar do Subversion, que foi desenhado para importar uma hierarquia de pastas para o repositório de uma só vez. Apesar de efectuar o trabalho, tem algumas deficiências:

  • Não existe modo de seleccionar ficheiros e pastas a incluir, tal como utilizar as configurações do padrão global para ignorar arquivos.

  • A pasta importada não se torna uma cópia de trabalho. Terás de efectuar um SVN exportar para copiar os ficheiros de volta do servidor.

  • É fácil importar a pasta de nível errado para o repositório.

Por essas razões recomendamos que não uses de modo algum o comando importar mas em alternativa segue o metodo de dois-passos descrito em “Importar no local”,a não ser que estejas a executar o único passo de criar uma estrutura inicial /trunk /tags /branches no teu repositório. Uma vez que aqui estás, é assim como funciona o importar básico...

Antes de importares o teu projecto para o repositório deverás:

  1. Remover todos os ficheiros que não são precisos para construir o projecto (ficheiros temporários, ficheiros gerados pelo compilador, por exemplo, *.obj, binários compilados, ...)

  2. Organizar os ficheiros em pastas e subpastas. Apesar de ser possível renomear/remover os ficheiros mais tarde, é altamente recomendado estruturar correctamente o teu projecto antes de o importar!

Agora seleccionar a pasta de topo da estrutura de pastas do teu projecto no windows explorer e, clica c/ o botão direito para abrir o menu de contexto. Selecciona o comando TortoiseSVNImportar... que mostrará a caixa de diálogo:

Figura 4.6. Caixa de diálogo Importar

Caixa de diálogo Importar


In this dialog you have to enter the URL of the repository location where you want to import your project. It is very important to realise that the local folder you are importing does not itself appear in the repository, only its content. For example if you have a structure:

C:\Projects\Widget\source
C:\Projects\Widget\doc
C:\Projects\Widget\images
      

and you import C:\Projects\Widget into http://mydomain.com/svn/trunk then you may be surprised to find that your subdirectories go straight into trunk rather than being in a Widget subdirectory. You need to specify the subdirectory as part of the URL, http://mydomain.com/svn/trunk/Widget-X. Note that the import command will automatically create subdirectories within the repository if they do not exist.

A mensagem de importar é utilizada como mensagem de registo.

Por defeito, ficheiros e pastas que correspondem aos padrões globais para ignorar arquivos não são importados. Para substituir este comportamento, poderás usar a caixa de verificação Incluir arquivos ignorados. Consultar em “Preferências Gerais”, para mais informações em como introduzir um padrão de arquivos a ignorar.

Assim que premires OK TortoiseSVN importa a arvore de pastas completa, íncluindo todos ficheiros, para o repositório. O projecto está agora armazenado, sob controlo de versões, no repositório. Note-se que a pasta que importaste NÃO está sob controlo de versões. Para obter uma cópia de trabalhocom controle de versões, necessitarás de efectuar um SVN Exportar da versão que acabaste de importar. Ou lê, para descobrir como importar uma pasta no local.

Importar no local

Assumindo que já tens um repositório e queres adicionar uma pasta á sua estrutura, segue estes passos:

  1. Usa o repositório do navegador para criar uma nova pasta de projecto directamente no repositório. Se estiveres a usar um dos layouts padrão, provavelmente vais querer criar este como uma sub-pasta do trunk em vez de na raiz do repositório. O repositório do navegador mostra a estrutura do repositório assim como o explorador do Windows, assim podes ver como as coisas são organizadas.

  2. Efectua checkout da nova pasta sobre a pasta que queres importar. Receberás um aviso que a pasta local não está vazia, ignora-o. Terás agora uma pasta de topo versionada com conteudo não-versionado.

  3. Usa TortoiseSVNAdicionarmenuitem> nesta pasta versionada para adicionar algum ou todo o seu contesvn:ignore em pastas e fazer qualquer outra alteraSubmete a pasta de topo,e ter

Ficheiros Especiais

Às vezes é necessário ter um ficheiro sob o controlo de versões que contém dados específicos, isto é, tens um ficheiro que cada desenvolvedor/utilizador necessita modificar para satisfazer o seu/sua configuração. Mas o versionamento de tal ficheiro é difícil porque, cada utilizador iria, a todo o momento, submeter as suas alterações ao repositório.

Em alguns casos sugerimos o uso de ficheiros template. Cria um ficheiro que contém os dados que os teus desenvolvedores precisam, adiciona este ficheiro ao controlo de versões e deixa os desenvolvedores exportar este ficheiro. Então, cada desenvolvedor tem que fazer uma cópia desse ficheiro e renomear essa cópia. Após isto, modificar a cópia já não é um problema.

As an example, you can have a look at TortoiseSVN's build script. It calls a file named default.build.user which doesn't exist in the repository. Only the file default.build.user.tmpl. default.build.user.tmpl is the template file which every developer has to create a copy from and rename that file to default.build.user. Inside that file, we added comments so that the users will see which lines they have to edit and change according to their local setup to get it working.

So as not to disturb the users, we also added the file default.build.user to the ignore list of its parent folder, i.e. we've set the Subversion property svn:ignore to include that filename. That way it won't show up as unversioned on every commit.

TortoiseSVN homepage