Fossil

Fonte: Wikiversidade
Saltar para a navegação Saltar para a pesquisa

O Fossil[editar | editar código-fonte]

O Fossil é um sistema de gerenciamento de configuração de software que foi projetado para controlar e acompanhar o desenvolvimento de um projeto registrando seu histórico. É livre e Open-Source sob licença BSD para o controle de versão de forma distribuída criada em 2006. É um sistema com uma operação e instalação simples, necessitando somente baixar o arquivo binário para um local apropriado permitindo o acesso direto por linha de comando ou pelo navegador onde pode ser utilizado através de uma interface web, pois o sistema já possui um servidor web embutido dispensando uma instalação adicional[1].

Características[editar | editar código-fonte]

  • É livre e open source;
  • Utiliza licença BSD - Berkeley Software Distribution, semelhante a GNU-GPL (GPL era a licença anterior do Fóssil), do Git, garantindo direito de redistribuição do código mantendo o Copyright: Copyright 2007 D. Richard Hipp. All rights reserved;
  • Possui um WEB SERVICE embutido, facilitando o monitoramento do projeto via GUI web;
  • Além de ser um sistema de controle de versão, também integra controle de mudanças, onde cada repositório criado contém bugtracker, chamado de “ticket system” e uma wiki que pode ser editada no navegador;
  • Escrito em C puro;
  • Mantido pelo seu principal criador, Dwayne Richard Hipp, também responsável pelo Projeto SQLite, que gerencia e armazena todos os dados e usa o Fossil como sistema de controle de versão;
  • Multi plataforma;
  • 1.34 é sua release estável (novembro de 2015);
  • É um software de fácil instalação, contendo um arquivo apenas, e não requer instalação de dependências ou de outro software pra funcionar; fácil de desinstalar, é necessário apenas apagar o executável, e fácil de atualizar para uma nova versão, precisando apenas substituir o executável velho pelo mais novo, e dar um “fossil all rebuild” no terminal para reestruturar todos os repositórios de projetos Fóssil;
  • Possui a grande maioria dos comandos básicos do Git (exceto “rebase”, por exemplo);
  • Não tem suporte de IDE (ainda);
  • A comunidade não é tão grande ainda;
  • A ferramenta é incipiente ainda, sua documentação é toda em inglês, (conteúdo em português só na wikipedia, mas é pouco) não tem muito conteúdo acerca dele na web;

[2]

Conceitos utilizados em um projeto no Fossil[editar | editar código-fonte]

Source tree - uma hierarquia de arquivos de um projeto que são utilizados para gerar o produto final. Não podem se sobrepor em um repositório.

Check-in - uma versão do projeto, criada geralmente quando se dá um commit. Check-ins são dispostos numa hierarquia do projeto.

Repositório - um único arquivo no disco onde são armazenados todos os check-ins e o histórico do projeto, por isso pode ser renomeado, movido, salvo em um cartão de memória, ou qualquer outra coisa que se faz com arquivos. Cada source tree está associada a um único repositório (o contrário pode não ocorrer, um repositório pode conter mais de uma source tree). Em projetos com vários desenvolvedores, cada um tem um repositório local e uma source tree.

Codificação delta - formato compactado em que os check-ins são armazenados.

_FOSSIL_ (ou .fslckout) - arquivo identificando a source tree no diretório raiz do projeto. Este arquivo contém o caminho para o repositório (mas o repositório não tem registro de suas árvores de origem).

Artefato - uma versão específica de um arquivo do projeto. Artefatos são imutáveis, e são identificados por um ID que é um hash de 40 caracteres em hexadecimal, porém, quando for necessário se referir a um artefato, Fóssil mostrará apenas os primeiros 10. Fossil foi projetado para ao analisar um conjunto de artefatos em qualquer ordem, reconstruir o histórico completo do desenvolvimento de um projeto.

Manifesto - arquivo computado na memória para cada check-in. Ele contém todos os ID’s dos artefatos de um dado check-in. É gerado sempre que um commit é feito. Um manifesto não é um documento real no disco, mas pode ser materializado via comando específico. O ID do manifesto é o identificador do check-in. [3]

Fluxos de trabalho[editar | editar código-fonte]

Fluxo de trabalho

O Fossil suporta dois fluxos de trabalho: autosync e manual-merge. O autosync (modo de operação padrão por default, que pode ser alterada) é uma reminiscência do CVS e do SVN, mantendo automaticamente as alterações na sincronização com os colegas de trabalho através de um servidor central. O manual-merge é o modo de operação semelhante ao do Git e do Mercurial, com desenvolvimento em repositórios locais e onde as mudanças podem ser “mescladas" manualmente.

Autosync[editar | editar código-fonte]

Configuração padrão. Permite “pull” automático quando der um "update", e um “push” automático quando der um “commit”. Quando os colegas de trabalho em um projeto fazem suas próprias alterações é possível mesclar essas alterações na source tree local usando o comando “update". Neste modo, ao dar um “update”, o fluxo primeiro volta para o servidor de onde o projeto foi clonado ou ao qual o desenvolvedor está sincronizado, e atualiza o repositório local com as mudanças recentes do projeto contidas no servidor remoto. E em seguida, serão fundidas as mudanças recentes na árvore fonte local.

Manual-Merge[editar | editar código-fonte]

Quando autosync está desativado, o comando "commit"" é dissociado do "push" e o comando "pull" é dissociado do "update". Isso significa que esses passos devem ser feitos manualmente. A configuração padrão para um novo repositório é com autosync, por isso é necessário desativá-lo. Se duas ou mais pessoas comitaram sobre o mesmo check-in, isso irá resultar em um fork, que pode ser resolvido através de um “merge”, seguido de outro commit. [4]

Instalação[editar | editar código-fonte]

Instalação em Linux:

Caso a biblioteca OpenSSL não esteja com os pacotes para desenvolvedor instalados será necessário o comando:

$ sudo apt-get install libssl-dev

Agora podemos inciar a instalação do Fossil. O Fossil já está disponível para download nos repositórios do Ubuntu em sua última versão 1.27 lançada em 30/09/201. logo pode se instalar o programa pelo comando.

$ sudo apt-get install fossil

Primeiros Passos[editar | editar código-fonte]

Iniciando um novo projeto[editar | editar código-fonte]

Para criar um repositório para um novo projeto pode ser utilizado os comandos abaixo:

$ fossil init <parâmetro><NOME DO PROJETO>

ou

$ fossil new <parâmetro><NOME DO PROJETO>

Por padrão a ferramenta irá gerar um um user admin para o projeto de acordo com o user admin da maquina. Isso pode ser modificado durante a criação do projeto com o parâmetro: --admin-user| -A <NOME DO USUÁRIO>

Conectar repositório[editar | editar código-fonte]

O repositório foi criado e está vazio e também não possui nenhuma conexão. Para estabelecer uma conexão para o repositório fossil.

$ fossil open <NOME DO PROJETO>

Verificando o status para confirmar a conexão.

$ fossil status

Para verificar os arquivos no diretório que não estão sendo monitorados.

$ fossil extra

Adicionar arquivos e realizar o commit inicial[editar | editar código-fonte]

Para adicionar arquivos no repositório utilizamos o comando.

$ fossil add .

O comando add é recursivo então se você adicionar os arquivos de um nível superior ele irá recorrer automaticamente nos subdiretórios para obter os arquivos.

Por fim podemos colocar todos os arquivos adicionados em nosso repositório.

$ fossil commit -m "MENSAGEM DO COMMIT" [5]

Comandos Básicos[editar | editar código-fonte]

Abaixo estão listados alguns dos principais comandos utilizados no Fossil juntamente com as suas funções:

Para verificar o status da árvore de trabalho[editar | editar código-fonte]

  • fossil info - fornece informações sobre o objeto passado como argumento (nome, código, quantidade de checkins e etc)
  • fossil status - reporta o status da árvore de trabalho
  • fossil changes - relatório sobre o estado de edição dos arquivos
  • fossil diff - mostrar diferenças de versões de arquivos
  • fossil timeline - exibe um histórico de modificações passando data e hora específicos
  • fossil branch - gerenciar branches (new- criar, list- listar branches)

Para mudar entre as diferentes versões e branches[editar | editar código-fonte]

  • fossil update - mescla a versão atualizada do repositório local com a versão presente na source tree local, integrando alterações locais
  • fossil checkout - também atualiza versão da source tree , mas não faz isso se houver modificações não comitadas localmente, a menos que seja forçado, e sendo assim, irá sobrescrever o que foi feito localmente

Para configurar o repositório local[editar | editar código-fonte]

  • fossil ui - inicia o webserver para configuração

Para realizar modificações[editar | editar código-fonte]

  • fossil rm- remover arquivos (o arquivo continua no histórico após a remoção)
  • fossil add- adiciona uma ou mais modificações ante de commitá-las
  • fossil commit- copia as mudanças a source tree local para o repositório local

Compartilhando as modificações[editar | editar código-fonte]

  • fossil push- envia as mudanças para o repositório remoto
  • fossil pull- obtém as mudanças do repositório remoto para o repositório local, e então elas vão para o repositório local. Porém é necessário dar um “update” pra levar essas mudanças para a source tree local
  • fossil sync- sincronizar todas as mudanças entre o repositório local e o remoto (push e pull)

[6]

Comparações GIT x FOSSIL[editar | editar código-fonte]

  • Só versiona arquivos x Versiona tickets (Bug-report do Git), Wiki e notas técnicas adicionalmente.
  • Desenvolvimento estilo Bazaar x Desenvolvimento estilo Cathedral
  • Projetado para desenvolvimento linux x Projetado para desenvolvimento SQLite
  • Grande quantidade de pequenas ferramentas x Executável stand-alone
  • Lembra o que você deveria ter feito x Lembra o que você fez
  • GPL x BSD

[7]

Referências[editar | editar código-fonte]

  1. O que é o Fossil?. fossil-scm.org. Página visitada em 27 de março de 2016.
  2. Integrated Version Control with Fossil SCM. fossil-scm.org. Página visitada em 30 de março de 2016.
  3. Fossil Concepts. fossil-scm.org. Página visitada em 30 de março de 2016.
  4. Fossil Concepts. fossil-scm.org. Página visitada em 30 de março de 2016.
  5. Fossil Version Control - A user Guide. fossil-scm.org. Página visitada em 30 de março de 2016.
  6. Quick Start. fossil-scm.org. Página visitada em 30 de março de 2016.
  7. Fossil versus Git. fossil-scm.org. Página visitada em 30 de março de 2016.