Apache Subversion

Apache Subversion

Em formação
O Criador CollabNet
Desenvolvido por Apache Software Foundation
Primeira versão 20 de outubro de 2000
Última versão 1.14.1 (10 de fevereiro de 2021)
Depósito svn.apache.org/repos/asf/subversion/trunk
Escrito em VS
Sistema operacional GNU / Linux , Microsoft Windows , macOS e BSD ( d )
Modelo Gerenciamento de versão centralizado ( d )
Licença Licença Apache versão 2.0
Local na rede Internet subversion.apache.org

Subversion (abreviado como svn ) é um software de controle de versão , lançado sob a licença Apache . Ele foi projetado para substituir o CVS . Os seus autores apoiam-se voluntariamente nos mesmos conceitos (em particular no princípio do repositório centralizado e único) e consideram que o modelo CVS é bom, apenas a sua implementação pode ser melhorada.

O Subversion, portanto, funciona no modo cliente-servidor , com:

O projeto foi lançado em Fevereiro de 2000pela CollabNet , com a contratação de Jim Blandy de Karl Fogel , que já estava trabalhando em um novo software de controle de versão.

O 14 de fevereiro de 2010, SVN tornou-se oficialmente um projeto da Fundação Apache , recebendo o nome de Apache Subversion .

Contribuições do Subversion

O Subversion foi escrito para preencher algumas lacunas no CVS .

Aqui estão as principais contribuições:

Do ponto de vista do usuário comum, as principais mudanças ao mudar para o Subversion são:

Ramificações e tags

Uma das peculiaridades do Subversion é que ele não distingue entre um rótulo , um ramo e um diretório . É uma convenção de nomenclatura simples para seus usuários. Isso torna muito fácil comparar uma etiqueta e uma ramificação ou outra cruz.

Independentemente do sistema de controle de versão, os números de revisão com vários dígitos são difíceis de lembrar. Por esse motivo, muitos sistemas permitem ao usuário definir tags como sinônimos que são mais fáceis de lembrar. Mas o que o Subversion recomenda usar como uma tag é de uma natureza completamente diferente: uma vez que o comando é svn copyfeito, uma tag do Subversion não tem absolutamente nenhuma memória de qual número de revisão veio. Enquanto na maioria dos outros sistemas uma tag é uma referência , uma "tag" do Subversion é apenas uma cópia. Apenas algumas referências predefinidas estão disponíveis: HEAD, PREV, BASE, COMMITTED.

Outra diferença é que as tags em outros sistemas são pontos no tempo, enquanto o Subversion recomenda definir as tags como pontos no espaço do sistema de arquivos.

Esta falta de tag no sentido usual torna algumas operações um pouco menos práticas no Subversion. Por exemplo, encontrar o que mudou de uma tag para outra em um arquivo é um pouco mais complicado do que executar um comando simples: svn diff -r tag1:tag2 monfichierno diretório de trabalho.

Outras operações tornam-se impossíveis: por exemplo, um comando como svn log -r tag1:tag2 monfichiernão funciona e não há alternativa que funcione.

Para superar essas deficiências, a adição de “rótulos” ou “aliases” foi proposta nas listas de mala direta do SVN. Esses rótulos seriam equivalentes a tags de outros sistemas como CVS , git ou outro. Em 2010, essa sugestão não passou do estágio de discussão.

Os principais comandos do Subversion

Ordenado Significado
adicionar Declare a adição de um novo recurso para o próximo commit.
culpa Permite saber qual colaborador enviou as linhas de um arquivo.
checkout (co) Recupera localmente uma versão e seus metadados do repositório.
Limpar Limpe a cópia local para trazê-la de volta a um estado estável.
comprometer (ci) Salva as mudanças locais no repositório criando uma nova versão.
cópia (cp) Copie recursos para outro local (localmente ou no repositório).
deletar (rm) Declare a remoção de um recurso existente para o próximo commit (ou remova diretamente um recurso do repositório).
diff (di) Calcula a diferença entre duas versões (permite criar um patch para aplicar a uma cópia local).
exportar Recupera uma versão sem metadados do repositório ou cópia local.
importar Envia uma árvore local para o repositório.
informação Fornece informações sobre a origem da cópia local.
lista (ls) Lista as entradas em um diretório de repositório.
trancar Bloqueia um arquivo.
registro Dá mensagens de confirmação para um recurso.
fundir Calcula a diferença entre duas versões e aplica essa diferença à cópia local.
mover (mv) Declara a movimentação de um recurso.
propdel (pd) Remove a propriedade do arquivo.
propedit (pe) Edite o valor de uma propriedade.
profeta (pg) Retorna o valor de uma propriedade.
proplist (pl) Fornece uma lista de propriedades.
propset (ps) Adiciona uma propriedade.
resolvido Usado para declarar que um conflito de modificação foi resolvido.
reverter Reverte para uma determinada versão de um recurso. As alterações locais são substituídas.
status (st) Indica as mudanças que foram feitas.
interruptor (sw) Mude para uma versão / ramo diferente do repositório.
atualizar (subir) Atualiza a cópia local existente da última versão disponível no repositório.
desbloquear Remova um cadeado.

Aplicativos cliente e servidor

Software cliente

O acesso ao servidor subversion pode ser feito usando seu protocolo nativo (porta TCP padrão: 3690), ou através de uma conexão HTTP (o servidor deve então suportar as extensões WebDAV). Esses dois modos de acesso podem ser protegidos na camada de transporte (túnel SSH ou HTTPS), o que é especialmente recomendado no caso de servidores em uma rede pública como a Internet.

Além da ferramenta de linha de comando, existem vários softwares fornecidos com interface gráfica, na forma de executável autônomo , mas também plug-ins em particular para EDI .

Software de servidor

Dois tipos de servidores subversion estão disponíveis atualmente:

Software auxiliar

Em servidores Windows, o software VisualSvn Server permite empacotar Apache + Subversion com configuração automática e um console gráfico de administração de servidor para gerenciar direitos de um servidor ActiveDirectory ...

Lado do servidor

Veja também

links externos

Notas e referências

  1. "  https://subversion.apache.org/docs/release-notes/release-history.html  "
  2. Apache Subversion 1.10.7 lançado  " (acessado em 10 de fevereiro de 2021 )
  3. “  Subversion  ” , em directory.fsf.org , Diretório de Software Livre ,2013(acessado em 11 de setembro de 2013 )
  4. Listas de correio do Subversion
  5. "  Gerenciamento de versão com Subversion  "
  6. Site www.visualsvn.com
  7. Site USVN
  8. Site sventon