July 21, 2009 at 10:33 pm | English
- Posted by dorileo |
If you want to change your remote repository to point to some arbitrary commit you cold do the following:
1
| git push -f origin sha1:branchname |
But be careful, you may break someone else`s repository in the case it has being fetched or cloned by someone.
May 5, 2009 at 10:17 pm | Coreboot.org, English, GSoC 2009
- Posted by dorileo |
While waiting my motherboard I decided to write an option rom to test the libpayload`s usb stack implementation. I don`t know how Patrick has tested it until now but I`ve though about testing it with an option rom. It`s not working yet but you can clone it from here. It`s basically an join of sources from FILO and other things I`ve touched last weeks.
Other repositories
Now that I`ve set up an - final - environment for my personal git hosting I took some time to push some source code I`ve here in my computer. You can browse the repositories using the gitweb I`ve installed, or directly clone the invadersrom git repository - for example - by:
$ git clone http://vps.dorilex.net/pub/scm/invadersrom.git
March 21, 2009 at 8:25 am | English, Kernel Hacking
- Posted by dorileo |
carldani told me, he likes to have branches checked out, all around his disk(I understand the workflow, sometimes I do the same), with git you can do that cloning local repositories - given everything is a repository in git world.
About his workflow and git - you maybe already know - you can clone local repositories with git. Using [--local | -l] flags you save space, hardlinking the objects, after you`ve worked on whatever you wanted you just need to merge everything or make patches.
I don`t know how he handles these things with svn but:
1 - if he checks out from central repository, each copy he has, with git local cloning you save bandwidth;
2 - if he copies local files, with git local cloning you save space;
Lazy web, Is it possible to “re-checkout/clone/whatever” a local copy with svn? or, is “cp -R” the best
options?
July 15, 2008 at 9:00 pm | Portuguese
- Posted by admin |
Existem vários textos e anotações na web sobre git-svn, que explicam pra que serve e como usar mas não encontrei explicações de como o git-svn se integra com o git e etc. Então vão alguns entendimentos que consegui extrair da minha segunda experiência com o bichinho - vale lembrar que fiz todas as operações de manutenção do meu repositório svn através do git-svn mas depois de alguns dias ralei pra repetir o que já tinha feito.
O git-svn entra uma camada abaixo - na verdade ele não é nenhum tipo de plugin ou módulo ele simplesmente mete a mão no frango dentro da panela - do git, o bacaninha entende os formatos do svn e do git, então com um git-svn fetch por exemplo o que ocorre é o seguinte 1) faz um co do repositório remoto e 2) cria os indices do git depois é só trabalhar como se fosse um ref do git mesmo.
Quando não se tem nada previamente carregado no repositório svn e se tem tudo comitado em um git - você já trabalhou um mês nos seus fontes mas só no git porque o git vem primeiro - você precisa criar uma ref remote que pode ser feito através do git-svn init svn+ssh://user@host/repo por exemplo. Eu uso o git-svn init pra não ter que ficar lembrando da sintaxe do arquivo .git/config - é claro que depois eu faço alguns ajustes na mão para os nomes e caminhos
ficarem mais condizentes e padronizados.
No repositório svn remoto eu simplesmente crio-o com svnadmin e depois faço um import inicial de “nada” - svn import -m “mensagem” pasta_vazia file://caminho/do/repo/ - só pra criar a revision 1 que o trac 0.10.3 precisa - mas aí trac são outros quinhentos.
Depois disso é só continuar na seqüência de pedir para o git-svn fazer o fetch - lembrando que depois disso assumimos o git puro e crú -, aí é checkout e merge depois de trabalhar com as branch do git local é só fazer o merge final - preparar o commit - e pedir para o git-svn mandar tudo pra nós - dcommit.
A bagunça toda fica organizada assim:
1) git-svn init svn+ssh://user@host/repo
1.1) fazer o ajuste que for necessário no .git/config
2) git-svn fetch remote_escolhido # ou svn por padrão
# a partir daqui é git pura e simplesmente
3) git-checkout -b svn-cmt remote_escolhido
4) git-merge master
# aqui volta o git-svn a final ele é quem conhece de svn 
5) git-svn dcomit
# voltamos para os domínios do bom e velho git
6) git-checkout master
# fecha o boteco e “vamobora”
7) git-branch -D svn-cmt
Agora não esqueço mais. Entender o que está fazendo é bem melhor que decorar receitas de bolo. Bingo.