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

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 é

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

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