Pergunta

Então, eu tenho um problema. Eu verifiquei em minhas gemas congeladas e trilhos, mesmo que você não deveria fazer isso. Achei que era fácil e não seria tão grande de um negócio de qualquer maneira. Bem, depois que eu atualizei trilhos e ao fazê-lo apagado todos os arquivos .svn no vendor / rails diretórios. Ouvi dizer que o que eu realmente deve fazer é apenas fazer algo a ver com svn: externals para o meu diretório fornecedor. O que exatamente eu preciso para fazer e vai Capistrano ainda usar minhas jóias congelados, se eles não estão no meu repo? Se ele não vai usar minhas jóias congelados como eu pode regenerar os arquivos .svn corretamente, porque este irá acontecer novamente.

Obrigado!

Foi útil?

Solução

  1. Para recuperar seus diretórios .svn excluídos, basta executar uma svn update. Eles vão voltar.

  2. Eu apenas check-in gemas exportados. Eu uso gem unpack <gemname> no diretório vendor/gems e svn add e commit de lá.

  3. Qualquer coisa em vendor/plugins ou vendor/rails posso controlar usando pistão. Por exemplo, este é como eu fico trilhos lá:

    % piston import http://dev.rubyonrails.org/svn/rails/tags/rel_2-0-2/ vendor/rails

Para obter pistão uso gem install piston.

Note que eu vou ter que encontrar uma melhor solução diferente / para substituir pistão como Rails continua a usar git e pode não atualizar o repositório do Subversion.

Outras dicas

Pessoalmente, eu sou parcial para usando Piston para gerenciar o diretório fornecedor.

Eu teria que desaconselham svn: externals por dois motivos

  1. que você pode ser implantando em um ambiente que não pode alcançar esses serviços svn

  2. o que acontece quando você deseja implantar e são aqueles externa svn para baixo?

O meu conselho é usar pistão ou gem descompactar e gerenciar suas dependências de produção na sua árvore de fornecedor.

Disclaimer:. Não sei Ruby / Rails, então eu não sei o que são gemas congeladas (embora eu suponho que eles estão binários ou fonte tokenized compilado), mas eu sei Subversion bem

diretórios .svn somente prender Subversion "contabilidade". Não há nada lá que é irrecuperável.

A exclusão de seus arquivos .svn não é um problema de todos. Se os diretórios com os diretórios .svn desaparecidos estão em algum lugar dentro de uma árvore de diretórios em sua cópia de trabalho do Subversion (o diretório que você fez check-out em), basta apagar os diretórios, fazer uma atualização SVN, e eles serão recriados.

Se a árvore inteira está faltando os arquivos .svn, apagar toda a árvore e fazer um svn checkout novamente.

svn: externals é como uma "ligação simbólica". Você tem o Projeto A e Projeto B, que usa Projeto A. O que você faz é adicionar uma propriedade svn: externos que as referências do diretório da biblioteca do Projeto A, por isso sempre que você verificar Projeto B, ele vai colocar automaticamente o diretório da biblioteca do projeto Um iniciar. Por exemplo, eu muitas vezes têm um diretório chamado "thirdparty" que detém o exterior para bibliotecas de outros lugares, incluindo EVN:. Referências externas para outros projetos na subversão

Uma dica para resolver problemas de versão como este é ter diretórios comunicado separado para as bibliotecas (ou gemas congeladas), e em seus projetos que precisam deles, usar um svn: referência externa para o diretório versão apropriada. À medida que novos lançamentos sair, basta alterar o svn:. Estabelecimento externo para apontar para o novo diretório de liberação e svn update

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