Download - Processo de desenvolvimento na samba
![Page 1: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/1.jpg)
SAMBA TECH
Processo de desenvolvimento
![Page 2: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/2.jpg)
Processo de Desenvolvimento na samba usando Git, GitHub,
Jenkins e BluePill como ferramentas de apoio.
![Page 3: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/3.jpg)
Processo de desenvolvimento no Sprint
![Page 4: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/4.jpg)
Como era (é)?
![Page 5: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/5.jpg)
A nova proposta...
Desenvolvimento usando feature branches
![Page 6: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/6.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/7.jpg)
Como fica então?
![Page 8: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/8.jpg)
E na prática, como funciona?
![Page 9: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/9.jpg)
Como criar um branch?
•$ git checkout -b <feature-branch-name>
![Page 10: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/10.jpg)
Como alternar entre branches?
•$ git checkout <feature-branch-name>
![Page 11: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/11.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/12.jpg)
Merge ou Rebase?
![Page 13: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/13.jpg)
•Depende...
![Page 14: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/14.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/15.jpg)
Merge...
$ git pull origin master$ git checkout <feature-branch-name>$ git merge master
![Page 16: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/16.jpg)
Vantagem do Merge
•- Maior facilidade para entender quando uma cabeça foi mesclada com outra.
![Page 17: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/17.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/18.jpg)
O que o rebase faz?
![Page 19: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/19.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/20.jpg)
Quando não usar o Rebase?
- Nunca, NUNCA use rebase em branches públicos.
![Page 21: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/21.jpg)
Push
$ git push <feature-branch-name>
![Page 22: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/22.jpg)
E como testar minha feature?
- Jenkins - BluePill
![Page 23: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/23.jpg)
Jenkins
![Page 24: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/24.jpg)
BluePill
![Page 25: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/25.jpg)
Release-Notes
•- Incremental durante o Sprint•- Direto na interface do GitHub
![Page 26: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/26.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/27.jpg)
Como colocar meu código em produção?
![Page 28: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/28.jpg)
•Pull-Request
![Page 29: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/29.jpg)
Pull-Request – Revisão de Código
![Page 30: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/30.jpg)
Pull-Request – Revisão de Código
![Page 31: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/31.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/32.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/33.jpg)
![Page 34: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/34.jpg)
Processo de Hot Fix
![Page 35: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/35.jpg)
Hot Fix
•Fork para a conta pessoal
![Page 36: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/36.jpg)
Hot Fix
•Pull-Request para master de Desenvolvimento e master de Produção.
![Page 37: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/37.jpg)
Hot Fix
![Page 38: Processo de desenvolvimento na samba](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/38.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/39.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/40.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/41.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/42.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/43.jpg)
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](https://reader031.vdocuments.net/reader031/viewer/2022013115/559e85e41a28ab9d0b8b479a/html5/thumbnails/44.jpg)
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