Imagem por claramente ambígua
Prelog
Este guia terá como objetivo dar a você a capacidade de usar o cliente de subversão 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 fornecer a resposta abreviada para as perguntas mais básicas.
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. Fazer isso permite que você se beneficie das últimas alterações ainda não lançadas, ajude nos testes e até mesmo no desenvolvimento. Neste guia, vamos falar sobre a terminologia básica do SVN, mostrar como instalar o cliente SVN no Linux, Windows e se você tiver um roteador DD-WRT habilitado para OPKG. Incluímos também um exemplo de um projeto que você pode verificar e usar para o referido 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 alguns. Com isso dito, é um dos gratuitos, é maduro e é amplamente utilizado em todo o mundo.
Fora do Subversion "Red Book":
Subversion is a free/open source version control system (VCS). That is, Subversion manages files and directories, and the changes made to them, over time. This allows you to recover older versions of your data or examine the history of how your data changed. In this regard, many people think of a version control system as a sort of “time machine.”
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 diferentes pessoas 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 em 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 o 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 esta 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 ocorre 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. Ou seja, se você "fez check-out" de uma determinada versão e, enquanto estava trabalhando, a versão do repositório foi atualizada, é possível atualizar sua cópia de trabalho para a 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.
Mesclando
Mesclagem refere-se ao processo pelo qual o código alterado é mesclado em uma versão. Também pode 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 algumas considerações, com o consenso da equipe e depois de você 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. Checkout o 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. Combine e resolva conflitos localmente, se necessário. 5. Confirme as alterações mescladas no repositório. 6. Ir passo 2.
Vamos ficar rachando
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 install subversion
No DD-WRT
Se você seguiu o "Como instalar software adicional no roteador doméstico (DD-WRT)", poderá instalar o cliente svn simplesmente emitindo:
opkg update; opkg 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, simplesmente faça o download do programa e instale-o na forma regular de “próximo, próximo e final”.
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 subversão.
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".
" Checkout" sua cópia de trabalho
Uma vez que seu projeto foi criado, você deve ser capaz de encontrar as instruções sobre como acessá-lo na guia "Fonte".
Uma nota sobre o projeto hotfortech: Este projeto pretende ser um wrapper 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. Ou seja, é altamente adequado ao meu roteador Buffalo (arquitetura AR71xx), meus caprichos pessoais e é propenso a borkages ocasionais.
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 https://hotfortech-dd-wrt.googlecode.com/svn/trunk/ hotfortech-dd-wrt-read-only
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 explorador de arquivos do Windows (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), será necessário 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 “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 o commit.
No Linux / DD-WRT
Este é um exemplo do compromisso que fiz com o projeto da hotfortech que elevou para a versão 19:
svn commit -m “updated to reflect new ant-ads pack link”
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ê deve ser capaz de se comprometer como um BOSS.
Considerações finais Isso deve ser o suficiente para você começar. É aconselhável ler os livros de referência do 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 do 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 muito 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 da codificação.