Controle pessoal de fontes via subversão - pare-me antes que eu vá longe demais!

4

Eu fui mordido pelo bug do SVN ultimamente; em grande parte impulsionada pelo uso pesado de um repositório pessoal de trabalho para manter o controle de código de prova de conceito, documentos e arquivos pequenos, e para manter minhas duas máquinas em sincronia.

Meu NAS doméstico, um DNS-323 da D-Link, é uma pequena caixa sólida com alguns scripts e pacotes extras instalados para fornecer alguns backups diários - mas também tem algumas falhas que impedem que ele seja usado como eu. d gostaria de. Minha esperança era usá-lo como meu servidor de arquivos sempre ativo para uso doméstico e remoto - mas os controles de permissão são bastante fracos e inflexíveis e o acesso a ele de fora da minha rede doméstica é limitado a SSH / SCP e FTP (que só é ativado temporariamente, se alguma vez).

Então eu pensei: se eu o usasse principalmente como um servidor de arquivos baseado em SVN e permitisse acesso remoto via SSH + SVN. Eu ainda poderia ter um compartilhamento de janelas não-SVN para arquivos grandes, como meus backups de laptop; mas eu poderia usá-lo como um SVN-repo para arquivos pessoais.

A questão aqui é onde eu paro, quais são as limitações do SVN em relação ao tamanho máximo do repositório ou ao tamanho dos arquivos armazenados nele?

    
por STW 02.08.2009 / 16:34

6 respostas

4

Joey Hess, um desenvolvedor no projeto Debian, escreveu um longo e instrutivo artigo sobre o uso do subversion para uso pessoal: Subvertendo seu homedir , ou manter sua vida em svn . Acho que você encontrará algumas boas ideias lá.

Se você ler atentamente as partes superior e inferior desse artigo, verá que ele implementou essa ideia pela primeira vez no CVS e agora mantém a maior parte de seu diretório pessoal no git

    
por 19.08.2009 / 19:50
13

O Subversion é usado principalmente como um sistema de controle de origem, portanto, sua principal intenção não é a versão dos arquivos binários. Quais vantagens você vê ao usar o Subversion para manter o seu Sistema em Sincronização (eu acharia terrível ter sempre que manter as meta-informações do Subversion em meus arquivos normais e gerenciar isso poderia se tornar muito chato)?

Talvez uma ferramenta de backup como rsync ou o arquivo Synchronizer Unison via FTP ou SSH é mais apropriado para o que você quer fazer.

    
por 02.08.2009 / 16:42
4

Enquanto o subversion é para controle de origem, eu (ab) o uso para backup. Há várias limitações interessantes que encontrei:

  • usando o transporte http, às vezes eu tenho limites de transferência de 2 GB em checkouts e confirmações, mas nem sempre
  • o subdiretório .svn tem uma segunda cópia de cada arquivo, então você imediatamente dobra suas necessidades de espaço
  • grandes números de arquivos em um diretório ficam muito lentos
  • o repositório do subversion nunca encolhe; ele só aumentará de tamanho, mesmo quando você "excluir" um arquivo porque ele mantém o histórico desse arquivo tendo estado lá no passado

No entanto, mesmo com essas limitações, acho que funciona muito bem para mim. Uma coisa interessante que você pode fazer no servidor é usar o hook post-commit para enviar automaticamente uma cópia de cada commit para um local externo (usando a ferramenta svnadmin para fazer um dump incremental dessa revisão).

    
por 13.08.2009 / 17:48
4

No que diz respeito às limitações de tamanho, nunca o rejeitei. Incluindo colocando arquivos ISO lá, etc. O tamanho do repositório é quase sempre limitado pelo tamanho do disco rígido, e não pela subversão .

Em resposta à resposta Daff : rsync não faz o que a subversão consegue. Ter um Ubuntu ISO que você deseja ter disponível para gravação em qualquer lugar? Ótimo! rsync pode distribuir o arquivo, ele funciona muito bem. Mas agora você atualiza para o Ubuntu 69,88, mas uma semana depois ele não funciona no seu antigo 486sx laptop . Com rsync , você precisa procurar um ISO mais antigo, baixá-lo, etc. Com a subversão , você pode simplesmente reverter para uma versão mais antiga do arquivo.

Se você vai usar o subversion para alguns arquivos, é melhor usar tudo para usá-lo em tudo. Os arquivos maiores não são tão eficientes, mas podem mantê-lo centralizado.

    
por 13.08.2009 / 18:15
2

Eu tentei forçar o uso do subversion para outras coisas além do meu código de desenvolvimento. Eu entendo que, embora funcione muito bem para os usuários de designers, porque tem uma conta histórica da progressão da obra de arte. O livro que comprei para a subversão começa com uma menção de que eles usam subversão para tudo, incluindo suas listas de compras de supermercado. Enquanto eu não faço muito artes gráficas, um mediawiki fornece a mesma funcionalidade em uma interface baseada na web já fácil de usar. Ele também possui recursos adicionais, como uma discussão sobre o conteúdo. Eu acho que o Trac faz muito bem indo além e incorporando um wiki com o svn. Sendo novo no svn, não encontrei nenhuma limitação além do tempo extra necessário para as etapas adicionais.

    
por 24.10.2009 / 00:23
1

Rock on! Eu tenho feito isso por alguns anos, e é realmente ótimo! Ele toma um pouco de cuidado, mas agora, sempre que eu obtenho uma nova máquina eu faço svn co, e executo um script lá e recebo o firefox e tudo como eu gosto.

    
por 13.08.2009 / 18:02