Migrar os repositórios de SVN para Mercurial


#1

Precisamos fazer a migração do repositório do SVN para o Mercurial.

Pensei em fazermos da seguinte forma, escolhermos uma data de corte, e fazermos a migração, após essa data, toda e qualquer alteração deverá ser feita no HG, bem como o AD Global se não me engano.

O que acham, como podemos prosseguir com a mudança e qual a melhor data?


#2

Acho que a migração pode ser feita imediatamente após os commiters darem seu ok… com um prazo limite de uma semana, quando a mudança passa a ser efetiva mesmo sem este ok.

se alguém acha que deve ser esperado mais, deve deixar suas razões aqui nesta thread, mas eu particularmente não vejo motivo para não mudar.

Abraços,
Claudemir


#3

Certo allgood , outro ponto importante que temos que discutir, migraremos para o repositório do projeto pai(AD Global) ou não?


#4

acho que o projeto pai dá mais visibilidade para a gente. vamos precisar de apoio deles, mas acho que isso é tranquilo.

não vejo riscos porque não tem como perdermos nada.

Todo mundo que colocar um tracker deve colocar no lugar certo “LBR Bugs” e “LBF Feature requests”, que já estão criados lá (!), assim não teremos problemas de ruídos na linha!

Aconselho criar um tracker para contribuições… similar ao que já tem no projeto pai.

Tem gente que não gosta do fórum do sf… eu particularmente não gosto de fórum, prefiro lista de e-mail… mas nesse ponto eu apenas deixo meu voto e não advogo muito a este favor… parece que o povo gosta de fórum mesmo! Eu apenas prefiro o fórum do SF exatamente por ele ficar mais visível a visitantes… acho que boa parte de nossos esforços devem ser direcionados a facilitar a chegada de novos usuários, contribuintes e desenvolvedores.

Abraços,
Claudemir


#5

Olá Pablo,

Você faz a migração do trunk então?

O final de ano é um período sazonal para mim, portanto eu não tenho como ajudar muito.

A minha sugestão seria congelar o trunk no dia 24/11 e migrar até o dia 01/12, liberando novamente a partir desta data. Assim tem tempo o bastante pra se alguém tiver alguma coisa que estava trabalhando terminar, ou pelo menos tempo para se planejar e a partir desta data teríamos uma semana. Lembrando que é necessário alguns acessos no projeto principal para concluir a tarefa, então não depende só da gente. Além de que é importante fazer alguns testes antes de integrar no projeto principal, sugiro até que os testes sejam feitos no próprio Mercurial do LBR.


#6

Sim Ricardo, pretendo fazer sim, com a ajuda do allgood que já tem um conhecimento mais avançado em Mercurial e se propos a ajudar.

Quanto ao fórum, vc providência para criar um fórum phpbb lá no adempiere.org ou talvez migrar os dados deste aqui para o do SF no projeto global(se houver a possibilidade é claro)?


#7

Oi pessoal,

conclui alguns testes usando um projeto velho que eu tinha no sf.net

migrei o trunk do svn do adempierelbr para o repositório test no meu projeto.

para acessar via web:

http://pybber.hg.sourceforge.net/hgweb/pybber/test/

Para clonar o repositório (read only apenas aqui):

hg clone http://pybber.hg.sourceforge.net:8000/hgroot/pybber/test

Clonei apenas o trunk, depois percebi que foi tudo migrado para uma outra branch o histórico velho… quando eu fazer a clonagem completa, é possível preservar todo o histórico, só vou remover branches que são claramente não derivadas da trunk (com conteúdo diferente).

Para fazer o mesmo teste mas dentro do adempierelbr, e com acesso de escrita a todos, é necessário autorização de acesso shell… o mesmo vale para fazermos clones no projeto global.

Abraços,
Claudemir


#8

Pessoal,

mais desenvolvimento, e acredito que a conclusão do teste de conversão.

O primeiro teste que eu fiz, converti apenas o trunk, mas depois percebi que era super fácil converter todo o repositório sem perder nenhum histórico.

Para facilitar, marquei uma branch no mercurial com o nome de ‘main’, apontando para o último changeset do trunk.

O repositório completo está acessível pelo mercurial com o seguinte comando:

hg clone http://pybber.hg.sourceforge.net:8000/hgroot/pybber/adempierelbr-test adempierehg

a branch ‘main’ criada pode ser acessada com o comando:

hg update main

