Baixando do source-forge usando git

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Baixando do source-forge usando git

Mensagem por JoséQuintas »

Requer um pouco de conhecimento e paciência mas....

Bom...
vai ser uma pasta com source-forge e git ao mesmo tempo.
A ordem não faz diferença, mas as duas coisas precisam ser feitas.

1) Se criar como git
crie alguma alteração/commit, salve.
depois, por exemplo
git svn init https://svn.code.sf.net/p/hwgui/code/trunk/hwgui

ou

2) git svn clone https://svn.code.sf.net/p/hwgui/code/trunk/hwgui
E o anterior

A primeira vez é a mais demorada.
Atenção ao número de commit, vai precisar dele depois pra facilitar.
Mesmo se interromper o download, sem problemas, pode usar o número pra continuação.

Código: Selecionar todos

d:\temp>git init hwgui
Initialized empty Git repository in D:/temp/hwgui/.git/

d:\temp>cd hwgui

d:\temp\hwgui>git svn init https://svn.code.sf.net/p/hwgui/code/trunk/hwgui

d:\temp\hwgui>git svn fetch
        A       source/hownbtn.prg
        A       license.txt
        A       makefile.bc
        A       source/htimer.prg
        A       source/hfrmtmpl.prg
        A       source/qhtm/hwg_qhtm.c
        A       source/qhtm/hqhtm.prg
        A       source/Makefile
        A       source/hcontrol.prg
        A       source/shellapi.c
        A       source/errorsys.prg
        A       source/procmisc/arr2str.c
        A       source/procmisc/procs7.prg
        A       source/procmisc/procini.prg
        A       source/prnalone.c
        A       source/drawtext.c
        A       source/hradio.prg
        A       source/freeimg.c
        A       source/media_c.c
        A       source/hsplit.prg
        A       source/hpanel.prg
        A       source/hbrowse.prg
        A       source/htab.prg
        A       source/hupdown.prg
        A       source/richedit.c
        A       source/hcheck.prg
        A       source/procmisc/procscri.prg
        A       source/procmisc/Makefile
        A       source/procmisc/blowfish.c
        A       source/dialog.c
        A       source/guimain.prg
        A       include/repmain.h
        A       include/freeimage.h
        A       source/commond.c
        A       include/guilib.ch
        A       include/guilib.h
        A       samples/viewer/bld_view.bat
        A       include/hwg_qhtm.ch
        A       makefile.vc
        A       samples/bldvc.bat
        A       samples/bldgw.bat
        A       samples/viewer/viewer.rc
        A       samples/mysql/userprn.rpt
        A       source/hprinter.prg
        A       source/repexec.prg
        A       source/hedit.prg
        A       source/menu_c.c
        A       source/hsayimg.prg
        A       source/menu.prg
        A       source/hriched.prg
        A       source/hcombo.prg
        A       samples/viewer/viewer.prg
        A       samples/mysql/userprn.scr
        A       samples/mysql/hwmysql.prg
        A       samples/mysql/bldwin.bat
        A       make_b32.bat
        A       samples/mysql/hwmysql.h
        A       doc/funclist.txt
        A       .ssh/known_hosts
        A       .ssh/random_seed
        A       whatsnew.txt
        A       source/hdialog.prg
        A       source/drawwidg.prg
        A       source/control.c
        A       source/wprint.c
        A       source/message.c
        A       source/hdatepic.prg
        A       source/qhtm/qhtm.h
        A       source/qhtm/Makefile
        A       source/draw.c
        A       source/hprogres.prg
        A       source/window.c
        A       source/htree.prg
        A       source/hgraph.prg
        A       source/hwindow.prg
        A       source/hfreeimg.prg
        A       samples/mysql/hwmysql.rc
        A       doc/author.jpg
        A       make_vc.bat
        A       Makefile
        A       include/windows.ch
        A       install.txt
        A       samples/viewer/bldgw.bat
        A       samples/mysql/demo.ini
        A       samples/mysql/dbfmysql.scr
        A       samples/bld.bat
        A       makefile.gcc
        A       makemngw.bat
r3 = 74a72d10d9921ffc2f7d48a2991c87f3a08cdb90 (refs/remotes/git-svn)
        M       .ssh/random_seed
        A       source/misc.c
r4 = e1612c48aa64e7ae41934827b9cfeae72c2eff4a (refs/remotes/git-svn)
        M       include/guilib.ch
        M       makefile.bc
        M       source/hdialog.prg
        M       source/Makefile
        M       source/htab.prg
        M       .ssh/random_seed
        M       makefile.vc
        M       source/dialog.c
        M       source/message.c
        M       source/window.c
        M       source/hwindow.prg
        M       include/windows.ch
        A       Changelog
        M       source/hedit.prg
        M       source/hdatepic.prg
        M       source/hbrowse.prg
        M       makefile.gcc
r5 = 353d62e5d6160fbb8192326790a6a346fa41f878 (refs/remotes/git-svn)

d:\temp\hwgui>copy con x.txt

^Z
        1 arquivo(s) copiado(s).

d:\temp\hwgui>
criei um arquivo na pasta x.txt
vou precisar dele depois.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Baixando do source-forge usando git

Mensagem por JoséQuintas »

sf1.png
sf2.png
Essa seria a operação normal do dia a dia, clica no arquivo encima, pra ele ir pra baixo - isso vai ser a alteração a ser salva.
E clica no commit pra salvar.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Baixando do source-forge usando git

Mensagem por JoséQuintas »

sf1.png
sf2.png
sf2.png (9.04 KiB) Exibido 1269 vezes
Mesmo que salve o source-forge inteiro, só depois de um commit é que essa parte fica visível.

Note dois "branches", um é o Main (x.txt), e o outro é o source-forge com hwgui.
Eles não tem ligação, são dois controles separados.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Baixando do source-forge usando git

Mensagem por JoséQuintas »

sf1.png
Agora na última alteração da hwgui, é clique da direita, e selecionar esse "reset main branch to here", e "hard reset...".
Nesse instante, a sua main do git passou a ser a posição do source-forge com todas as atualizações.
Se tiver criado no github, vai ficar no github também.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Baixando do source-forge usando git

Mensagem por JoséQuintas »

Ah sim... eu interrompi o git svn fetch.
Vai ter que fazer até o fim, e fazer o "reset main" no último commit.
Isso é muito demorado... mas fazer o que....
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Baixando do source-forge usando git

Mensagem por JoséQuintas »

Isso é só na primeira vez, pra baixar tudo no source-forge.
Mas se não for fazer acompanhamento, não precisa fazer completo.

A parte do source-forge NÃO é salva pelo git.
Se fosse fazer o fetch de novo, seria feito desde o primeiro, toda aquela longa demora.

É aí que entra uma opção que eu descobri depois: dá pra pegar a partir de determinada alteração.

git svn fetch -r2900:HEAD

Hoje está perto de 2940, então isso baixaria somente as últimas 40 alterações.
Sempre o conteúdo final completo, mas somente o histórico de 40 alterações.

Isso é bom pra quem não quer todo histórico, ou pra futuras atualizações.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Baixando do source-forge usando git

Mensagem por JoséQuintas »

sf1.png
No dia a dia depois, não muda muito.
Vão ser sempre dois branches (como duas versões).
o git svn fetch a partir de determinado número de alteração.

É ir na lista do source-forge, em cada alteração que ainda não está no git, e selecionar "cherry-pick this commit" em cada nova alteração.
No normal é no máximo uma por dia, ou uma por semana, então sem problemas.

Isso é interessante, porque quando você quer reescrever um histórico, acaba usando a mesma opção, dependendo de como reescrever.

Isso significa o seguinte: nos fontes atuais, será aplicada essa mesma alteração que foi feita no source-forge.

Se apenas está acompanhando o andamento do projeto para por aí.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Baixando do source-forge usando git

Mensagem por JoséQuintas »

Agora outra parte interessante: aquele RESET MAIN TO HERE.

Isso modifica todos os fontes da sua pasta, para aquela exata posição de alterações.

Pra que serve?
No caso da hwgui, que mostrei, você está avançando os fontes pras novas alterações.
Mesmo na HWGUI, ou Harbour, ou fontes próprios, você poderia voltar a uma situação de um mês atrás, por exemplo.

MUITO CUIDADO com isso.
Você não perde nada, depois é só voltar pra situação atual, do mesmo modo.
Mas.....
Se você começar a alterar, vai estar criando uma nova versão dos seus próprios fontes, porque vai estar mexendo numa versão antiga.
O histórico acaba se dividindo em dois: o futuro anterior, e o novo futuro com as novas mexidas.

Confunde, mas não muito.
Você tinha os fontes de 31/12/2020, e tudo que foi alterado a partir de lá.
Se você reseta pra 31/12/2020, é você na máquina do tempo, voltando ao passado.
Se alterou o que fez dia 31/12/2020, está criando um novo futuro, não vai ser mais o mesmo de antes.

A partir daí, fica muito doido, porque a "máquina do tempo" está em suas mãos.
Pode desfazer o que fez, pode misturar passado e futuro, etc.
Pode escolher o que acontece com cada alteração que foi feita.

Então... acaba sendo legal mexer com isso de hwgui e outros, porque está treinando o que pode fazer com os próprios fontes.

No caso de hwgui, harbour, etc., se fizer besteira, é só apagar tudo e baixar tudo de novo.
Então é um ótimo treino.

Já com seus próprios fontes.... aí não pode ficar brincando não... tem que saber o que está fazendo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder