Desativa automaticamente o Windows 7 dos metadados .svn de indexação

26

Há um problema conhecido com os repositórios SVN e o serviço de indexação de janelas que disputam os arquivos de metadados .svn. Aqui para mais detalhes.

Como podemos configurá-lo para que não haja automaticamente nenhum problema com repositórios de subversão indexados pelo windows (Vista / Win7). (Nós não queremos ter que fazer algo manualmente toda vez que adicionamos o diretório repo.)

Uma ideia é configurar o Windows para não indexar pastas automaticamente com o nome ".svn", no entanto, não consigo encontrar uma maneira de fazer isso.

Eu sei que você pode desativar certas extensões, mas isso parece não funcionar, já que os arquivos de metadados do svn estão em uma pasta.

Nota: o

    
por James Van Boxtel 10.12.2009 / 03:04

6 respostas

11

Eu estava tendo o mesmo problema e encontrei uma solução. Todo meu código é armazenado em uma única pasta:

F: \ projects \

Sob essa pasta, há árvores de código e arquivos de projeto relacionados que totalizam mais de 2 GB. Eu constantemente preciso pesquisar esta árvore e windows Indexing tem sido realmente uma ferramenta extremamente útil para fazer pesquisas rápidas, então desligá-lo não era uma opção. Desejo excluir as pastas SVN porque elas atrapalham meus resultados de pesquisa, (2) arraste desnecessário no meu sistema, (3) SVN, Win7 e MS Security Essentials parecem não funcionar bem ao executar grandes operações SVN.

Antes de tentar a solução, reproduza o problema:

  1. No Windows Explorer, navegue até a raiz do projeto indexado (F: \ projects \ na minha máquina).
  2. Usando a barra de pesquisa no canto superior direito da janela do Explorer, procure por "svn" (sem aspas)
  3. Você deve ver um trilhão de arquivos SVN inúteis & pastas como ".svn" e "svn-base" aparecendo nos resultados.

Solução:

  1. Visite o link
  2. Faça o download de CrawlScopeCommandLine.zip
  3. Extraia para algum lugar em sua máquina e compile o projeto
  4. Abra uma janela do console com direitos administrativos (Ctrl + Shift + clique com o botão esquerdo do mouse no item "Prompt de comando" no menu Iniciar).
  5. Navegue para onde você compilou o projeto acima.
  6. Execute o csmcmd.exe com o parâmetro / add_rule (use /? first for syntax).
  7. No meu caso, eu digitei o seguinte comando: %código%

Eu percebi isso primeiro executando o comando: csmcmd.exe /add_rule file:///F:\projects\*\.svn\* /USER /EXCLUDE , para listar todos os existentes. Já havia algumas regras com asterisco (*) sendo usado pelo Windows, então era a prova de que isso era possível.

Agora repita as etapas para reproduzir o problema e você não deve mais ver a desordem do SVN nos resultados da pesquisa. Dê ao computador algum tempo para atualizar os índices - isso levou menos de 5 minutos no meu sistema. Às vezes, reiniciar o serviço de Pesquisa, iniciar uma reconstrução / reindexação ou uma reinicialização ajuda a mover as coisas.

Atualizar : alguns dos meus projetos SVN usam ".svn" e alguns usam "_svn", então adicionei essas duas regras a cada unidade:

csmcmd.exe /enumerate_rules csmcmd.exe /add_rule file:///F:\*\.svn\* /DEFAULT /EXCLUDE

    
por 18.12.2010 / 11:51
5

O AFAIK, serviço de indexação do Windows no Windows 7, só procura na pasta Usuários como padrão (corrija-me se estiver errado). Se você tiver seus repositórios SVN em sua pasta pessoal, você pode:

a) Colocando seus repositórios SVN em outro lugar

b) Excluindo essas pastas do índice. Aqui você encontrará como excluir uma pasta.

    
por 10.12.2009 / 06:45
4

A correção óbvia seria alterar o Subversion para definir este sinalizador "não indexar" sempre que cria um diretório .svn. O problema é que esse recurso não será mais necessário quando for apresentado.

O problema conhecido provavelmente desaparecerá nas versões do Subversion que estão sendo desenvolvidas atualmente (versão 1.7). Haverá muito menos operações de arquivo dentro do diretório .svn e também apenas 1 diretório .svn por cópia de trabalho.

Isso torna menos provável que o problema ocorra, e também facilita muito a desabilitação da indexação, porque há apenas uma única pasta .svn.

    
por 29.12.2009 / 00:00
2

Método de força bruta

  1. faça uma pesquisa por todos os diretórios .svn
  2. selecione tudo (ctrl + a)
  3. propriedades de clique com o botão direito do mouse
  4. clique em "avançar ..."
  5. desmarque a opção "Indexar esta pasta para pesquisar mais rapidamente"
  6. aplica a alteração

Política de Grupo do WDS tem uma opção para Prevent Indexing Certain Paths , mas não está listado disponível para o Windows Vista de acordo com o gráfico de recursos.

Supported on: Windows XP, Windows Server 2003 with Windows Search 3.01, or any version of Microsoft Windows with Windows Search 4.0 or later.

    
por 10.12.2009 / 06:45
1

Se a resposta de Darren Halls for a abordagem da "Força Bruta", então minha resposta deve ser a abordagem da "Força Bruta e Ignorância". :)

Isso é algo que recentemente me incomodou, pois usamos SVN para gerenciamento de documentos e projetos, o que pode significar que o indexador do Windows é muito útil quando se trata de procurar documentos obscuros, mas capturar todos os arquivos de armazenamento svn é apenas inútil.

Esta é a minha solução (bastante feia) em um arquivo de lote do Windows:

 ATTRIB /S /D -H ".svn"

 ATTRIB /S /D +I ".svn"
 ATTRIB /S /D +I "all-wcprops"
 ATTRIB /S /D +I "entries"
 ATTRIB /S /D +I "tmp"
 ATTRIB /S /D +I "props"
 ATTRIB /S /D +I "text-base"
 ATTRIB /S /D +I "prop-base"
 ATTRIB /S /D +I "*.svn-base"

 ATTRIB /S /D +H ".svn"

A primeira e a última linha estão lá porque o ATTRIB se recusa a aplicar o + I em uma pasta oculta, pelo menos para mim. Você precisará copiar isso para um arquivo como "svnNoIndex.bat" e executá-lo no diretório de checkout do SVN, com um grande repositório que pode levar algum tempo ...

Atualmente estou testando isso no Vista com o service pack mais recente, eu esperaria que funcionasse no Windows 7. Não sei se o índice precisa ser recriado para levar em conta os arquivos que agora estão marcados como não indexado fazendo isso, mas eu preciso reconstruir o meu de qualquer maneira, então é isso que estou fazendo, pois são apenas alguns dias enquanto o índice é reconstruído.

Para tornar isso "automático", você pode adicionar o arquivo em lote como um gancho pós-atualização que é executado após uma atualização ... a concessão é confusa, mas pode funcionar.

    
por 27.07.2010 / 12:03
1

Você pode essencialmente dizer ao Windows Search para ignorar pastas .svn ajustando o registro.

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Search\CrawlScopeManager\Windows\SystemIndex\DefaultRules]
"URL"="file:///*\.svn\*"
"Include"=dword:00000000
"Suppress"=dword:00000000
"Default"=dword:00000001
"Policy"=dword:00000000

O URL corresponde a pastas com o nome ".svn" em qualquer parte do seu sistema de arquivos. (O número após as regras padrão deve ser exclusivo - ou seja, se você já tiver uma regra padrão 11, escolha outro número).

    
por 02.12.2011 / 18:52