Início > brtos > Como usar git subtree com o BRTOS

Como usar git subtree com o BRTOS

Com a mudança de repositório do BRTOS do SVN no Googlecode para o GIT no Github percebemos a falta no GIT de uma funcionalidade muito interessante do SVN e que é a possibilidade de fazer “SVN checkout/commit” de alguns diretórios selecionados do repositório ao invés do repositório inteiro. Assim, por exemplo, o usuário podia ter um subdiretório do BRTOS dentro do seu projeto principal, e podia mantê-lo sempre atualizado com o repositório principal do BRTOS e, até mesmo, submeter correções e atualizações a partir deste subdiretório.

Com o Git, embora seja possível se ter um subdiretório sempre atualizado, usando o “git subdmodules” ou o “git checkout”, as alterações feitas no subdiretório não podem ser diretamente enviadas ao repositório principal. Mas nem tudo está perdido, pois o Git oferece uma alternativa chamada “git subtree” que permite ter uma funcionalidade similar àquela do SVN, embora com um pouco mais de trabalho. A seguir vamos explicar como usar o “git subtree” em um projeto que utiliza o BRTOS.

Inicialmente, monte um repositório git do projeto principal, por exemplo, usando o github. Em seguida, na raiz do repositório, adicione o repositório do brtos como remoto, usando o comando abaixo. Este comando precisa ser realizado uma única vez.

git remote add -f brtos https://github.com/brtos/brtos.git

Em seguida, adicione o BRTOS como subtree (isso só precisa ser feito uma única vez) e faça um “pull” do projeto BRTOS usando os comandos abaixo. O segundo comando faz o “pull” do projeto BRTOS e um “merge” com o projeto principal, no subdiretório indicado na opção “–prefix” (no exemplo, o subdiretório será “brtos”).

git subtree add –prefix=brtos –squash brtos master

git subtree pull –prefix=brtos –squash brtos master

Pronto! O BRTOS já está incluso no projeto principal. E para mantê-lo atualizado é só repetir o comando anterior. Para atualizar o repositório remoto do projeto principal dê um “git push”. Além disso, é possível submeter atualizações (“pull requests”) para o repositório. Para isso, é necessário fazer o “fork” do BRTOS no github com seu usuário e adicioná-lo como remoto com o comando abaixo. Dica: para listar os remotos use “git remote”

git remote add -f brtos git@github.com:barriquello/brtos.git

Em seguida, faça o procedimento de “merge” usando o “git subtree”, e atualize o seu repositório remoto, assim:

git subtree pull –prefix=brtos –squash brtos master

git push

Para submeter “pull requests”, faça as alterações no subdiretório do BRTOS e realize o “commit/push” destas alterações de forma separada das alterações do projeto principal. Assim, tem-se um “commit” limpo e será possível fazer um “pull request” para o repositório principal do BRTOS. Para isto, faça o “commit” das alterações e, em seguida, faça o “push” para o repositório remoto, usando o comando:

git subtree push -P brtos brtos master

Por fim, é só fazer o “pull request”.

Anúncios
  1. Nenhum comentário ainda.
  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: