Postagens

Mostrando postagens de janeiro, 2018

Sobre a ferramenta Github

Imagem
 o que é? GitHub é uma plataforma de hospedagem de código-fonte com controle de versão usando o Git. O GitHub também oferece suporte ao recurso de organização que é amplamente utilizado por aqueles que querem uma escola maior para seus projetos. Criando a conta no GitHub O github não possui instalação, ele é um serviço, e caso você não tenha uma conta, chegou a hora de criá-la, neste link . Após criar a conta, você verá um botão verde +New Repository na qual poderá criar um repositório de acordo com a tela a seguir. Nesta imagem estamos criando um repositório cujo nome é site , de domínio público (podem ser criados reps privados pagando uma mensalidade), e com o arquivo README.md embutido, que contém uma descrição do seu projeto. Para que possamos começar a entender como o git funciona, é fundamental criar um rep como este para os nossos testes. Após a criação do repositório, ele estará disponível no endereço https://github.com/<username>/<Projeto> , onde

Git

Imagem
Git é um sistema de controle de versão distribuído de código aberto, com ênfase em velocidade. O Git foi inicialmente projetado e desenvolvido por Linus Torvalds para gerenciar o desenvolvimento do kernel do Linux, e com o passar do tempo foi adaptado para poder ser aplicado por muitos outros projetos. Cada diretório de trabalho do Git é um repositório com um histórico completo e habilidade total de acompanhamento das revisões, não dependente de acesso a uma rede ou a um servidor central. O desenvolvimento do Git teve início após uma divergência entre o BitKeeper, um software proprietário, e os mantedores do Linux. Todo o controle de versões era feito por meio desta ferramenta proprietária, por meio de uma licença fornecida para projetos open source. No entanto, a empresa acusou a violação da licença após um dos mantedores do Linux enviar um Telnet para os servidores do BitKeeper e digitar "help", acusando-o de tentar efetuar uma engenharia reversa. Após isso,

Slide sobre Sistemas de Controle de Versão

Segue abaixo o slide que foi construído e apresentado para a disciplina Gerência de Projetos - DCOMP - UFS 2017.2. Sistemas de Controle de Versão de Edgar Lima

Vocabulário comum entre os Sistemas de Controle de Versão

Os Sistemas de Controle de Versão compartilham de um vocabulário comum que representa comandos ou funções. Nesse post vamos listar os principais termos bem como o seu respectivo significado. Update: atualizar a área de trabalho com possíveis modificações presentes no repositório. Checkout/Clone: baixar o conteúdo do repositório para a sua área de trabalho. Conflict: utilizado quando há algum conflito durante o update e o commit de um documento por usuários diferentes. Commit: enviar alterações feitas na área de trabalho para o repositório. Diff: diferenças entre versões de um documento. Export: processo para gerar uma versão para distribuição e não para desenvolvimento. Import: processo que envia documentos, ainda não controlados pelo versionamento, para o repositório. Tag/Release: processo de nomear determinada versão ou release. Merge: utilizado quando deseja unir, quando possível, as modificações de dois usuários em um mesmo documento. Reverse integration: comando para me

Benefícios do Controle de Versões

Os benefícios da utilização de um Sistema de Controle de Versão são muitos. Separamos nesse posts as principais vantagens. 1. Controle do histórico: permite analisar o histórico de modificações de um arquivo bem como comparar essas alterações. 2. Trabalho em equipe: permite que o desenvolvimento de um arquivo/projeto seja compartilhado por uma equipe de usuários. É mais eficiente do que o controle manual de versões entre uma mesma equipe. 3. Marcação e resgate de versões estáveis: permite marcar e resgatar versões de um arquivo. 4. Ramificação de projeto: permite a divisão de um projeto em várias linhas de desenvolvimento que podem prosseguir paralelamente. 5. Segurança: permite que haja um controle de permissões para cada usuário, impedindo um acesso indevido em determinados arquivos ou num projeto por inteiro. 6. Rastreabilidade: permite que o usuário saiba exatamente o local, o estado e a qualidade de um arquivo. 7. Organização: permite que o usuário organize e enten

Como funciona um sistema de controle de versão?

Imagem
Após definir o que são os Sistemas de Controle de Versão (SCV) e quais são os seus tipos, chegou a hora de entender como eles funcionam. Para melhor entendimento, vou dividir a explicação do funcionamento de um Sistema de Controle de Versão em três etapas: Funcionamento Geral, Funcionamento em Sistemas Centralizados e Funcionamento em Sistemas Distribuídos. 1. Funcionamento Geral O funcionamento geral é a base para qualquer tipo de SCV. O versionamento precisa de dois elementos para funcionar: um repositório e uma área de trabalho . O repositório é onde ficam armazenadas todas as versões e também todas as informações de controle como data de alteração, quem alterou, etc. Já a área de trabalho é onde ficam os arquivos que o usuário está modificando. Dessa forma, o usuário precisa baixar uma das versões do repositório para a sua área de trabalho utilizando o comando " update ". Após isso, ele pode fazer todas as modificações desejadas e enviar o arquivo modificado de v

Apache Subversion (SVN)

Imagem
O Subversion (SVN) é um sistema de controle de versão centralizado open-source que gerencia arquivos e diretórios controlando as alterações realizadas ao longo do tempo. Além disso, é possível recuperar versões anteriores ou visualizar o histórico de alterações. Tem como ponto forte a utilização em rede, possibilitando que vários usuários possam trabalhar colaborativamente. Permite que você recupere versões antigas de seus dados, ou que examine o histórico de suas alterações. É um sistema de caráter geral que pode ser usado para gerenciar quaisquer conjuntos de arquivos (código-fonte, arquivos de edição de vídeo, etc.) O SVN utiliza o conceito de branches, tags e trunk, em analogia a uma estrutura em árvore: Trunk: pasta que contém os projetos que estão em desenvolvimento. Todas as atualizações efetuadas dia-a-dia são armazenadas nesta pasta. Branches: pasta que contém “linhas de desenvolvimento” de tal projeto, que entre elas podem haver poucas diferenças, porém uma indepe

Concurrent Version System (CVS)

Imagem
CVS é o avô dos sistemas de controle de versão. Foi lançado pela primeira vez em 1986 e o Google Code ainda hospeda a publicação original do Usenet anunciando o CVS.  A curva de aprendizado não é muito íngreme para o CVS, e é um sistema muito simples para garantir que os arquivos e revisões sejam mantidos atualizados. Embora o CVS possa ser uma tecnologia mais antiga, ainda poder ser útil para qualquer designer ou desenvolvedor para fazer backup e compartilhar arquivos. Tortoise CVS é um ótimo cliente para CVS no Windows, e há muitas IDEs diferentes, como Xcode (Mac), Eclipse, NetBeans e Emacs, que usam o CVS. O CVS tornou-se popular com o mundo do software de código aberto e foi lançado sob a GNU General Public License. Embora houvesse um desenvolvimento regular para adicionar recursos e corrigir erros no passado, incluindo compilações regulares e resultados de testes, não houve novos lançamentos desde 2008. O CVS usa uma arquitetura cliente-servidor: um servidor ar

Lista de softwares para controle de versão

Imagem
Este post tem o intuito de prover uma visão geral a respeito dos softwares existentes para controle de versão. Constam nesta listagem apenas aqueles mais conhecidos e que contribuíram para a evolução deste tipo de ferramenta. Alguns deles não têm sua utilização encorajada nos dias de hoje devido as suas inúmeras limitações e serão devidamente identificados. Revision Control System (RCS) Sistema de Controle de Revisão (SCR) em português, é uma implementação de software livre de controle de revisão, que segue o paradigma local, onde todos os desenvolvedores devem utilizar o mesmo sistema de arquivos. Armazena a versão mais recente e os deltas atrasados para o acesso mais rápido à ponta do tronco e possui uma interface de usuário melhorada ao custo do acesso lento à derivação do ramo e suporte faltando para deltas incluídos / excluídos. Última versão estável: 22/01/2015; Seu uso não é encorajado;   Disponível em  https://www.gnu.org/software/rcs/ . Concurrent Versions
Imagem
História: Como era feito o controle de versão inicialmente e como foi progredindo Pré-história  Houve um momento em que você armazenou suas versões manualmente. Ok, para muitos de vocês desta vez não eram os anos 80, mas alguns anos atrás, quando você estava na faculdade, nomeando seus arquivos de código fonte de exercícios.zip, exercise-0.zip, exercise-good.zip, exercise-good- final.zip, e assim por diante. Bem, acredite ou não, houve um tempo sem SCMs reais. Era sempre escuro e as pessoas viviam em cavernas. RCS  Em 1982 o RCS foi lançado, ele é uma tecnologia enorme, mas você ainda pode encontrá-lo em distros do Unix. É simples e direto ao ponto. Um bom recurso foi que as mudanças de texto foram armazenadas como deltas (muito importante, considerando que os discos rígidos costumavam ser pequenos!). Deltas ainda são usados ​​atualmente pela maioria dos SCMs. Algumas desvantagens do RCS merecem destaque: É apenas texto. Não existe um repositório central; Cada arquivo

Sistema de Controle de Versão: definição e tipos

Imagem
Durante o desenvolvimento de qualquer sistema é evidente que o código sofrerá inúmeras alterações que podem funcionar corretamente, não funcionar ou podem até funcionar mas causar erros em coisas que já estavam funcionando. Em todas essas situações pode existir a necessidade de "voltar atrás" no que foi programado, e nem sempre o CTRL + Z será a melhor opção ou até mesmo será capaz de resolver. Todos esses detalhes e contratempos durante o desenvolvimento de um sistema precisam ser previstos e controlados, caso contrário você perderá muito tempo ou até mesmo todo um software. É nesse momento que entra os Sistemas de Controle de Versão. Sistemas de Controle de Versão (SCV, ou VCS em inglês) são sistemas que visam manter os artefatos gerados durante o desenvolvimento de sistemas de software. Ou seja, todas as mudanças feitas em um arquivo ou um conjunto de arquivos serão registradas e organizadas, em ordem cronológica, em forma de versões. Dessa maneira, quando voc