Pergunta

Meu fluxo de trabalho normal para criar um novo repositório de subversão é criar uma nova repos, fazer uma checagem da raiz repos, crie meus ramos tags e pastas tronco e coloque no porta-malas meus arquivos iniciais. Então eu faço uma consolidação deste "importação inicial", exclua os repos check-out do meu disco rígido e fazer uma verificação geral do tronco. Então eu posso começar a trabalhar.

No entanto, quando se lida com uma grande importação, acho que centenas de megas, e fora do local de controle de versão hospedagem (http base) esta importação inicial pode demorar um pouco para cometer. O que é pior, após cometer eu preciso fazer check-out este tronco maciço tudo de novo.

Existe uma maneira com a subversão de usar a cópia local do tronco sem fazer um check-out tudo de novo dos dados que já está lá?

Foi útil?

Solução

Não é - ele é chamado de "importação no local", e é coberto no Subversion FAQ aqui:

http://subversion.tigris.org/faq.html#in -Coloque-import

O que você está realmente fazendo é criar um novo projeto vazio no repositório, verificando o projeto vazio sua pasta local - que transforma a sua pasta em uma cópia de trabalho - e, em seguida, adicionando todos os arquivos de seu (existente) para que 'vazio 'projeto, assim que são adicionados ao repositório quando você um svn commit.

Outras dicas

Eu concordo com o procedimento "no local de importação" e também usando um script para TTB-estrutura (upvoted ambos).

Apenas uma pequena dica:

Você não deve importar um enorme (dezenas de milhares) número de arquivos em um único commit, se você usar HTTP (S), como o tempo para mostrar o histórico de versões escalas por o número de entradas adicionadas . A razão para este comportamento é que o Apache tem de autenticar todos os caminhos adicionados Agains o arquivo svnaccess (claro, só se você habilitado autorização baseada em caminho). Isso pode tornar o seu repositório inutilizável, como todos os arquivos terá que esperar em um log svn para este grande rev.

Você deve dividir enormes importações em níveis de diretório

Eu costumo usar "svn mkdir" para criar o tronco / Tags / ramos diretamente no servidor imediatamente após a criação do repositório. Então eu posso verificar o tronco vazio, mover meus arquivos iniciais para o diretório, adicionar e cometê-los, e começar a trabalhar.

svn checkout --force permite que você check-out um workingcopy 'over' um caminho existente. Ele mantém seus arquivos antigos e adiciona os arquivos que estão apenas em seu repositório.

Para criar o seu repositório: Você pode executar vários comandos mkdir para um repositório em um único commit utilizando o comando 'svnmucc' que está disponível na maioria das distribuições do Subversion (por exemplo, SlikSVN ).

Tipo svnmucc sem argumentos para alguma ajuda.

Se você check-out uma única pasta, copiado seus arquivos para ele, correr svn add e svn commit; você não deve precisar excluir os arquivos e re-checkout.

Use os arquivos no lugar:. Uma vez que foram cometidos como você descreve, eles estão prontos para ser trabalhado

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top