git utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit...

33
git  Utilização básica no controle de versão de pacotes Utilização básica no controle de versão de pacotes Eriberto - Mar. 2016 Eriberto - Mar. 2016 git Utilização básica no controle de versão de pacotes Mini DebConf Mini DebConf Curitiba 2016 Curitiba 2016 João Eriberto Mota Filho Curitiba, PR, 06 de março de 2016

Upload: others

Post on 27-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

gitUtilização básica no controle

de versão de pacotes

Mini DebConfMini DebConf Cur i t iba 2016 Cur i t iba 2016

João Eriberto Mota FilhoC ur i t i ba , P R, 06 de ma rço de 2 01 6

Page 2: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

SumárioSumário

O que é o git?O que é o git?

Utilização básica do gitUtilização básica do git

Servidores remotosServidores remotos

git­buildpackage (gbp)git­buildpackage (gbp)

Collab­maint no DebianCollab­maint no Debian

Campos VCS no debian/controlCampos VCS no debian/control

ConclusãoConclusão

Page 3: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

SumárioSumário

O que é o git?O que é o git?

Utilização básica do gitUtilização básica do git

Servidores remotosServidores remotos

git­buildpackage (gbp)git­buildpackage (gbp)

Collab­maint no DebianCollab­maint no Debian

Campos VCS no debian/controlCampos VCS no debian/control

ConclusãoConclusão

Page 4: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

O que é o git?O que é o git?

••  O git é um VCS (Version Control System).O git é um VCS (Version Control System).

••  Os VCS servem para controlar alterações em códigos fonte.Os VCS servem para controlar alterações em códigos fonte.

••  Com os VCS é possível:Com os VCS é possível:

­ Trabalhar em grupo.­ Trabalhar em grupo.

­ Reverter alterações.­ Reverter alterações.

­ Buscar a cronologia de ações em debugs do código.­ Buscar a cronologia de ações em debugs do código.

­ Fazer um desenvolvimento paralelo (branch) para depois ­ Fazer um desenvolvimento paralelo (branch) para depois juntar ao código principal (merge).juntar ao código principal (merge).

­ Diversas outras possibilidades. ­ Diversas outras possibilidades. 

••  Trabalhos em VCS, geralmente, podem ser baixados Trabalhos em VCS, geralmente, podem ser baixados publicamente.publicamente.

Page 5: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

O que é o git?O que é o git?

••  Há vários VCS (Há vários VCS (Version Control System) disponíveis. Os mais Version Control System) disponíveis. Os mais conhecidos são:conhecidos são:

­ git­ git

­ CVS­ CVS

­ SVN­ SVN

­ Mercurial­ Mercurial

­ Bazaar ­ Bazaar 

••  Há vários outros. Veja uma relação aqui:Há vários outros. Veja uma relação aqui:

https://en.wikipedia.org/wiki/Comparison_of_version_control_softwarehttps://en.wikipedia.org/wiki/Comparison_of_version_control_software

Page 6: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

O que é o git?O que é o git?

••  O git foi criado em 2005, por Linuz Torvalds, para controlar o O git foi criado em 2005, por Linuz Torvalds, para controlar o desenvolvimento do Kernel Linux.desenvolvimento do Kernel Linux.

••  Vantagens e características mais relevantes:Vantagens e características mais relevantes:

­ VCS para desenvolvimento distribuído.­ VCS para desenvolvimento distribuído.

­ Não necessita de servidor central, podendo ser ativado em um ­ Não necessita de servidor central, podendo ser ativado em um diretório; no entanto, pode usar um servidor central.diretório; no entanto, pode usar um servidor central.

­ Rápido, flexível e robusto. Usa o conceito de repositório.­ Rápido, flexível e robusto. Usa o conceito de repositório.

­ Compatível com HTTP(S), FTP, rsync e SSH (para fim de ­ Compatível com HTTP(S), FTP, rsync e SSH (para fim de tráfego a partir de um servidor).tráfego a partir de um servidor).

­ Suportado por diversos repositórios públicos famosos, como ­ Suportado por diversos repositórios públicos famosos, como GitHub, Bitbucket e outros, além do Debian.GitHub, Bitbucket e outros, além do Debian.

­ Possui frontends diversos, inclusive gráficos.­ Possui frontends diversos, inclusive gráficos.

Page 7: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

SumárioSumário

O que é o git?O que é o git?

Utilização básica do gitUtilização básica do git

Servidores remotosServidores remotos

git­buildpackage (gbp)git­buildpackage (gbp)

Collab­maint no DebianCollab­maint no Debian

Campos VCS no debian/controlCampos VCS no debian/control

ConclusãoConclusão

Page 8: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

Utilização básica do gitUtilização básica do git

••  Setup para a primeira utilização:Setup para a primeira utilização:

$ git config ­­global user.name "Eriberto Mota"$ git config ­­global user.name "Eriberto Mota"

$ git config ­­global user.email [email protected]$ git config ­­global user.email [email protected]

$ git config ­­global core.editor mcedit$ git config ­­global core.editor mcedit

(os dados ficarão armazenados em ~/.gitconfig)(os dados ficarão armazenados em ~/.gitconfig)

••  Criação de um repositório local para o projeto teste:Criação de um repositório local para o projeto teste:

$ mkdir teste$ mkdir teste

$ cd teste$ cd teste

$ git init$ git init

••  Caso o projeto seja compartilhado, usar:Caso o projeto seja compartilhado, usar:

$ git init ­­shared$ git init ­­shared

Page 9: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

Utilização básica do gitUtilização básica do git

••  Adicionar um código novo existente no diretório atual:Adicionar um código novo existente no diretório atual:

$ git add .$ git add .

••  Adicionar o arquivo x:Adicionar o arquivo x:

$ git add x$ git add x

••  Ver o status atual:Ver o status atual:

$ git status$ git status

••  Comitar o código atual:Comitar o código atual:

$ git commit  <arquivo> (ou git commit ­a, dependendo do caso)$ git commit  <arquivo> (ou git commit ­a, dependendo do caso)

••  Comitar o código atual, já provendo um comentário:Comitar o código atual, já provendo um comentário:

$ git commit  ­m “comentário” (ou git commit ­am “comentário”)$ git commit  ­m “comentário” (ou git commit ­am “comentário”)

Page 10: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

Utilização básica do gitUtilização básica do git

••  Para ver a branch atual e as disponíveis (a main é a default):Para ver a branch atual e as disponíveis (a main é a default):

$ git branch$ git branch

••  Criar branch e migrar para a mesma:Criar branch e migrar para a mesma:

$ git checkout ­b modulo1$ git checkout ­b modulo1

••  Voltar para a branch master (ou outra):Voltar para a branch master (ou outra):

$ git checkout master$ git checkout master

••  Ver um diff das ações antes de comitar:Ver um diff das ações antes de comitar:

$ git diff$ git diff

••  Ver um log de todas as ações em uma branch:Ver um log de todas as ações em uma branch:

$ git log$ git log

Page 11: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

Utilização básica do gitUtilização básica do git

••  Cada commit tem um hash que o identifica. Exemplo:Cada commit tem um hash que o identifica. Exemplo:

$ git log$ git log

commit commit deb902f3a6abfcd8a3ac197b681f57e01bb3a4e0deb902f3a6abfcd8a3ac197b681f57e01bb3a4e0

Author: Joao Eriberto Mota Filho <[email protected]>Author: Joao Eriberto Mota Filho <[email protected]>

Date:   Thu Mar 3 20:45:36 2016 ­0300Date:   Thu Mar 3 20:45:36 2016 ­0300

••  O início do hash (seis ou oito bytes) pode ser usado como O início do hash (seis ou oito bytes) pode ser usado como referência em comandos:referência em comandos:

$ git diff 4d7eee deb902$ git diff 4d7eee deb902

••  Super log:Super log:

$ git log ­­oneline ­­graph ­­decorate ­­all$ git log ­­oneline ­­graph ­­decorate ­­all

Page 12: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

Utilização básica do gitUtilização básica do git

••  Tags podem ser adicionadas para marcar um ponto ou versão:Tags podem ser adicionadas para marcar um ponto ou versão:

$ git tag ­am “Tagging version 0.1” 0.1$ git tag ­am “Tagging version 0.1” 0.1

••  Para ver as tags existentes:Para ver as tags existentes:

$ git tag$ git tag

••  Atribuir uma tag a um commit específico:Atribuir uma tag a um commit específico:

$ git tag ­am “Tagging version 0.1” 0.1 4d7eee$ git tag ­am “Tagging version 0.1” 0.1 4d7eee

••  Diff entre duas tags:Diff entre duas tags:

$ git tag 2.1 2.2$ git tag 2.1 2.2

••  Log entre tags:Log entre tags:

$ git log 2.1..2.2$ git log 2.1..2.2

Page 13: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

Utilização básica do gitUtilização básica do git

••  Diff entre dois commits:Diff entre dois commits:

$ git diff dcce1f 8904ea$ git diff dcce1f 8904ea

••  Log entre dois commits:Log entre dois commits:

$ git log dcce1f..8904ea$ git log dcce1f..8904ea

••  Também é possível reverter (descartar) um commit específico:Também é possível reverter (descartar) um commit específico:

$ git revert 9c13aa$ git revert 9c13aa

••  Isso é o básico. Há diversas outras possibilidades...Isso é o básico. Há diversas outras possibilidades...

Page 14: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

SumárioSumário

O que é o git?O que é o git?

Utilização básica do gitUtilização básica do git

Servidores remotosServidores remotos

git­buildpackage (gbp)git­buildpackage (gbp)

Collab­maint no DebianCollab­maint no Debian

Campos VCS no debian/controlCampos VCS no debian/control

ConclusãoConclusão

Page 15: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

Servidores remotosServidores remotos

••  O git também pode operar em servidores remotos.O git também pode operar em servidores remotos.

••  Basicamente, para baixar um repositório, usamos clone: Basicamente, para baixar um repositório, usamos clone: 

$ git clone https://github.com/eribertomota/axel$ git clone https://github.com/eribertomota/axel

ou...ou...

$ git clone https://github.com/eribertomota/axel.git$ git clone https://github.com/eribertomota/axel.git

••  Para enviar um código e as tags para um repositório:Para enviar um código e as tags para um repositório:

$ git push ­­all; git push ­­tags$ git push ­­all; git push ­­tags

••  Configurar um repositório remoto de destino:Configurar um repositório remoto de destino:

$ git remote$ git remote

$ git remote rm origin$ git remote rm origin

$ git remote add origin [email protected]:eribertomota/axel.git$ git remote add origin [email protected]:eribertomota/axel.git

Page 16: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

Servidores remotosServidores remotos

••  Em se tratando de serviços remotos, como o GitHub e outros, é Em se tratando de serviços remotos, como o GitHub e outros, é uma boa ideia deixar próprio serviço criar o repositório e, uma boa ideia deixar próprio serviço criar o repositório e, depois, cloná­lo.depois, cloná­lo.

Page 17: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

SumárioSumário

O que é o git?O que é o git?

Utilização básica do gitUtilização básica do git

Servidores remotosServidores remotos

git­buildpackage (gbp)git­buildpackage (gbp)

Collab­maint no DebianCollab­maint no Debian

Campos VCS no debian/controlCampos VCS no debian/control

ConclusãoConclusão

Page 18: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

git­buildpackage (gbp)git­buildpackage (gbp)

••  O git­buildpackage (ou gbp) é um mecanismo que integra o O git­buildpackage (ou gbp) é um mecanismo que integra o sistema de construção de pacotes do Debian com o VCS git.sistema de construção de pacotes do Debian com o VCS git.

••  O gbp possui vários comandos específicos, a saber:O gbp possui vários comandos específicos, a saber:

­ gbp: mantém pacotes Debian no Git­ gbp: mantém pacotes Debian no Git

­ gbp­buildpackage: constrói um pacote a partir de um repositório­ gbp­buildpackage: constrói um pacote a partir de um repositório

­ gbp­import­dsc: importa um pacote a partir de um arquivo .dsc­ gbp­import­dsc: importa um pacote a partir de um arquivo .dsc

­ gbp­import­dscs: importa múltiplos .dsc­ gbp­import­dscs: importa múltiplos .dsc

­ gbp­import­orig: importa o código fonte de um upstream­ gbp­import­orig: importa o código fonte de um upstream

­ gbp­dch: cria changelogs baseados em mensagens de commits­ gbp­dch: cria changelogs baseados em mensagens de commits

­ gbp­clone: baixa um repositório remoto­ gbp­clone: baixa um repositório remoto

                                                                                                                                                                      (continua...)(continua...)

Page 19: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

git­buildpackage (gbp)git­buildpackage (gbp)

••  Comandos gbp (continuação):Comandos gbp (continuação):

­ gbp­config: verifica valores usados nas configurações­ gbp­config: verifica valores usados nas configurações

­ gbp­pull: atualiza um repositório remoto­ gbp­pull: atualiza um repositório remoto

­ gbp­pq: gerencia patches que estejam em um repositório­ gbp­pq: gerencia patches que estejam em um repositório

­ gbp­create­remote­repo: cria repositórios remotos­ gbp­create­remote­repo: cria repositórios remotos

••  Um exemplo prático de utilização é a criação e a manutenção Um exemplo prático de utilização é a criação e a manutenção de um repositório para armazenar as versões de upstream e as de um repositório para armazenar as versões de upstream e as revisões de um pacote.revisões de um pacote.

••  É útil manter as versões de upstream para o caso da homepage É útil manter as versões de upstream para o caso da homepage do mesmo ser extinta.do mesmo ser extinta.

Page 20: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

git­buildpackage (gbp)git­buildpackage (gbp)

••  O Debian trabalha com três branches básicas:O Debian trabalha com três branches básicas:

­ upstream: mantém o código fonte do upstream, versão a versão.­ upstream: mantém o código fonte do upstream, versão a versão.

­ pristine­tar: branch utilizada no momento da clonagem para gerar o ­ pristine­tar: branch utilizada no momento da clonagem para gerar o tarball do upstream.tarball do upstream.

­ debian ou master: mantém os dados de empacotamento, ­ debian ou master: mantém os dados de empacotamento, juntamente com o código fonte do upstream (para uma possível juntamente com o código fonte do upstream (para uma possível interação com o mesmo, como em pacotes nativos). O nome debian interação com o mesmo, como em pacotes nativos). O nome debian ou master dependerá de quem empacota ou das normas do time. O ou master dependerá de quem empacota ou das normas do time. O mais comum é debian.mais comum é debian.

••  O comando gbp­import­dsc (ou gbp import­dsc) entende todas O comando gbp­import­dsc (ou gbp import­dsc) entende todas as branches citadas e as cria, automaticamente, a partir de um as branches citadas e as cria, automaticamente, a partir de um arquivo .dsc.arquivo .dsc.

Page 21: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

git­buildpackage (gbp)git­buildpackage (gbp)

••  Exemplo de uso do gbp import­dsc para criar um repositório:Exemplo de uso do gbp import­dsc para criar um repositório:

# apt­get install git­buildpackage# apt­get install git­buildpackage

$ gbp import­dsc ­­pristine­tar ­­debian­branch=debian ../pacote_0.1­1.dsc$ gbp import­dsc ­­pristine­tar ­­debian­branch=debian ../pacote_0.1­1.dsc

••  O comando anterior poderia ser simplificado caso fosse O comando anterior poderia ser simplificado caso fosse utilizado um arquivo básico de configuração. Exemplo:utilizado um arquivo básico de configuração. Exemplo:

[DEFAULT][DEFAULT]

pristine­tar = Truepristine­tar = True

debian­branch = debiandebian­branch = debian

Page 22: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

git­buildpackage (gbp)git­buildpackage (gbp)

••  O citado arquivo de configuração poderá ser:O citado arquivo de configuração poderá ser:

­ debian/etc/git­buildpackage/gbp.conf: global pata o sistema.­ debian/etc/git­buildpackage/gbp.conf: global pata o sistema.

­ ~/.gbp.conf: apenas para o usuário.­ ~/.gbp.conf: apenas para o usuário.

­ <branch>/gbp.conf: apenas para uma branch específica; pode ser ­ <branch>/gbp.conf: apenas para uma branch específica; pode ser colocado dentro do diretório debian/, por exemplo.colocado dentro do diretório debian/, por exemplo.

­ .git/gbp.conf: válido para todo o repositório.­ .git/gbp.conf: válido para todo o repositório.

••  Após a atuação do gbp, a branch master poderá ser removida, Após a atuação do gbp, a branch master poderá ser removida, desde que não seja a branch atual de operação. Exemplo:desde que não seja a branch atual de operação. Exemplo:

$ git checkout debian$ git checkout debian

$ git branch ­d master$ git branch ­d master

Page 23: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

git­buildpackage (gbp)git­buildpackage (gbp)

••  Ao importar um .dsc que contenha uma nova versão do Ao importar um .dsc que contenha uma nova versão do upstream, dentro de um repositório recém clonado, é upstream, dentro de um repositório recém clonado, é importante, antes, fazer checkout da branch upstream, importante, antes, fazer checkout da branch upstream, retornando para a branch debian (ou master). Exemplo:retornando para a branch debian (ou master). Exemplo:

$ git clone http://git.darknet.com/teste.git$ git clone http://git.darknet.com/teste.git

$ cd teste$ cd teste

$ git checkout upstream$ git checkout upstream

$ git checkout debian$ git checkout debian

$ gbp import­dsc ../teste_0.5­6.dsc$ gbp import­dsc ../teste_0.5­6.dsc

••  Ao se construir um repositório para um pacote adotado, é Ao se construir um repositório para um pacote adotado, é interessante, caso não exista, recriar toda a vida básica de tal interessante, caso não exista, recriar toda a vida básica de tal pacote. Para tanto, busque os .dsc das revisões anteriores em pacote. Para tanto, busque os .dsc das revisões anteriores em http://snapshot.debian.orghttp://snapshot.debian.org

Page 24: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

git­buildpackage (gbp)git­buildpackage (gbp)

••  Um manual completo a respeito do gbp, denominado Building Um manual completo a respeito do gbp, denominado Building Debian Packages with git­buildpackage, poderá ser encontrado Debian Packages with git­buildpackage, poderá ser encontrado nos seguintes lugares:nos seguintes lugares:

http://honk.sigxcpu.org/projects/git­buildpackage/manual­html/gbp.htmlhttp://honk.sigxcpu.org/projects/git­buildpackage/manual­html/gbp.html

ouou

/usr/share/doc/git­buildpackage/manual­html/gbp.html/usr/share/doc/git­buildpackage/manual­html/gbp.html

Page 25: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

SumárioSumário

O que é o git?O que é o git?

Utilização básica do gitUtilização básica do git

Servidores remotosServidores remotos

git­buildpackage (gbp)git­buildpackage (gbp)

Collab­maint no DebianCollab­maint no Debian

Campos VCS no debian/controlCampos VCS no debian/control

ConclusãoConclusão

Page 26: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

Collab­maint no DebianCollab­maint no Debian

••  O collab­maint é um repositório de manutenção colaborativa O collab­maint é um repositório de manutenção colaborativa existente no Debian (shared). existente no Debian (shared). 

••  O collab­maint pode receber pacotes que não pertençam a O collab­maint pode receber pacotes que não pertençam a times, permitindo a manutenção evolutiva do pacote, mesmo times, permitindo a manutenção evolutiva do pacote, mesmo que haja uma mudança de mantenedor.que haja uma mudança de mantenedor.

••  Todo DD tem acesso automático ao collab­maint. Para não DDs:Todo DD tem acesso automático ao collab­maint. Para não DDs:

­ Criar uma conta no servidor Alioth.­ Criar uma conta no servidor Alioth.

­ Solicitar a um DD que seja advogado e que envie um email pedindo ­ Solicitar a um DD que seja advogado e que envie um email pedindo a sua entrada.a sua entrada.

••  DM só precisa solicitar a inclusão.DM só precisa solicitar a inclusão.

Page 27: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

Collab­maint no DebianCollab­maint no Debian

••  As instruções detalhadas encontram­se nesses endereços:As instruções detalhadas encontram­se nesses endereços:

­ https://wiki.debian.org/Alioth/PackagingProject­ https://wiki.debian.org/Alioth/PackagingProject

­ ­ https://lists.debian.org/debian­devel­announce/2012/01/msg00006.htmhttps://lists.debian.org/debian­devel­announce/2012/01/msg00006.htmll

••  A conexão com o collab­maint se dá por SSH. A seguir, um A conexão com o collab­maint se dá por SSH. A seguir, um exemplo de clonagem:exemplo de clonagem:

$ git clone ssh://[email protected]/git/collab­maint/axel.git$ git clone ssh://[email protected]/git/collab­maint/axel.git

••  O collab­maint também tem uma interface web que permite a O collab­maint também tem uma interface web que permite a navegação nos diretórios e branches.navegação nos diretórios e branches.

Page 28: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

Collab­maint no DebianCollab­maint no Debian

Page 29: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

SumárioSumário

O que é o git?O que é o git?

Utilização básica do gitUtilização básica do git

Servidores remotosServidores remotos

git­buildpackage (gbp)git­buildpackage (gbp)

Collab­maint no DebianCollab­maint no Debian

Campos VCS no debian/controlCampos VCS no debian/control

ConclusãoConclusão

Page 30: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

Campos VCS no debian/controlCampos VCS no debian/control

••  Independentemente de usar o collab­maint ou um git externo, Independentemente de usar o collab­maint ou um git externo, há dois campos no arquivo debian/control que são relevantes:há dois campos no arquivo debian/control que são relevantes:

­ Vcs­Git: contém o URI necessário para clonar o repositório que ­ Vcs­Git: contém o URI necessário para clonar o repositório que controla o pacote.controla o pacote.

­ Vcs­Browser: contém a URL que mostrará o repositório na web.­ Vcs­Browser: contém a URL que mostrará o repositório na web.

••  Vários ambientes, como o PTS e o DDPO exibem links para os Vários ambientes, como o PTS e o DDPO exibem links para os dois recursos citados.dois recursos citados.

••  Exemplo dos campos no debian/control:Exemplo dos campos no debian/control:

Vcs­Git: git://anonscm.debian.org/collab­maint/axel.gitVcs­Git: git://anonscm.debian.org/collab­maint/axel.git

Vcs­Browser: http://anonscm.debian.org/cgit/collab­maint/axel.gitVcs­Browser: http://anonscm.debian.org/cgit/collab­maint/axel.git

Vcs-Git

Page 31: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

Campos VCS no debian/controlCampos VCS no debian/control

Vcs-Git

Page 32: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

SumárioSumário

O que é o git?O que é o git?

Utilização básica do gitUtilização básica do git

Servidores remotosServidores remotos

git­buildpackage (gbp)git­buildpackage (gbp)

Collab­maint no DebianCollab­maint no Debian

ConclusãoConclusão

Page 33: git Utiliza ásica no controle de vers o de pacotesgiteriberto.pro.br › palestras › git.pdfgit Utilização básica no controle de versão de pacotes Eriberto Mar. 2016 O que é

git Utilização básica no controle de versão de pacotesUtilização básica no controle de versão de pacotes

Eriberto ­ Mar. 2016Eriberto ­ Mar. 2016

ConclusãoConclusão

••  O controle de versão é uma das formas de se manter o histórico O controle de versão é uma das formas de se manter o histórico de pacotes e revisões no Debian. de pacotes e revisões no Debian. 

••  Atualmente, o git é um dos VCS mais simples e eficientes.Atualmente, o git é um dos VCS mais simples e eficientes.

••  No Debian existe o collab­maint, que canaliza todo o esforço de No Debian existe o collab­maint, que canaliza todo o esforço de controle de versão para um ponto único.controle de versão para um ponto único.

Esta palestra está disponível em:Esta palestra está disponível em:

http://eriberto.pro.brSiga­me no Twitter @eribertomota