Pergunta

Eu estou puxando meu cabelo fora em um presente.

Eu tenho um site que é a versão controlada usando Subversion. Eu uso aptana (eclipse, subclipse) para fazer o svn. I foram check-in e out de arquivos, atualização etc e está tudo bem. No entanto, o sistema que temos sido edifício foi adicionando seus próprios arquivos e pastas.

Quando tento cometer estes, ele me diz <path> não é uma cópia de trabalho. Se eu tentar fazer uma limpeza em seguida, ele dá o mesmo erro. Eu descobri que eu pode adicionar manualmente cada arquivo ao controle de versão, mas isso gera o mesmo erro. Fazendo uma atualização não ajuda, refrescando o espaço de trabalho não faz nada. Limpeza parece morrer após o erro e, em seguida, o diretório está bloqueado.

Eu sei que você é suposto para adicionar arquivos usando SVN, mas como na terra você trabalhar com arquivos gerados? Como faço para contornar isso "<folder> não é um diretório de cópia de trabalho" erro? Como faço para obter o Subversion para olhar apenas para os arquivos e adicioná-los ao seu repositório?

Foi útil?

Solução

Se você deseja que os arquivos gerados para ser adicionado ao SVN, o uso svn add de forma recursiva adicioná-los - o que irá certificar-se de que todos os diretórios são parte da cópia de trabalho, e todos os arquivos e diretórios são adicionados ao SVN, e será comprometida como parte da próxima svn commit.

No entanto, arquivos e pastas, muitas vezes gerados não devem ser adicionados ao SVN, uma vez que eles são gerados de os arquivos de origem, como parte de uma compilação. Neste caso, você deve marcar o com svn: ignorar para que eles não são parte da cópia de trabalho.

Outras dicas

Nós tivemos esse problema hoje quando tentei adicionar uma pasta "A" em que eu não tinha permissão de escrita (por isso não poderia criar o A / .svn pasta).

Running svn status me deu um "~" junto à pasta A. Correndo svn limpeza disse que pai de uma estava trancada.

O que acabou de trabalho foi:

cp -r A A~    # backup, since A was not in the repo
rm -rf A      # removed locked directory
svn rm A      # remove A from pending commit
mv ~A A       # restore backup
svn add A     # re-add to pending commit
svn cleanup   # (had to cleanup several parent folders higher as well)

O não um erro de cópia de trabalho significa que a pasta atual não foi correctamente inicializado pelo SVN .

Para corrigir o erro apenas mudar o nome da pasta atual e, em seguida, obter uma cópia de trabalho adequada do projeto de SVN , fazendo um Checkout de o projeto.

O cabo cheque, então, criar uma cópia de trabalho devidamente configurado desse projeto.

Eu só encontrou o erro "não é uma cópia de trabalho" na minha, cópia ahem, trabalhando. Este foi para um projeto JDeveloper e descobriu-se que o JDeveloper atualizar (11.1.1.2.0) que eu tinha acabado de instalar incorporou uma versão posterior do SVNKit do que o que eu uso para o acesso de linha de comando SVN (jsvn). Então JDeveloper discretamente atualizou o formato dos arquivos .svn, o que significava que o cliente de linha de comando não poderia compreendê-los. A ficha caiu quando jsvn reclamou de um arquivo que está faltando ".svn / formato" no diretório de nível superior do meu projeto. Eu encontrei montes de-los em subpastas, todos olhando idênticos e contendo apenas o dígito "9". Então eu copiei um para a pasta de nível superior e jsvn então finalmente deu uma mensagem apropriada: "svn: Este cliente é muito velho para trabalhar com cópia de trabalho, por favor obter um cliente Subversion mais recente ''". Uma vez que eu tinha identificado (via Google) e instalado o nível SVNKit cliente compatível, o novo e melhorado jsvn foi capaz de reconhecer que a minha cópia de trabalho é na verdade uma cópia de trabalho. Moral da história:. Se você receber esse erro e você estiver usando diferentes clientes SVN na mesma máquina, o problema pode ser que eles têm fora de sincronia

corri para este agora usando TortoiseSVN limpar alguns diretórios mortos. Eu fiz um backup dos arquivos e, em seguida, usou o navegador representante para excluir a dir com defeito (que era um caso perdido de qualquer maneira). Em seguida, a limpeza no projeto trabalhou e agora eu posso continuar com meus arquivos atuais.

Por favor, tente descobrir onde está o problema. É este o arquivo ou qualquer outra coisa .svn faltando. Lembre-se de arquivo .svn é criado quando você está feito com o seu check-in. e contém o caminho do diretório correspondente, nomes de código com um número único marcado para eles. Ir para o caminho base do seu projeto você acha que é verificado na perfeitamente. Criar um novo pacote temporária e acrescentou um código java amostra nesse caminho. Adicionar à versão e tentar cometer. Se você receber um erro dizendo que a pasta está bloqueada (A tentativa de bloquear a pasta já bloqueado), em seguida, ir a pasta .svn e renomeie o arquivo de bloqueio. Tente novamente para check-in e comprometer

Se ele funciona bem, então você está feito. Use o mesmo diretório base e checkin seu código novamente diante daquele diretório para o seu nível de pasta após cleaing-se.

"Não é uma cópia de trabalho" significa que um dos lugares onde o IDE está tentando executar svn em não é controlado por si svn (como a adição de arquivos em um subdiretório não sob svn). Eu diria que verificar os seus caminhos dentro do IDE.

Porque eu faço todas as tarefas com ferramentas visuais, não posso dizer o que comandos precisam ser executados.

Este é o meu ambiente, o Windows XP. tortoiseSVN 1.6.7 com Subversion 1.6.9, Eclipse 3,5 com Subclipse 1.6.10. eo repositório é gerenciado com o servidor SVN visual sobre janelas.

  1. No Visual SVN Server I excluiu a pasta que foi criado pela outra ferramenta (este era o problema, assim como Keltia disse).
  2. Em meus Windows Explorer clique direito sobre o meu projeto e com as opções de tartaruga SVN prima update . Com esta acção a pasta foi eliminado na minha cópia de trabalho.
  3. Commited todas as minhas alterações.
  4. executou a ferramenta que criar a pasta (de novo).
  5. com tortoise SVN I marcado com adicionar à lista ignorar.

Espero que isso ajude.

no meu caso eu passar eclipse lugar da área de trabalho para outro problema, então é ocorreu. Para resolver projeto check-out problema que formam o svn repo. Então, em projeto antigo que eu limpar todos os arquivos SVN. (Busca simples .svn e excluir), então eu copiar o conteúdo para o justo CheckedOut um minhas alterações tornam-se visíveis e meu projeto é até à data. Este método pode ser aplicado para outros erros irritantes. A esperança ajuda alguém

Por favor move diretório atual em outro local, e executar o comando svn update, em seguida, substituir diretório com o diretório movido
se o uso tortoisteSVN, você pode antes de executar svn update, executar a limpeza você diretório raiz

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