Forma de trabalhar com Mercurial e BitBucket

69 views
Skip to first unread message

Rinaldo

unread,
Mar 5, 2018, 4:33:25 PM3/5/18
to iDempiereLBR
Pessoal estou pensando na estrutura abaixo do HG para trabalhar internamente e poder compartilhar as alterações com a comunidade. 
Basicamente são 4 repositórios (considerando o workspace do eclipse local). 
Como não achei um modelo que permitisse fazer isso junto, compartilhar e ao mesmo tempo ter customizações próprias optei por esse caminho.

Qualquer sugestão, comente

A ideia consistem em ter um branch revision-5.1 (abaixo de lbr-5.1) que poderia ter no fork do bitbucket (se isso for aceito) para submeter sugestões para avaliação do projeto.


Na estrutura interna (server interno)  abaixo do lbr-5.1 um branch hom-.5.1 e abaixo dele um branch des-5.1
As alterações(revisões) entre a branch hom-5.1 e a branch revision-5.1 seriam copiadas somente quando de interesse da comunidade e então lançadas para cima no processo, chegando ao fork.

Assim as revisões aceitas e não aceitas pela comunidade ficam registradas e se pode manter uma ideia pelo bitbucket do quanto a versão interna pode estar diferente da comunidade, fora as alterações não compartilhadas por algum motivo.




0) Nuvem  iDempiereLBR          (projeto da comunidade )
       | default
       | Branch: lbr-5.1
|--------------------------------------------------------------------------------------------------------------------------------------------------  
|1)Nuvem  -> Fork iDempiereLBRSuggest (meuuser)  repositório privado, publicável
|       | default
|       | Branch: lbr-5.1
|       | | Branch: revision-5.1
|
| Motivo: Fazer sugestões para comunidade e controlar as sugestões aceitas ou não em um branch chamado revision-5.1.
|         Dessa forma ao fazer o (pull, update, commit) as sugestões aceitas deve voltar em lbr-5.1 ou em default
V---------------------------------------------------------------------------------------------------------------------------------------------------  
||2)ServerInterno   -> Clone iDempiereLBRComunidade   { hg clone --verbose https://meuuser@bitbucket.org/meuuser/idempierelbrsuggest Z:/mercurial/iDempiereLBRComunidade}
||       | default
||       | Branch: lbr-5.1
||       | | Branch: revision-5.1 - default
||
||  Motivo: Manter uma posição interna com a posição mais atual da comunidade e servir de intermediário para saber o que foi alterado pela comunidade ou não
||          Recebe alterações da comunidade encaminha sugestões através da branch revision-5.1 para o fork da comunidade

||        hg update lbr-5.1
||        hg update revision-5.1
||        hg push -b .   (Faz o push para o fork)
||
VV|-------------------------------------------------------------------------------------------------------------------------------------------------  
|||3)ServerInterno   -> Clone iDempiereLBRInterno     { hg clone Z:/mercurial/iDempiereLBRComuninade Z:/mercurial/iDempiereLBRInterno}
|||       | default
|||       | Branch: lbr-5.1
|||       | | Branch: revision-5.1
|||       | | Branch: hom5.1  - default 
|||   | | Ex.: hg par (default); hg update lbr-5.1; hg par (lbr-5.1); hg branch hom-5.1; hg commit -m "hom-5.1"; hg par (hom-5.1);
|||       | | | Branch: des-5.1
|||  Motivo: Repositórios interno de produção, NUNCA será feito merge hom-5.1 com lbr5.1.
|||     Sugestões internas serão encaminhadas com os comandos:
|||        hg update revision-5.1
|||        hg graft --edit {NroRev}  Copia uma revisão especifica para a branch corrente (no caso revision-5.1)
|||        hg push -b .   (Faz o push para o clone ServerInterno Comunidade)
|||
|||        Para enviar de des-5.1 para hom-5.1 (merge local em ServerInerno) ;
|||        Tags são usadas em hom-5.1 para rotular versões em produção, tipo pro-5.1.nrorevisao
VVV|------------------------------------------------------------------------------------------------------------------------------------------------  
||||4)Eclipse Local Workspace  -> Clone iDempiereLBRInterno5.1 { hg clone Z:/mercurial/iDempiereLBRInterno#des-5.1 C:/mercurial/iDempiereLBRInterno5.1Des}
||||       Branch: des-5.1  *default
||||
||||  Motivo: Repositórios local do desenvolvedor nunca terá acesso a merge local pois já é o próprio trunck;
||||          Push do des-5.1 para o ServerInterno(iDempiereLBRInterno) para compartilhar desenvolvimento com outro desenvolvedor quando testado na máquina local.
||||          Obs: push não serve de backup nesse caso de uso, push é usado para controlar entregas de software aqui.

Message has been deleted

Jorge Babo

unread,
Mar 20, 2018, 10:07:57 AM3/20/18
to iDempiereLBR

Jorge Babo

unread,
Mar 20, 2018, 10:43:11 AM3/20/18
to iDempiereLBR

Bom dia

Vamos organizar a árvore do LBR e por favor peço para alguém gravar um video para ensinar como fazer modificações no bitbucket.

Queria saber como organizamos e gravamos no bitbucket nossos plugins e eventuais bugs?


Abraços

Jorge Babo


Então acho que temos que preparar o LBR

Em segunda-feira, 5 de março de 2018 18:33:25 UTC-3, Rinaldo escreveu:
Message has been deleted

Rinaldo

unread,
Jun 8, 2018, 11:24:11 AM6/8/18
to iDempiereLBR
Ola Jorge, eu não havia te respondido pois eu acreditava que isso fosse uma dificuldade para todos.

Como ninguém respondeu parece que isso seria algo mais do uso de cada um mesmo.

Para você saber como eu estou procedendo, eu acho que é disso que você estava falando.

Eu tenho no bitbucket dois caminhos:


O público uso para compartilhar todas as minhas alterações do Lbr-5.1 a quem possa ter algum interesse.

O privado uso para encaminhar as sugestões para o LBR através de um Pull request (do meu branch rev-5.1) para o idempierelbr (lbr-5.1) p/ Alan como revisor, acho que isso facilita se necessário for para ele, se julgar procedente incorporar os trechos de código do lbr.
Não sei se é a forma mais correta, mas caso não seja todos tem a liberdade de me dizer a melhor forma de fazer isso e contribuir.

Qualquer pessoa pode me pedir para ler o caminho privado https://bitbucket.org/Riddrk6/idempierelbrsuggest. Basta me pedir que eu disponibilizo.

Obs.: sei que o meu código as vezes é pouco comentado, estou tentando melhor nisso, mas é o que tenho na medida do possível considerando as outras demandas dos clientes internos, externos. O meu propósito hoje é que os nossos revendedores de serviços e produtos cada um tenha a sua instalação de Idempiere e o use continua.




Reply all
Reply to author
Forward
0 new messages