Com o git e o github regulares, eu posso fazer uma revisão de código simplesmente criando uma solicitação de recebimento do ramo de recursos em que estou trabalhando no ramo mestre. Como eu faria revisões de código com o git-flow? Com o fluxo de trabalho como "git flow feature finish", estou confuso sobre o local onde a revisão do código realmente acontece e como o git-flow ou o git pode facilitar essa revisão.
43
Respostas:
Nos deparamos com esse problema exato recentemente. Nós realmente gostamos do fluxo git, pois ele usa um bom nível de semântica (usando o mesmo nível usado na discussão em equipe: "Vou iniciar o recurso A" mais do que "vou criar um ramo, fazer checkout"), enquanto O git é um nível muito "de implementação" (que também é bom e útil, mas diferente).
O problema que temos é
git feature finish
o de mesclar a ramificação ao desenvolvimento, enquanto queremos que uma solicitação de recebimento seja enviada e (isso é importante) mesclada pelo revisor , e não pelo responsável, para enfatizar a propriedade da equipe.Nossa solução atual:
Isso é consistente com a nossa prática, com a desvantagem de exigir a exclusão do ramo por conta própria (como não damos acabamento ao fluxo). Nosso próximo passo provavelmente será reimplementar algumas partes do fluxo git (como se trata principalmente de encadear comandos git) para levar isso em consideração (tendo a parte "limpeza" do acabamento, sem a mesclagem).
fonte
O processo que a equipe com a qual trabalho usa é o seguinte:
git flow feature start module_1
develop
e a ramificação do recursomodule_1
git flow feature finish module_1
develop
ramificação é enviada para o GitHub (o GitHub marcará automaticamente a solicitação de recebimento como fechada / mesclada quando isso acontecer)Normalmente, todo esse processo é realizado pelo autor original, mas isso não é necessário. Qualquer pessoa da nossa equipe pode intervir e iniciar esse processo a qualquer momento. Tudo o que eles precisam fazer é verificar o ramo de recursos e continuar o processo. Quem já executou
git flow feature finish module_1
terá o luxo de excluir seu ramo de recurso local, mas qualquer pessoa que faça check-out do ramo precisará fazer isso manualmente, se quiser usar algo parecidogit branch -D feature/module_1
.Para os hotfixes, usamos uma abordagem semelhante e criamos a solicitação de recebimento no GitHub antes de concluir o hotfix.
fonte
Se você estiver revisando códigos, presumirei que você tenha um repositório central que contém o código "oficial". Os desenvolvedores extraem e enviam para este repositório central.
Quando você usa o Gerrit , o próprio Gerrit se torna o repositório central (possui servidores SSH e HTTP integrados que permitem aos usuários interagir com ele basicamente da mesma maneira que já são). Ao usar o Gerrit, o fluxo de trabalho se torna:
Ao usar um repositório central, outros desenvolvedores podem ver as alterações enviadas após a etapa 2. Gerrit apresenta o fluxo de trabalho de revisão de código e, portanto, outros desenvolvedores apenas veem as alterações enviadas após a etapa 5.
Isso funciona bem com o git-flow (ou qualquer outro esquema de ramificação) porque o Gerrit suporta a revisão das alterações feitas em qualquer ramificação.
fonte
Aqui está outra sugestão.
fonte