Git: mudanças entre as edições
(format-patch) |
Sem resumo de edição |
||
Linha 39: | Linha 39: | ||
Muitos projetos nao dao acesso a commitadas diretamente, exigindo submissao de patches. Veja como fazer isso com git format-patch: | Muitos projetos nao dao acesso a commitadas diretamente, exigindo submissao de patches. Veja como fazer isso com git format-patch: | ||
http://ariejan.net/2009/10/26/how-to-create-and-apply-a-patch-with-git/ | http://ariejan.net/2009/10/26/how-to-create-and-apply-a-patch-with-git/ | ||
Basicamente cria-se um branch a partir do master, com suas mudancas. Depois cria-se um patch desse branch referente ao master: | |||
git format-patch master --stdout > fix_empty_poster.patch | |||
== Migrar de SVN para GIT == | == Migrar de SVN para GIT == |
Edição das 03h50min de 3 de outubro de 2011
Para uma breve lista de comandos, veja Comandos Git.
Create Repos on Sourceforge
Acesse a conta do projeto por ssh:
ssh -t USER,PROJECT@shell.sourceforge.net create
Vá ao diretório do projeto:
cd /home/scm_git/l/la/labmacambira
Crie o diretório com o nome do repositório desejado:
mkdir NOME_REPOS
Crie o repositório (bare):
git --git-dir=NOME_REPOS init --shared=all --bare
Pronto, agora você poderá usá-lo:
Clone-o:
git clone ssh://USERNAME@labmacambira.git.sourceforge.net/gitroot/labmacambira/NOME_REPOS
Se já tiver um repos git e quer migrá-lo para SF como origin:
cd NOME_REPOS git remote rm origin git remote add origin ssh://USERNAME@labmacambira.git.sourceforge.net/gitroot/labmacambira/NOME_REPOS git config branch.master.remote origin git config branch.master.merge refs/heads/master git push origin master
Mais informações em http://sourceforge.net/apps/trac/sourceforge/wiki/Git
Interface Git para Subversion e CVS
Para usar Git como interface para o Subversion: https://sourceforge.net/apps/trac/vxl/wiki/GitSvn
Para usar Git como interface para o CVS: https://sourceforge.net/apps/trac/vxl/wiki/GitCvs
Gerando patches pra comitadas
Muitos projetos nao dao acesso a commitadas diretamente, exigindo submissao de patches. Veja como fazer isso com git format-patch:
http://ariejan.net/2009/10/26/how-to-create-and-apply-a-patch-with-git/
Basicamente cria-se um branch a partir do master, com suas mudancas. Depois cria-se um patch desse branch referente ao master:
git format-patch master --stdout > fix_empty_poster.patch
Migrar de SVN para GIT
Criamos um repos temporário para baixar o SVN:
mkdir repos_tmp cd repos_tmp git svn init URL_DO_SEU_REPOSITORIO_SVN --no-metadata git svn fetch
Agora vamos limpar a sujeira deixada pelo SVN, clonando o repos temporário no repos final:
cd .. git clone repos_tmp repos_final cd repos_final
E configuramos para usar o SF:
git remote rm origin git remote add origin ssh://USERNAME@labmacambira.git.sourceforge.net/gitroot/labmacambira/NOME_REPOS git config branch.master.remote origin git config branch.master.merge refs/heads/master git push origin master
Migrar de CVS para Git
Exitem diversas maneiras de se converter um repositorio existente para Git. Se o repositorio principal nao sera convertido para Git, ou se o repo principal e' simples, pode-se usar o git cvs. Nesse caso, veja o link: https://sourceforge.net/apps/trac/vxl/wiki/GitCvs
Ver tambem o seguinte link, para o caso de se usar Git com Subversion: https://sourceforge.net/apps/trac/vxl/wiki/GitSvn
Agora, para migrar o repositorio CVS para Git de uma vez por todas, vou descrever um jeito que usei para converter o SIP, o qual tinha um repositorio CVS no sourceforge. Primeiramente, usei o seguinte comando de backup do sourceforge pra baixar o repo CVS:
rsync -av rsync://siptoolbox.cvs.sourceforge.net/cvsroot/siptoolbox/* .
Segui as instrucoes em Creating Multiple Repositories
da pagina https://sourceforge.net/apps/trac/sourceforge/wiki/Git
- Tenho 4 repositorios dentro do projeto siptoolbox: animal,simpletoolbox,www e siptoolbox
- Dentro do shell do sourceforge:
mkdir animal simpletoolbox www git --git-dir=www init --shared=all --bare
este ultimo comando sendo repetido para animal e simpletoolbox.
Em seguida, dei um clone em cada um, depois, para cada modulo (p.ex. www abaixo), editei cvs2git.options colocando o caminho apropriado na string logo apos run_options.set_project
cvs2git --options=../cvs2git.options cd www cat ../cvs2svn-tmp/git-{blob,dump}.dat | git fast-import git reset --hard git push origin master rm -rf ../cvs2svn-tmp
Eh isso ae, mais ou menos..
Referencias de migracao CVS para Git
Canal do IRC sobre Git
- git ou #github no freenode