Rastreamento de versão com Subversion (SVN) para iniciantes
Você já quis trabalhar em um projeto com a capacidade de rastrear suas alterações e revertê-las? How-To Geek explica como usar o popular sistema de rastreamento de versão, Subversion (também conhecido como SVN).
Imagem por claramente ambígua
Prelog
Este guia terá como objetivo dar a você a habilidade de usar o subversion client em geral, e, se você tiver um, em seu roteador * DD-WRT. Este guia não é de forma alguma um guia definitivo para o Subversion e muitas informações podem ser encontradas no Red Book do Subversion. Este guia destina-se apenas a dar-lhe a resposta abreviada para a mais básica das questões.
visão global
Pode haver inúmeras razões pelas quais você gostaria de poder “verificar” o código mais recente de um projeto de software que usa um sistema de controle de versão. Isso permite que você se beneficie das últimas alterações ainda não lançadas, ajuda nos testes e até no desenvolvimento. Neste guia, abordaremos algumas terminologias básicas do SVN, mostraremos como instalar o cliente SVN no Linux, Windows e se você tiver um roteador DD-WRT habilitado para OPKG. Também incluímos um exemplo de um projeto que você pode verificar e usar para o dito roteador.
O que é o Subversion??
O Subversion não é de forma alguma o único sistema de controle de versão existente e as alternativas incluem o Git (que foi criado por Linus Torvalds, o fundador do kernel do Linux), Mercurial e PerForce, para citar apenas alguns. Com isso dito, é um dos gratuitos, é maduro e é amplamente utilizado em todo o mundo.
Fora do Subversion "Red Book":
Subversion é uma fonte livre / aberta sistema de controle de versão (VCS). Ou seja, o Subversion gerencia arquivos e diretórios, e as alterações feitas a eles, ao longo do tempo. Isso permite recuperar versões mais antigas de seus dados ou examinar o histórico de como seus dados foram alterados. A esse respeito, muitas pessoas pensam em um sistema de controle de versão como uma espécie de "máquina do tempo".
Nota: este livro é a coleção final de conhecimento sobre subversão e você é aconselhado a consultá-lo em todos os tópicos relacionados ao Subversion.
O que é o controle de versão?
O controle de versão é um processo em que o estado de um projeto em um determinado momento é salvo. Esse tipo de procedimento é frequentemente usado para gerenciar o desenvolvimento de software, de modo que o trabalho possa continuar a melhorar o projeto ou adicionar recursos, enquanto é capaz de rastrear o que mudou desde o último ponto geral de “salvamento”. Para elaborar, esse tipo de procedimento pode ser útil para uma única pessoa, mas ainda mais para um grupo de pessoas, todas trabalhando no mesmo projeto. Isso ocorre porque, geralmente, quando se trabalha em um projeto como um grupo, há uma distribuição de responsabilidades e pessoas diferentes mudam diferentes aspectos do projeto. Sem um mecanismo de versionamento, seria muito difícil manter todos em sincronia com as últimas mudanças de trabalho de todos os outros.
Terminologia
O repositório
O repositório é o local onde todos os dados de todos os vários locais são salvos. No mundo da subversão, do ponto de vista do cliente, é o servidor que mantém o banco de dados do projeto. Este banco de dados contém todos os arquivos que fazem parte do projeto com todas as suas versões anteriores.
Revisão
Quando um repositório é criado, recebe o número de revisão zero (0). Esse número é incrementado por um (1) toda vez que um commit é executado. O número de revisão é global para o repositório. Ou seja, não há um número de revisão individual para arquivos individuais no repositório, mesmo que nada tenha sido alterado nesse arquivo para esse commit específico.
A cópia de trabalho
Uma cópia de trabalho é uma cópia local (ou "checkout") de uma versão específica. Normalmente, essa versão quando registrada é a “mais recente” (também chamada de “cabeça”), mas uma anterior pode ser solicitada. O usuário pode fazer com a cópia local qualquer coisa que deseje, com conhecimento de que, na pior das hipóteses, eles poderiam apenas verificar o código novamente. Além disso, esta cópia é "privada". Isso porque até você atualizar ou confirmar sua cópia, você não verá as alterações de outras pessoas nem verá as suas.
Atualização e Resolução de Conflitos
Uma cópia de trabalho local pode ser atualizada. Isto é, se você “fez check-out” de uma determinada versão, e enquanto você estava trabalhando, a versão no repositório foi atualizada, você pode atualizar sua cópia de trabalho para o mais recente. Na verdade, o servidor impedirá que você confirme suas alterações antes de atualizar para a versão mais recente para corresponder ao repositório. Isso é feito para forçá-lo a resolver conflitos localmente, antes mesmo de pensar em confirmar alterações no repositório.
Fusão
Mesclagem refere-se ao processo pelo qual o código alterado é mesclado em uma versão. Pode também implicar a resolução de conflitos.
Commits
Committing é o processo no qual as alterações feitas em sua cópia local serão mescladas no repositório. Esta é a parte mais perigosa do processo, pois é aqui que as alterações feitas podem afetar outras pessoas usando o mesmo repositório. É por isso que isso geralmente é feito depois de alguma consideração, com o consenso da equipe e depois de ter resolvido qualquer conflito de mesclagem.
O fluxo de trabalho
O fluxo de trabalho mais básico da perspectiva do usuário ao usar o subversion é o seguinte:
1. Check-out do código existente (geralmente a "cabeça").
2. Faça alterações, adicione arquivos e geralmente desenvolva o código.
3. Atualize para a versão mais recente, para garantir que sua cópia local esteja sincronizada com as atualizações no repositório.
4. Fundir e resolver conflitos localmente, se necessário.
5. Confirme as alterações mescladas no repositório.
6. Ir passo 2.
Vamos começar a rachar
Instalar o cliente
Para poder usar o subversion, você precisa instalar o cliente em sua máquina.
No linux
Você só precisa instalar o pacote. No Ubuntu / Mint, isso seria feito com:
sudo aptitude instalar subversão
No DD-WRT
Se você seguiu o "Como instalar software adicional no seu roteador doméstico (DD-WRT)", você pode instalar o cliente svn simplesmente emitindo:
atualização do opkg; opclo install subversion-client
No Windows
Enquanto nós, usuários geeks, podemos começar a esquecer que a GUI existe às vezes, nem todo mundo tem. Se você quiser usar um cliente Windows para se conectar a um repositório SVN, de longe o mais popular é "Tortoise". Para usá-lo, basta fazer o download do programa e instalá-lo no modo “next, next, finish” regular.
Crie o “repositório”
Embora não façamos muitos detalhes sobre como configurar um servidor de subversão neste guia, a alternativa do Google não é um mau começo para o usuário iniciante. Para criar um repositório do Google:
- Vá até o website de hospedagem do Google Code e crie um novo projeto.
- Na próxima página, preencha os campos obrigatórios e selecione o tipo de “sistema de controle de versão” a ser subversion.
Observação: convém verificar qual é a diferença entre as licenças oferecidas pelo Google antes de selecionar uma para o projeto.. - Clique em "Criar projeto".
Uma vez que seu projeto foi criado, você deve ser capaz de encontrar as instruções sobre como acessá-lo na guia "Source".
O bom sobre o código do Google é que ele permitirá uma versão anônima somente leitura para o seu projeto. Se você não quer lidar com o incômodo de criar seu próprio projeto, você pode verificar anonimamente o repositório deste autor.
Uma nota sobre o projeto hotfortech: Este projeto deve ser um invólucro para os recursos que foram adicionados ao DD-WRT no How-To Geek (que eu pessoalmente uso), além de alguns ajustes pessoais. Embora este projeto seja voltado para trabalhar em conjunto com os artigos publicados aqui no howtogeek, ainda é meu projeto privado. Isto é, é muito adequado para o meu roteador Buffalo (arquitetura AR71xx), meus caprichos pessoais e é propenso a borkage ocasional.
No Linux / DD-WRT
Crie o diretório para trabalhar, por exemplo, no DD-WRT, que poderia ser:
mkdir -p / jffs / svn; cd / jffs / svn
O comando completo no Linux consiste no próprio comando SVN, na diretiva “checkout”, no endereço do repositório e no diretório para checkout também. Crie um diretório vazio e execute o comando abaixo:
svn checkout http://hotfortech-dd-wrt.googlecode.com/svn/trunk/ hotfortech-dd-wrt-somente leitura
Observe que no exemplo acima, a versão somente leitura está sendo registrada. Se você optou por criar seu próprio repositório, precisará usar o link httpS.
No Windows
Como tartaruga é uma extensão do shell, você precisará usar o menu de contexto do Windows Explorer (clique com o botão direito do mouse) para usá-lo. Na verdade, se você tentar invocá-lo no menu Iniciar, você receberá:
- Crie um diretório vazio.
- Clique com o botão direito para abrir o menu de contexto.
- Selecione "SVN Checkout":
- Copie e cole o link para o projeto (se você tiver um) na caixa de texto “URL”:
- Dependendo do tamanho do seu projeto, isso pode demorar um pouco, mas quando o "Checkout" for concluído, você verá algo como:
- Você pode começar a desenvolver.
"Atualizar" e "mesclar" sua cópia de trabalho
Se você está trabalhando no código com colegas ou está atualizando o código de vários locais (por exemplo, laptop, desktop ou mesmo roteador), você precisará atualizar sua cópia de trabalho antes de confirmar as alterações mais recentes.
No Linux / DD-WRT
O comando para fazer isso nesses sistemas POSIX é simplesmente:
svn up
No Windows
- Clique com o botão direito do mouse no diretório de trabalho e selecione “SVN Update”:
- Se você encontrar conflitos, tente seguir as instruções na tela e use seu julgamento sobre o que fazer com eles.
"Commit" suas alterações
É isso, você deve estar livre de conflitos e pronto para atualizar o repositório com suas alterações.
O único ponto a ser observado aqui é que é uma prática comum adicionar uma mensagem de “log” ao commit, para poder lembrar facilmente por que as alterações foram feitas. Na verdade, o repositório do Google torna isso um pré-requisito obrigatório para comprometer.
No Linux / DD-WRT
Este é um exemplo do commit que fiz para o projeto hotfortech que subiu para a versão 19:
svn commit -m “atualizado para refletir o novo link do pacote de anúncios de formigas”
No Windows
- Clique com o botão direito do mouse no diretório de trabalho e selecione “SVN Commit”:
- Você deve ser saudado por uma janela que permite que você anote uma mensagem de log:
- Clique em OK e, quando solicitado, digite a senha gerada pelo Google.
- Se o commit foi bem sucedido, você deve ver algo como:
- É isso, você deveria ser capaz de se comprometer como um BOSS.
Considerações finais
Isso deve ser o suficiente para você começar. Você é aconselhado a ler os livros de referência SVN para obter uma compreensão mais profunda e melhor de todos os usos, opções e advertências do SVN. Além disso, lembramos a você (novamente) que o subversion NÃO é o único sistema de controle de versão existente e que o GIT (que foi criado por Linus Torvalds, o fundador do kernel Linux) parece estar ganhando popularidade nos últimos anos..
Se você optar por executar o “running-config.sh” do projeto hotfortech em seu roteador, descobrirá que ele será instalado no momento: o pacote anti-ads, o script Opk geek-init, bem como coisas como o GNU completo "ls", "less", "BASH" e mais.
/jffs/svn/hotfortech-dd-wrt/running-conf.sh
Mais recursos estão pendentes e serão adicionados no futuro.
Os administradores do sistema irão codificar sua saída para codificação.