45
SAMBA TECH Processo de desenvolvimento

Processo de desenvolvimento na samba

Embed Size (px)

Citation preview

Page 1: Processo de desenvolvimento na samba

SAMBA TECH

Processo de desenvolvimento

Page 2: Processo de desenvolvimento na samba

Processo de Desenvolvimento na samba usando Git, GitHub,

Jenkins e BluePill como ferramentas de apoio.

Page 3: Processo de desenvolvimento na samba

Processo de desenvolvimento no Sprint

Page 4: Processo de desenvolvimento na samba

Como era (é)?

Page 5: Processo de desenvolvimento na samba

A nova proposta...

Desenvolvimento usando feature branches

Page 6: Processo de desenvolvimento na samba

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- ...

Page 7: Processo de desenvolvimento na samba

Como fica então?

Page 8: Processo de desenvolvimento na samba

E na prática, como funciona?

Page 9: Processo de desenvolvimento na samba

Como criar um branch?

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

Page 10: Processo de desenvolvimento na samba

Como alternar entre branches?

•$ git checkout <feature-branch-name>

Page 11: Processo de desenvolvimento na samba

Como fazer push das minhas modificações?

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

Page 12: Processo de desenvolvimento na samba

Merge ou Rebase?

Page 13: Processo de desenvolvimento na samba

•Depende...

Page 14: Processo de desenvolvimento na samba

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ó.

Page 15: Processo de desenvolvimento na samba

Merge...

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

Page 16: Processo de desenvolvimento na samba

Vantagem do Merge

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

Page 17: Processo de desenvolvimento na samba

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.

Page 18: Processo de desenvolvimento na samba

O que o rebase faz?

Page 19: Processo de desenvolvimento na samba

Rebase...

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

Page 20: Processo de desenvolvimento na samba

Quando não usar o Rebase?

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

Page 21: Processo de desenvolvimento na samba

Push

$ git push <feature-branch-name>

Page 22: Processo de desenvolvimento na samba

E como testar minha feature?

- Jenkins - BluePill

Page 23: Processo de desenvolvimento na samba

Jenkins

Page 24: Processo de desenvolvimento na samba

BluePill

Page 25: Processo de desenvolvimento na samba

Release-Notes

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

Page 26: Processo de desenvolvimento na samba

Release-Notes

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

Page 27: Processo de desenvolvimento na samba

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

Page 28: Processo de desenvolvimento na samba

•Pull-Request

Page 29: Processo de desenvolvimento na samba

Pull-Request – Revisão de Código

Page 30: Processo de desenvolvimento na samba

Pull-Request – Revisão de Código

Page 31: Processo de desenvolvimento na samba

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.

Page 32: Processo de desenvolvimento na samba

Quando testar?

Aberto para que a equipe escolha.

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

Page 33: Processo de desenvolvimento na samba
Page 34: Processo de desenvolvimento na samba

Processo de Hot Fix

Page 35: Processo de desenvolvimento na samba

Hot Fix

•Fork para a conta pessoal

Page 36: Processo de desenvolvimento na samba

Hot Fix

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

Page 37: Processo de desenvolvimento na samba

Hot Fix

Page 38: Processo de desenvolvimento na samba

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)?

Page 39: Processo de desenvolvimento na samba

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

Page 40: Processo de desenvolvimento na samba

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?

Page 41: Processo de desenvolvimento na samba

FAQ

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

Page 42: Processo de desenvolvimento na samba

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?

Page 43: Processo de desenvolvimento na samba

FAQ

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

Page 44: Processo de desenvolvimento na samba

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

Page 45: Processo de desenvolvimento na samba

OBRIGADO!

João Maciel, DevOps - Samba [email protected]