dgit-maint-bpo(7)

NOME
dgit - dicas para manter backports Debian oficiais

INTRODUÇÃO
Este documento descreve elementos de um fluxo de trabalho que usa dgit para manter um backport Debian oficial. Não assumimos que o que vai enviar o pacote para Debian unstable esteja a usar dgit.

DICAS GERAIS
A primeira vez que um pacote é retro-portado (backported) para qualquer lançamento Debian você tem de passar a opção --new ao dgit.

TERMINOLOGIA
Deixe o ramo master conter o histórico de empacotamento para Debian unstable, e o ramo bookworm-bpo estar onde você prepara os seus envios para a suite bookworm-backports.

Uma fusão de fluxo de trabalho de backports significa que cada vez que um envio migra para Debian testing e você quer preparar um envio para bookworm-backports, você faz algo como isto:

    % git checkout bookworm-bpo
    % git merge master
    % dch --bpo
    % # quaisquer outras alterações necessárias para backporting
    % git commit -a
    % # tenta uma compilação

Um re-basear de fluxo de trabalho de backports significa que você deita fora o histórico do ramo bookworm-bpo cada vez que uma nova versão migra para Debian testing, algo equivalente a isto:

    % git checkout -B bookworm-bpo master
    % dch --bpo
    % # quaisquer outras alterações necessárias para backporting
    % git commit -a
    % # tenta uma compilação

Se você usar um fluxo de trabalho de backports de fusão, o seu changelog contém entradas para cada envio prévio para bookworm-backports; num fluxo de trabalho re-baseado, apenas contém o último.

ESCOLHER ENTRE OS DOIS FLUXOS DE TRABALHO
Se a retro-portagem envolver fazer nenhumas alterações adicionais à fonte do autor, a escolha de você usar fluxo de trabalho de backport de fusão ou re-baseado é uma questão de preferência pessoal. Existem bons argumentos a favor de ambos fluxos de trabalho a corresponder às semânticas das suites *-backports.

Uma coisa que pode quebrar este laço é se você quiser enviar com git-debpush, então, presentemente, você tem de usar um fluxo de trabalho de fusão. Embora, note que o seu primeiro envio para backports tem sempre de ser feito com dgit, porque não é um envio de apenas-fonte.

Se você tem de fazer alterações na fonte do autor para fazer o pacote funcionar em máquinas que correm Debian stable, é aconselhável escolher um fluxo de trabalho re-baseado. Isto assegura que o dgit pode atualizar automaticamente o directório debian/patches sem nenhuma intervenção manual.

DICAS PARA UM FLUXO DE TRABALHO DE FUSÃO

  Usar ramos do dgit
Se não for você próprio a enviar o pacote para Debian unstable, é geralmente mais fácil usar ramos do dgit, e ignorar o repositório Vcs-Git configurado.

Você deveria usar

    % dgit clone foo bookworm

para uma nova retro-portagem do pacote 'foo' para bookworm-backports, e depois

    % dgit fetch bookworm
    % git merge dgit/dgit/bookworm

quando as novas versões migram para Debian testing.

Se você seguir esta sugestão então não há nada empurrado para salsa, assim você precisa sempre usar dgit para enviar, não git-debpush.

DICAS PARA UM FLUXO DE TRABALHO RE-BASEADO

  Usar ramos do dgit
Se não for você próprio a enviar o pacote para Debian unstable, é geralmente mais fácil usar ramos do dgit, e ignorar o repositório Vcs-Git configurado. Para cada nova versão de Debian testing, você deveria

    % dgit fetch bookworm
    % git checkout -B bookworm-bpo dgit/dgit/bookworm
    % # usa git-cherry-pick(1) para (re)aplicar quaisquer correções necessárias ao backporting

  Sobrescrever
O dgit push esforça-se por prevenir que você por acidente sobrescreva os envios que acha que não estão representados no histórico git que você está a tentar atualizar. Isto acontece principalmente para prevenir o sobrescrever acidental de NMUs.

Com um fluxo de trabalho de backports re-baseado, o dgit vai achar que cada envio de uma nova versão de Debian testing pode estar acidentalmente a sobrescrever envios. Você precisa de indicar explicitamente o envio para bookworm-backports que deseja sobrescrever.

Supondo que o último envio para bookworm-backports tinha versão 1.2.2-1~bpo10+1 e agora você preparou 1.2.3-1~bpo10+1 para envio. Quando fizer dgit push, vai precisar de passar --trust-changelog=1.2.2-1~bpo10+1.

Em alternativa, você pode efetuar a pseudo-fusão que --trust-changelog teria feito por si:

    % dgit fetch bookworm-backports
    % git merge -s ours dgit/dgit/bookworm-backports
    % dgit push-source

VEJA TAMBÉM
dgit(1), dgit(7), https://backports.debian.org/

AUTOR
Este manual foi escrito e é mantido por Sean Whitton <spwhitton@spwhitton.name>.