Want to make creations as awesome as this one?

Transcript

10790-metodologias de desenvolvimento de software

SVN

  • Apache Subversion (também conhecido por SVN) é um sistema de controlo de versão open source.
  • Gere arquivos e diretórios/pastas e, também, as modificações feitas lá ao longo do tempo. Isto permite que sejam recuperadas versões antigas dos dados ou que o histórico das alterações realizadas seja examinado.
  • É um sistema de caráter geral que pode ser usado para gerir quaisquer conjuntos de arquivos como:
      • Código-fonte;
      • Arquivos de edição de vídeo;
      • etc.

O que é o SVN?

Cliente-servidor nativo;Biblioteca em camadas com API´S (Application Programming Interface) definidas;
Mensagens localizadas (usa gettext() para mostrar erros de tradução e mensagens de ajuda, baseadas das definições locais);
Bindings a linguagens de programação como Python, Perl, Java, and Ruby (SVN está escrito em C);
Tratamento eficiente de ficheiros binários;
Opção de standalone server (quando não se quer usar o servidor Apache HTTPD);
Merge Tracking;
Manipulação consistente de dados;
Os diretórios/pastas são versionados (versões diferentes);
Commits atómicos (guarda uma revisão do código juntamente com uma mensagem discritiva das mudanças);

Características do SVN

Arquitectura do SVN

+ info
Trunk
Tags
Branches

O SVN utiliza os conceitos de:

Marina PereiraFabiana Duarte

Obrigado!

TRUNK

  • Todas as atualizações efetuadas no dia-a-dia são armazenadas nesta pasta;
  • Representa a última versão estável de um projeto.
  • Normalmente é gerido por um desenvolvedor e recebe merges após a aprovação de alguém que é responsável pelo projeto.

BRANCHES

  • O trabalho de recursos ativos é desenvolvido em subdiretórios em branches;
  • Quando se cria um branch é feita uma cópia de todos os arquivos do trunk para a pasta dentro do diretório branches;
  • Apesar do trunk ser o repositório principal, todo o desenvolvimento costuma ser feito em cima dos branches locais ou remotos dependendo do fluxo de trabalho escolhido;
  • É comum chamarmos o branch de versão de trabalho;

TAGS

  • É um ponto no tempo no trunk ou num branch que se deseja preservar;
  • Quando os testes efetuados no branch estão completos, a versão que se encontra lá é copiada para a pasta tags criando-se o "Release";
  • Qualquer modificação no branch deve ser copiada para a pasta tags após todos os testes;
  • O SVN considera a tag como uma variação de uma branch e na prática é exatamente como uma branch, apenas uma cópia da ramificação atual da "árvore";