Quais são suas experiências executando SVN no Windows?
Pergunta
Estou curioso para ouvir as experiências daqueles que atualmente executam seu servidor SVN no Windows.
Jeff Atwood tem uma postagem sobre como configurar o SVN como um serviço do Windows.É um ótimo primeiro passo, mas não aborda outros tópicos, como:
- O que usar para um navegador de repositório baseado na web? WebSVN pode funciona no Windows, mas não é bonito.
- Como gerenciar o arquivo passwd?
- É possível integrar com o Active Directory sem executar o Apache?
- Estratégias para fazer backup do repositório.
- Padrões úteis de ignorar global para desenvolvimento do Visual Studio (sugestões aqui, aqui, e aqui por exemplo).
Nossa empresa mudou do SourceGear Vault para o Subversion há cerca de um mês.Conhecemos o básico, mas adoraríamos descobrir dicas e truques das pessoas para executar o SVN em um mundo MSFT.
Solução
Usar Servidor VisualSVN.Ele se integra à autenticação do Windows e cuida de toda a configuração do Apache.É tão simples quanto o SVN pode ser no Windows.
Outras dicas
VisualSVN é o caminho a percorrer.O suporte integrado ao Active Directory é muito fácil de usar.
Descobri que o VisualSVN é cerca de 50% mais lento do que executar o SVN como um serviço nativo.Eu sempre assumi
isso foi por causa do acesso via http:// com Apache, o que parece que teria que ser mais lento
do que acessar via svn://, que é TCP/IP nativo.
O experimento
Nos últimos 30 minutos, eis o que fiz:
- Instalei o VisualSVN na porta 8080, lado a lado com minha instalação SVN existente
- Importou três repositórios existentes para VisualSVN
- Expulsei todo mundo do servidor
- Fiz comparações lado a lado de um checkout SVN completo
Resultados
Repo 1: 652 files, 273 directories, 60.1MB
23 seconds for VisualSVN over http://
16 seconds for SVN over svn://
Repo 2: 4623 files, 964 directories, 127.9MB
2 minutes, 18 seconds for VisualSVN over http://
1 minute, 30 seconds for SVN over svn://
Isso ocorre em hardware idêntico, com exatamente o mesmo repositório.Gosto de como o VisualSVN é fácil, mas a integração do AD e a GUI não valem um impacto de 50% no desempenho.
Alguém mais viu essa diferença?Estou fazendo algo errado apenas seguindo as opções de instalação padrão?
Eu tenho tutoriais bastante detalhados no meu blog http://tv.inner-rhythm.co.uk/ sobre como configurar o SVN com Apache e Trac que usamos na minha empresa e que funciona para nós.
Eu uso uma combinação de VisualSVN e Tortoise.Ele não se integra bem ao visual studio, mas você pode usar outros plugins/aplicativos para isso.
Trac é certamente o melhor software de gerenciamento de projetos baseado na web que uso, ele se integra ao Subversion para que você possa ver os cronogramas de commits e diferenças de cada versão, permite tickets e relatórios de bugs e possui um wiki integrado.
http://trac.edgewall.org/wiki/TracOnWindows
Um pouco de conhecimento de python e é fácil de colocar em funcionamento (se você estiver no Windows, use o servidor tracd: http://trac.edgewall.org/wiki/TracStandalone (este link mostrará como instalá-lo como um serviço do Windows).
Eu recomendo TortoiseSVN.Ele adiciona recursos SVN ao Windows Explorer.Além disso, o TortoiseSVN verifica se o IDE que você está usando tem suporte para SVN.
Rich Strahl acaba de postar uma entrada no blog sobre Running VisualSVN Server for Subversion Source Control.Vale a pena ler:
Para fazer backup, escrevi uma combinação de um arquivo em lote e um VBScript que é executado uma vez por semana como uma tarefa agendada.Isto:
- Verifica uma pasta específica no sistema de arquivos procurando recursivamente por repositórios SVN (temos uma infinidade de repositórios pequenos, pois descobrimos que um super-repositório rapidamente se tornou difícil de manter e intoleravelmente lento quando usado com o TortoiseSVN);
- Usa svnadmin hotcopy em cada repositório encontrado para criar um backup;
- 7compacta todos os backups em um único arquivo;
- Monta um compartilhamento em uma SAN e copia o arquivo;
- Exclui todos os arquivos temporários;
- Envia por e-mail uma notificação de "sucesso".
Servidor VisualSVN + Trac + TortoiseSVN + Ankhsvn.
Feito.Suave como seda.O que o Visual SourceSafe deveria ter sido.
Acho que você está vendo a diferença entre o protocolo svn e hospedar o protocolo svn em outro.
O desempenho semelhante diminui ao usar svn+ssh em comparação com svn.
A facilidade de configuração tornou isso um acéfalo para minha equipe, apenas jogamos em uma VM e corremos.
Executar o SVN no Apache realmente não é tão difícil.E você pode usar mod_auth_sspi para integração com o diretório ativo.