Comecei a usar o SVN e tenho um diretório de cache que não preciso sob controle de origem. Como posso ignorar todo o diretório / pasta com o SVN?
svn
version-control
directory
Gilean
fonte
fonte
Respostas:
Defina a
svn:ignore
propriedade do diretório pai:Se você tiver várias coisas para ignorar, separe por novas linhas no valor da propriedade. Nesse caso, é mais fácil editar o valor da propriedade usando um editor externo:
fonte
svn rm --keep-local dirname
primeiro. (Minha saída svn status era enorme e eu bati minha cabeça no presente por um tempo.)svn propset svn:ignore -F file.txt .
svn:ignore
e nãosvn::ignore
como eu. Você pode definir propriedades arbitrárias, para que a última seja OK, e você pode ver e editar a propriedade, mas isso não fará com que o SVN ignore os arquivos listados.Aqui está um exemplo de estrutura de diretório:
Quando
project
você vê que seu diretório de cache não é adicionado e aparece como tal.Para definir a propriedade ignorar, faça
onde
svn:ignore
é o nome da propriedade que você está configurando,cache
o valor da propriedade e.
o diretório em que você está configurando esta propriedade. Deve ser o diretório pai docache
diretório que precisa da propriedade.Para verificar quais propriedades estão definidas:
Para ver o valor de
svn:ignore
:Para excluir propriedades definidas anteriormente:
fonte
dirname
. Por exemplo, ao digitarsvn propset svn:ignore dirname
, se você permitir que o shell (bash) preencha o nome do diretório para você, ele adicionará a barra final, deixando o comandosvn propset svn:ignore dirname/
, o que não faz com que a pasta seja ignorada. Pelo menos, essa foi a minha experiência.Importante mencionar:
Na linha de comando, você não pode usar
Isso também adicionará os arquivos ignorados, porque a linha de comando se expande
*
e, portanto,svn add
acredita que você deseja que todos os arquivos sejam adicionados. Portanto, use isso:fonte
svn add --force *
NÃO FUNCIONA . Use o ponto, não a estrela.Como passei um tempo tentando fazer isso funcionar, observe que, se os arquivos já existirem no SVN, você precisará
svn delete
deles e, em seguida, edite asvn:ignore
propriedade.Sei que parece óbvio, mas eles continuavam aparecendo como
?
na minhasvn status
lista, quando pensei que os ignoraria localmente.fonte
Para expandir um pouco, se você estiver fazendo isso com a ferramenta de linha de comando svn, digite:
que abrirá o editor de texto de sua escolha e digite '*' para ignorar tudo o que estiver dentro dele e salvar + sair - isso incluirá o próprio diretório no svn, mas ignore todos os arquivos dentro dele, para ignorar o diretório, use o caminho do pai e digite o nome do diretório no arquivo Após salvar, execute uma atualização ('svn up') e verifique o caminho apropriado.
fonte
Defina a
svn:ignore
propriedade no diretório pai:Isso substituirá qualquer valor atual de
svn:ignore
. Você pode editar o valor com:O que abrirá seu editor. Você pode adicionar vários padrões, um por linha.
Você pode visualizar o valor atual com:
Se você estiver usando uma GUI, deve haver uma opção de menu para fazer isso.
fonte
svn ps svn:ignore . 'cachedir'
resulta emcachedir is not under version control
. mudando parasvn ps svn:ignore 'cachedir' .
funcionou para mimObrigado por todas as contribuições acima. Gostaria apenas de compartilhar algumas informações adicionais de minhas experiências, ignorando arquivos.
Quando as pastas já estão sob controle de revisão
Após svn import e svn co os arquivos, o que geralmente fazemos pela primeira vez.
Todo o cache de tempo de execução, as pastas de anexos estarão sob controle de versão. então, antes de svn ps svn: ignore , precisamos excluí-lo do repositório.
Com o SVN versão 1.5 acima, podemos usar
svn del --keep-local your_folder
, mas para uma versão anterior, minha solução é:.svn
pasta oculta)Quando precisamos que mais de uma pasta seja ignorada
svn:ignore
svn pe
precisará editar o arquivo de texto e você pode usar este comando, se necessário, para configurar seu editor de texto usando o vi :O arquivo se parece com algo assim:
fonte
svn propset svn:ignore -F .ignorethesefiles .
, o que usará o conteúdo do arquivo. Eu gosto de mantê-lo por perto para que você saiba o que é ignorado. As edições requerem um conjunto de acompanhamento.Remova primeiro ...
Se seu diretório
foo
já estiver sob controle de versão, remova-o primeiro com:... então ignore:
fonte
... e se você deseja ignorar mais de um diretório (digamos
build/
temp/
e*.tmp
arquivos), pode fazê-lo em duas etapas (ignorando a primeira e editando as propriedades de ignorar (veja outras respostas aqui) ou pode-se escrever algo comona linha de comando.
fonte
Se você estiver usando o cliente SVN específico TortoiseSVN , ao confirmar, você tem a opção de clicar com o botão direito do mouse nos itens e selecionar "Adicionar à lista de ignorados".
fonte
O comando para ignorar várias entradas é um pouco complicado e requer barras invertidas.
Este comando irá ignorar qualquer coisa nomeada
cache
,tmp
,null
, eand_so_on
no diretório atual.fonte
svn propset svn:ignore -F .ignorethesefiles .
permitirá que você use um arquivo. E como mencionado, você sempre tem propedit.Eu tive problemas para ignorar diretórios aninhados; o diretório principal que eu queria ignorar não seria exibido com 'svn status', mas todos os subdiretórios. Provavelmente isso é evidente para todos os outros, mas pensei em compartilhar:
EXEMPLO:
fonte
"Obrigado" svn por uma maneira tão hedionda, falsa e difícil de ignorar arquivos.
Então, eu escrevi um script svn-ignore-all :
Além disso, para ignorar uma lista específica de arquivos / nomes de caminho, podemos usar esta variante svn-ignore . Eu acho que o svn-ignore-all deve realmente ser como o xargs svn-ignore.
Mais uma coisa: costumo poluir meus check-ins svn com muitos arquivos aleatórios. Quando é hora de confirmar, movo esses arquivos para um subdiretório 'antigo' e digo ao svn para ignorar 'antigo'.
fonte
Bash oneliner para várias ignorações:
fonte
Se o diretório do seu projeto for nomeado / Project, e o diretório do cache for nomeado / Project / Cache, será necessário definir uma propriedade do subversion em / Project. O nome da propriedade deve ser "svn: ignore" e o valor da propriedade deve ser "Cache".
Consulte esta página no manual do Subversion para obter mais informações sobre propriedades.
fonte
A resposta de Jason fará o truque. No entanto, em vez de definir svn: ignore para "." no diretório de cache, você pode incluir "cache" na propriedade svn: ignore do diretório pai , caso o diretório de cache nem sempre esteja presente. Eu faço isso em várias pastas "descartáveis".
fonte
PARA MANTER DIRETÓRIOS QUE A SVN IGNORARÁ:
fonte
Se você estiver usando um front-end para SVN como o TortoiseSVN ou algum tipo de integração IDE, também deverá haver uma opção de ignorar no mesmo menu da operação de confirmação / adição.
fonte
Defina a propriedade svn: ignore . A maioria das ferramentas svn da interface do usuário tem uma maneira de fazer isso, bem como a discussão da linha de comando no link.
fonte
Como você está usando as versões, é realmente muito fácil:
fonte
Assista suas barras à direita também. Descobri que a inclusão
images/*
no meu arquivo de configuração de ignorar não ignorou./images/
. Quando corrisvn status -u
, ainda mostrava? images
. Então, mudei a configuração de ignorar para apenasimages
, sem barras. Executou uma verificação de status e a limpou.fonte
Resolvido com o Eclipse da seguinte maneira:
Primeiro, faça uma sincronização da sua pasta no projeto:
Na próxima exibição, exibição de equipe, é possível ver todos os recursos que você pode confirmar no servidor SVN.
Portanto, selecione a pasta do recurso que você deseja ignorar e, em seguida, você pode ignorá-lo usando
Depois disso, na janela de confirmação, selecione a primeira opção: "ignorar por nome".
Por exemplo, se eu quiser ignorar a pasta de destino e seus recursos .class, sincronizarei e, na exibição de sincronização, selecionarei a pasta de destino. Depois disso, selecionarei
para
svn:ignore
e depois confirmarei a primeira opção na janela de confirmação.fonte
Depois de perder muito tempo procurando como realizar essa atividade simples, decidi postar que não era difícil encontrar uma explicação decente.
Primeiro deixe a estrutura da amostra
$ svn st? projeto / tronco / alvo? projeto / tronco / myfile.x
1 - primeiro configure o editor, no mycase vim exporte SVN_EDITOR = vim
2 - “svn propedit svn: ignore project / trunk /” abrirá um novo arquivo e você pode adicionar seus arquivos e subdiretórios em nosso caso, digite “target” salvar e fechar arquivos e obras
$ svn st? projeto / tronco / myfile.x
obrigado.
fonte