Eu comparei através do md5sum todos os arquivos (ignorei diretorios) da branch main do repositório de testes com os arquivos do trunk svn… os comandos foram os seguintes (em linux):

$ hg clone http://pybber.hg.sourceforge.net:8000/hgroot/pybber/adempierelbr-test adempierehg
$ cd adempierehg
$ hg update main
$ find . \( ! -regex '.*/\..*' \) -type f | sort | while read FILE ; do md5sum $FILE ; done > ~/hgsum.txt

$ cd ..
$ svn co https://adempierelbr.svn.sourceforge.net/svnroot/adempierelbr/trunk adempieresvn
$ cd adempieresvn
$ find . \( ! -regex '.*/\..*' \) -type f | sort | while read FILE ; do md5sum $FILE ; done > ~/svnsum.txt

$ md5sum ~/svnsum.txt ~/hgsum.txt 
aefc1cb8bcdea83fd17689cb8ec7f2c3  /home/users/a/al/allgood/svnsum.txt
aefc1cb8bcdea83fd17689cb8ec7f2c3  /home/users/a/al/allgood/hgsum.txt

Lógico que este teste deverá ser refeito quando ativarmos o repositório oficial, mas já indica que podemos prosseguir!

Fico no aguardo dos comentários dos colegas para continuar auxiliando.

Abraços,
Claudemir


#9

Certo allgood, muito bom.

Estou providenciando as permissões no sf junto com o pessoal do AD Global.

Assim que tiver novidades, eu posto aqui.

Abraços


#10

Ok pessoal, já verifiquei as permissões e estamos prontos para fazer a migração.

Ricardo, por favor congele o SVN do AdempiereLBR amanhã, a qualquer hora, e me avise. Procederei com a migração durante o dia mesmo, pois ela é bem simples.

Até no fim de semana, caso o meu acesso à wiki adempiere.com seja permitido (tá com problemas em criar contas, já reportado), pretendo escrever um guia rápido sobre o uso do mercurial.

Para quem quiser dar uma olhada, estou pensando em seguirmos um método similar ao projeto global, detalhado em: adempiere.com/Software_Development_Procedure

Abraços,
Claudemir


#11

Claudemir, o trunk está congelado. Seria importante se você conseguisse colocar os passos que você usou para fazer a migração, assim fica documentado se precisarmos voltar no assunto no futuro. Não sei se você seguiu o mesmo procedimento da página: adempiere.com/Converting_fro … _Mercurial

Também seria importante documentar na Wiki os endereços do novo repositório e precisamos definir alguns padrões para criar as braches e definir os times Técnico e Funcional. Sugiro marcarmos uma reunião via Skype após a migração.

Abs,


#12

Também acho importante marcarmos uma reunião via skype para definirmos estes detalhes e fazermos um documentos para colocar-mos na wiki.

Sobre o fórum: Podemos usar o do SF sem problemas, todos concordam?
Quem irá criar os tópicos e menus lá e quando congelaremos aqui e no LBR?

Abraço e vamos lá, hoje será “o dia”.


#13

Eu estou sem acesso à wiki ainda. Mas o procedimento é um subconjunto do que está citado ali.

Vou renomear os branches pessoais atuais para svn/NNNN. Cada desenvolvedor deve fazer um novo branch a partir do trunk, colocar nele o seu trabalho e me informar quando pode ser removido o branch da conversão. Isso é necessário porque alguns branches costumam ter arquivos fora da estrutura do projeto, o que devemos evitar… branches devem ser uma variação do trunk (que terá outro nome), com o claro intuito de ser agregado (merge) de volta. Para trabalhos a parte, podemos solicitar novos repositórios ao time do Adempiere.

Eu já pensei sobre alguns critérios para sugerir, mas como tô sem acesso na wiki, ainda não escrevi eles. Vou colocar o básico da minha sugestão aqui aqui, é uma variação do critério do repositório principal do Adempiere:

  1. todos os desenvolvedores podem criar um branch permanente, com o seu nome
  2. todos também podem criar inúmeros branches temporários no formanto NNNNN/xxxxxx, onde NNNNN é o seu nome, e xxxxx é algum identificador para o trabalho do branch
  3. branches temporários serão excluídos após um tempo de inatividade (tempo a ser discutido, remoção a ser discutida antes da efetivação), tenha sido feito o merge, ou não.
  4. no mesmo modelo do projeto principal, devemos ter 2 branches permanentes: stable e develop, este último, pode ser considerado o substituto do trunk
  5. além dos branches dos desenvolvedores (NNNN e NNNN/xxxx) podem ser criados outros branches temporários para a implementação de features mais complicadas, usando o padrão develop/FR9999, e para correção de bugs usando o padrão develop/BR9999
  6. o branch develop pode receber merges dos branches dos desenvolvedores, de features, e de bugs
  7. o branch stable pode receber merges apenas dos branches develop e bugs (caso seja algum bug crítico), possivelmente após discussões

Coloco tudo isso em discussão, assim que eu tiver acesso a wiki, coloco lá… até acho interessante que a discussão destas coisas sejam feitas na própria página de discussão da wiki.

Vou proceder a migração ainda antes das 12hs… posto novamente daqui a pouco informando a conclusão.

Abraços,
Claudemir


#14

Pessoal,

Está no ar o nosso repositório localization_br … vou escrever a página de ajuda hoje a noite e passar para o pablo publicar… no momento ainda estou sem acesso a wiki.

O repositório contributions_lbr ainda precisa ser testado.

Abraços
Claudemir


#15

No wiki vc requisitou o usuário e não liberaram ainda? se for isso me passa qual foi o e-mail que vc registrou no wiki que eu tento liberar com o pessoal.
Abs!


#16

Está com problema a criação de novos usuários na wiki do www.adempiere.com

Já foi reportado para eles corrigirem.

Abraços,
Claudemir


#17

Seguindo o script de validação que eu colei a alguns posts atrás, a branch “development” do mercurial fecha com o trunk do nosso svn.

Colo abaixo o checksum caso alguém queira comparar por conta, mas devem seguir os mesmos comandos que eu colei anteriormente, apenas é necessário alterar o comando “hg clone” para obter do nosso repositório. Estou apagando meus repositórios de testes.

A mesma sequência pode ser utilizada para testar os branches, apenas com ajuste nos comandos “hg clone” e “svn co”.

$ md5sum ~/svnsum.txt ~/hgsum.txt 
aefc1cb8bcdea83fd17689cb8ec7f2c3  /home/users/a/al/allgood/svnsum.txt
aefc1cb8bcdea83fd17689cb8ec7f2c3  /home/users/a/al/allgood/hgsum.txt

Abraços,
Claudemir


#18

Pessoal,

ainda estou sem acesso à wiki do adempiere.com, enquanto isso, estou editando um pequeno guia de uso do Mercurial na minha wiki pessoal, segue o endereço:

sourceforge.net/userapps/mediaw … _Mercurial

É um trabalho em curso, devo concluir até o início da semana, mas o básico já está lá, e com referência a literatura mais completa.

Abraços,
Claudemir


#19

Beleza, Claudemir, como você já viu, seu cadastro na wiki foi liberado e aprovado, me confirmaram isso pela manhã.

Agora já temos então nossa página na wiki global >> adempiere.com/Localization_Brazil
Agora já temos o repositório migrado para o AD Global e também para Mercurial(outra forma de controle de versões).

Feito isso então, precisamos definir os seguinte pontos:

  • Fórum: Definição final sobre o mesmo, usamos o do SF ?
  • REUNIÃO PARA DEFINIR REGRAS DE UTILIZAÇÃO, DESENVOLVIMENTO E DOCUMENTAÇÃO DOS NOVOS AMBIENTES. SUGESTÃO DE DATAS?

Abraços


#20

Publiquei o pequeno guia no endereço adempiere.com/Utiliza%C3%A7% … _Mercurial e tomei a liberdade de colocar o primeiro link na nossa “Página Portal”.

O guia exemplifica o Mercurial apenas pela linha de comando por enquanto, mas já tem o link para um ótimo plugin para o Eclipse. O trabalho de documentar esta parte é um pouco maior, pois envolve captura de telas. Só vou poder mexer nisso na próxima semana, se alguém puder ajudar, a página da wiki aceita colaborações!

Pretendo colocar aquele post em que sugeri o método de trabalho na wiki, acredito que a discussão possa ser feita lá, na página de discussão mesmo. Aviso aqui quando colocar, deve ocorrer entre este sábado e domingo.

Eu sou um cara ‘assincrono’, por isso eu gosto de RSS, Mailing Lists e e-mail, e tento evitar um pouco os Instant Messengers e outras coisas ‘real-time’. Por isso não sou muito favorável a uma reunião, em todo caso, sempre vou expor as minhas ideias, e, se possível, participarei das reuniões.

Eu apoio esta alternativa, aguardo opinião dos outros.