/Inter

Trabalho conclusão curso Fatec Guaratinguetá

Primary LanguageC#MIT LicenseMIT

Inter. é um sistema de gerenciamento de trabalhos interdisciplinares que está sendo desenvolvido como Trabalho de Conclusão de Curso dos alunos de Análise e Desenvolvimento de Sistemas da Fatec Guaratinguetá, turma 2015.

Pré-requisitos

Antes de começar a usar o GitHub com o Visual Studio confira se as depêndencias do mesmo estão instaladas:

Configurando o visual Studio

  1. Abra o Team Explorer
  2. Clique na aba Connect
  3. Clique em Clone
  4. O endereço do projeto é https://github.com/levi92/Inter.
  5. Insira seu Username e Password do GitHub
  6. Pronto, o repositório está clonado localmente e pronto para trabalhar

Usando o GitHub

Estrutura do GitHub

O GitHub é um controle de versão que trabalha localmente, o oposto de outras soluções com servidores centralizados como o Subversion e o TFS. Nesse sistema o servidor central contém o código sendo desenvolvido porém cada usuário clona esse repositório para sua máquina local e trabalha de maneira totalmente offline, sem a necessidade de mais checks com o servidor central. Estando pronto seu desenvolvimento basta realizar um push para o servidor central e o mesmo, antes de atualizar, criará um snapshot atual do projeto e então atualizará.

O Git é organizado por branches. Cada branch é, tecnicamente, um ponteiro que aponta para algum snapshot do projeto em questão. O branch padrão do Git é o master, nele está a versão mais estável do projeto e só deve ser atualizado para outra versão estável. Para o desenvolvimento em geral outros branches devem ser criados como por exemplo o branch "dev", permitindo assim a possibilidade de trabalhar tranquilamente, sem que erros e bugs atrapalhem o estado estável do projeto.

Todos os arquivos contidos, bem como branches, no GitHub são identificados por uma chave SHA1 (não há outra maneira de identificação, por exemplo, nomes). Ao realizar qualquer operação o Git checa as chaves para garantir a integridade e confiabilidade dos conteúdos tornando assim impossível a modificação de um arquivo do GitHub sem que o mesmo saiba e registre a mudança. O ato de mesclar dois branches diferentes chama-se merge.

Os arquivos no Git possuem quatro estados diferentes:

  • Untracked: Nesse estado os arquivos não estão inseridos no GitHub, ele não os conhece e não gerencia seu histórico.
  • Unmodified: Os arquivos não estão modificados, sendo assim o servidor central Git já possui essa mesma versão dos arquivos. Isso o exclui da necessidade de atualização quando um push for feito, apenas uma referência à essas versões é passada quando um novo snapshot for gerado.
  • Modified: Os arquivos foram modificados e estão marcados para atualização quando um push for realizado.
  • Staged: Os arquivos que foram marcados como modificados são empacotados e preparados para serem sincronizados com o servidor central.

Ao ato de sincronizar damos o nome de commit.Um commit é o envio dos arquivos, empacotados no estágio staged, para o servidor central. Cada commit é identificado pelo nome do usuário que o realizou, seu email, uma descrição breve do commit, uma descrição detalhada e por fim uma lista extensa e detalhada dos arquivos modificados e também linhas modificadas.

O ato de enviar arquivos para o servidor central através de um commit damos o nome de push. Além do push temos também a ação de pull. Um pull é o processo inverso do push sendo assim ao realizar uma sincronia de um servidor local com o servidor central para realizar um push pode haver a requisição de um pull com os arquivos do servidor central que estão mais atualizados do que o servidor local.

Por fim, o ato de copiar fielmente um repositório e hospeda-lo em sua conta GitHub dá-se o nome de Fork. Criar um fork nada mais é do que copiar um repositório por completo para sí para que você possa usá-lo como ponto de partida para um projeto próprio ou então para realizar modificações ou correções de bugs para então reenvia-lo para o dono original através de uma pull request. É visado principalmente para o trabalho em projetos open source.

O Git no Visual Studio

Com extensões no Visual Studio 2012, e nativamente no Visual Studio 2013,o GitHub é totalmente suportado. Como realizado anteriormente, o repositório local está clonado e pronto para uso. Ao abrir o repositório local pelo Team Explorer as soluções contidas nele bem como as opções de branch e o menu de opções:

  • changes: Que marca todas as mudanças realizadas no repositório local, permite empacota-las em um commit bem como decidir manualmente as exclusões do mesmo.
  • branches: Permite gerenciar os branches do repositório, criar novos, realizar merges e forks.
  • unsynced branches: Permite verificar os arquivos staged prontos para o commit, resolver conflitos e por fim sincroniza-los com o servidor central.

Se duas ou mais pessoas modificarem o mesmo arquivo em um curto espaço de tempo uma resolução de conflito será iniciada. Na resolução de conflito há a possibilidade de escolher uma versão do arquivo, mesclar as duas em uma única versão ou então modificar manualmente o arquivo e resolver o conflito.

GitHub Website

O site do GitHub possui várias ferramentas para gerenciamento do projeto bem como estátisticas e logs.

Na aba code (a Home do projeto, por padrão) encontramos:

  • o código do projeto em sí.
  • Informações do último commit.
  • Menu com informações de todos os commits.
  • Menu com informações dos branches.
  • Informações de releases (versões definitivas do projeto, por exemplo, versão 1.0).
  • Informações de contribuidores.
  • Distribuição de linguagens de programação no projeto.

Na próxima aba, issues encontramos ferramentas para a integração e comunicação da equipe:

  • No primeiro menu, issues, temos as ferramentas para a criação, pesquisa e solução de problemas, bugs, idéias, propsotas, comentários e afins.
  • No segundo menu, pull requests encontramos as requisições de pull de terceiros e há a possibiidade de aceita-las e mescla-las com o upstream channel.
  • E por fim temos o menu milestones que são metas estabelecidas e que devem ser cumpridas pelo grupo.

Todos os itens criados na aba issues podem ser classificados, e pesquisados, com labels como bug, enhancement, duplicate, etc.

Na aba wiki temos as ferramentas para criar uma Wiki própria do projeto.

Na aba pulse estatísticas detalhas são mostradas e há possibilidade de comparar quaisquer mudanças.

Em graphs temos a visão detalhada apresentada por meio de gráficos:

  • Contributors: Mostra as contribuições para o projeto por usuário.
  • traffic: Mostra informações de trafego do projeto, números de views, visitantes, clones, visitantes únicos e conteúdo mais popular.
  • commits: Mostra detalhadamente o número de commits por dia e por semana.
  • code frequency: mostra o número de adições e remocões realizadas.
  • punch card: Mostra os ultimos commits com o horário exato.
  • network: Mostra a movimentação da rede.
  • members: Mostra os membros que realizaram um fork do projeto.

Todos os conteúdos do GitHub possuem histórico, arquivos antigos podem ser acessados, tudo pode ser comentado e tudo possui seu respectivo Sha que o identifica.

Links Úteis