processo de desenvolvimento na samba

Post on 09-Jul-2015

530 Views

Category:

Documents

25 Downloads

Preview:

Click to see full reader

TRANSCRIPT

SAMBA TECH

Processo de desenvolvimento

Processo de Desenvolvimento na samba usando Git, GitHub,

Jenkins e BluePill como ferramentas de apoio.

Processo de desenvolvimento no Sprint

Como era (é)?

A nova proposta...

Desenvolvimento usando feature branches

Por quê usar feature branches?

- Branches são “baratos”- Separação do código das features- Facilidade para QA garantir que a feature está funcionando- Fácil gerenciamento da release- ...

Como fica então?

E na prática, como funciona?

Como criar um branch?

•$ git checkout -b <feature-branch-name>

Como alternar entre branches?

•$ git checkout <feature-branch-name>

Como fazer push das minhas modificações?

•$ git commit -a -m”minha nova feature”•$ git push origin <feature-branch-name>

Merge ou Rebase?

•Depende...

O que o merge faz?

•- Um novo commit é criado no HEAD do stack de commits, marcando o momento em que duas cabeças distintas foram transformadas em uma só.

Merge...

$ git pull origin master$ git checkout <feature-branch-name>$ git merge master

Vantagem do Merge

•- Maior facilidade para entender quando uma cabeça foi mesclada com outra.

O que o rebase faz?

•- Recorta o commit – o commit perde a referência do parent.•- Aplica todas as modificações com as quais você está fazendo o rebase.•- Cola suas modificações em cima desta nova base, com novo SHA1 – ou seja, um novo commit.

O que o rebase faz?

Rebase...

•$ git checkout -b <feature-branch-name>•..hack.hack..•$ git commit•$ git rebase master•$ git checkout master•$ git merge <feature-branch-name>

Quando não usar o Rebase?

- Nunca, NUNCA use rebase em branches públicos.

Push

$ git push <feature-branch-name>

E como testar minha feature?

- Jenkins - BluePill

Jenkins

BluePill

Release-Notes

•- Incremental durante o Sprint•- Direto na interface do GitHub

Release-Notes

•- Maiores informações na colméia: http://colmeia.sambatech.com.br/display/comofas/Dicas+Release-Notes

Como colocar meu código em produção?

•Pull-Request

Pull-Request – Revisão de Código

Pull-Request – Revisão de Código

Pull-Request – Revisão de Código

Observações:- Commit no HEAD do branch em pull-request faz o HEAD do pull-request andar também.

Quando testar?

Aberto para que a equipe escolha.

Mas dar preferência para integração na quarta-feira ou quinta-feira.

Processo de Hot Fix

Hot Fix

•Fork para a conta pessoal

Hot Fix

•Pull-Request para master de Desenvolvimento e master de Produção.

Hot Fix

FAQ

•Qual a melhor forma de ir para uma revisão específica e depois retornar para a minha revisão (parece algo

simples, mas já tive problema com isso)?

FAQ

•Qual a melhor forma de ir para uma revisão específica e depois retornar para a minha revisão (parece algo

simples, mas já tive problema com isso)?

•$ git branch branchname <sha1-of-commit>•$ git branch branchname HEAD~3

FAQ

•O HG permite push e pull de um repositório que esteja na máquina de um dos desenvolvedores por exemplo. Mas acho que no GIT o mais indicado é criar um brach remoto neste caso (já li que existe um tipo específico

de branch pra isso). Certo?

O git é um sistema de versionamento distribuído. Qual a melhor forma de duas pessoas

trabalharem em uma feature de forma independente da equipe?

FAQ

•Como faço para ver o que foi mudado no meu branch remoto, sem atualizar meu branch atual?

FAQ

•$ git fetch && git log ..origin/master --oneline

•Como faço para ver o que foi mudado no meu branch remoto, sem atualizar meu branch atual?

FAQ

Fiz pull, realizei um monte de modificações. Quero simplesmente "desistir" delas, voltar ao estado antes das modificações. Qual o comando?

FAQ

Fiz pull, realizei um monte de modificações. Quero simplesmente "desistir" delas, voltar ao estado antes das

modificações. Qual o comando?

Se estiver no working directory:$ git checkout -- <file>

Se já tiver dado “add” (staging):$ git reset HEAD <file>

Se já tiver commitado:$ git reflog$ git reset --hard HEAD@{1}

http://anders.janmyr.com/2009/09/git-undo-reset-or-revert.html

OBRIGADO!

João Maciel, DevOps - Samba Techjoao.maciel@sambatech.com.br

top related