git-debpush(1)

NOME
git-debpush - cria & empurra uma etiqueta git com metadados para um envio ftp-master

RESUMO
git debpush [opção...]

DESCRIÇÃO
git-debpush é um invólucro em volta de git-tag(1) e git-push(1). Ajuda-o a criar e empurrar uma etiqueta assinada com formato especial que indica que o cometido etiquetado deve ser empurrado (ou "enviado") para um arquivo de estilo Debian.

Tipicamente, o seu servidor git irá estar configurado para notificar um serviço intermediário da nova etiqueta que você empurrou. Esse serviço irá então buscar a sua etiqueta, verificar a sua assinatura PGP, e fazer qualquer conversão necessária (tal como produzir e assinar um .dsc e um .changes), e enviar o resultado para o arquivo de estilo Debian.

git-debpush é apenas para envios apenas-fonte.

UTILIZAÇÃO TÍPICA
git-debpush está desenhado para que os envios regulares do seu pacote, você deve ser capaz de apenas invoca-lo se passar nenhuns argumentos de linha de comandos. Após você compilar e testar alguns .debs, corra dch(1) para finalizar o seu registo de alterações e cometer o resultado, apenas escreva "git debpush", e o serviço intermediário e a sua rede auto-construtora da distribuição irá tomar conta do resto:

    % git debpush

A excepção mais comum a isto é a primeira vez que você usa git-debpush para um pacote não-nativo. Você tem de passar uma opção de modo quilt para informar o serviço intermediário de qual formato de ramo git você está a usar, por exemplo

    % git debpush --gbp

se você está a usar o formato de ramo git tipicamente usado pelo gbp(1). Veja "OPÇÕES DE MODO QUILT", em baixo, para as opções de modo quilt disponíveis.

Aparte de algumas verificações de sanidade para ajudar a evitar envios quebrados, o git-debpush não faz nada com a informação fornecida pela opção de modo quilt. Ele simplesmente embebede o modo quilt correspondente na sua etiqueta gerada, para uso pelo serviço intermediário.

Futuras invocações do git-debpush irão tentar ler o modo quilt a partir da etiqueta gerada pelo git-debpush para o seu envio anterior. Você pode sobrepor isso na linha de comandos ao passar uma opção de modo quilt, a qual irá sempre tomar precedência.

  Enganos
Se você usou git-debpush para fazer uma etiqueta mas ainda não a empurrou, seja porque usou --tag-only|-t ou porque o push falhou, pode bem apaga-la e criar outra. (No caso em que o empurrar falhou você pode apenas correr git-debpush outra vez sem apagar a etiqueta, e ele irá apenas re-tentar o push.)

Contudo, se uma etiqueta feita por este script foi empurrada, então não faça

•   apague a etiqueta, localmente ou remotamente;

•   retroceda (forçar push) o ramo onde a etiqueta está, ou

•   remova quaisquer entradas de debian/changelog.

O serviço intermediário não vai deixa-lo reutilizar o número de versão de qualquer maneira, e tomar qualquer destas ações pode criar uma dificuldade desnecessária para tentar outro envio. Em vez disto, adicione uma nova estrofe no changelog e corra git-debpush outra vez.

CONFIGURAÇÃO PARA FORMATO FONTE 1.0
O git-debpush precisa dizer ao serviço git intermediário se este é um pacote nativ ou não-nativo. Dado as práticas Debian históricas, não é suficiente fazer seja git-debpush ou o serviço intermediário confiar no número de versão em debian/changelog.

Se você está a usar um dos formatos de pacote fonte 3.0, o git-debpush irá apenas olhar em debian/source/format para determinar se o pacote é nativo ou não-nativo, e você pode ignorar esta secção do manual.

Se você está a usar o formato de pacote fonte 1.0 -- ou debian/source/format não existe, ou contém a string "1.0" -- então tem de dizer ao git-debpush se o pacote é nativo ou não-nativo. Nós fazemos isto usando debian/source/options. Se o seu pacote é não-nativo, execute

    % echo "-sk" >>debian/source/options

Se o seu pacote é nativo, execute

    % echo "-sn" >>debian/source/options

(Com formato fonte 1.0, o dpkg-source(1) decide se o pacote é nativo ou não-nativo com base na presença de um orig.tar em .., mas o git-debpush é uma ferramenta git pura que nunca olha para tarballs.)

OPÇÕES DO MODO QUILT

--quilt=gbp|--gbp
    Você está a usar o formato de ramo de patches não aplicadas, como usado tipicamente com gbp(1) em quilt(1).

--quilt=dpm|--dpm
    Você está a usar o formato de ramo de git-dpm(1).

--quilt=baredebian[+git]|--baredebian[+git]
    Você está a usar o formato de ramo 'bare debian', com a fonte de autor no formato de uma etiqueta de autoria.

    --quilt=baredebian+git é um nome alternativo para --quilt=baredebian.

--quilt=linear
    Você está a usar "git-debrebase" ou a manter semi-manualmente um ramo de patches-aplicadas.

    O serviço intermediário irá adicionar uma nova patch para cometido que toca na fonte do autor que ainda não está representado em debian/patches.

--quilt=single
    Você está a editar o código fonte do autor diretamente e não lhe interessa manter uma série de patches quebradas.

    Todas as alterações à fonte do autor serão esmagadas numa única patch em debian/patches, substituindo quaisquer patches existentes.

    Prefira isto à opção "single-debian-patch" do dpkg-source. (Veja --quilt=single em dgit(1) para uma explicação.)

--quilt=smash | --quilt=try-linear | --quilt=unapplied | --quilt=nofix
    Idêntico às opções dgit correspondentes. Por favor consulte dgit(1). A maioria dos utilizadores do git-debpush não vão querer estes modos.

OUTRAS OPÇÕES

--dry-run|-n
    Corre verificações e gera o texto da etiqueta, mas não assina nem cria a etiqueta, nem a empurra.

--tag-only|-t
    Apenas etiqueta, não empurra. É passado juntamente um "sem efeito" com --dry-run|-n.

--print-tag-text
    Também escreve o texto da etiqueta (não assinado) na saída standard.

    Útil juntamente com --dry-run|-n, para usar em script.

--help|-h
    Escreve um breve sumário de utilização e termina.

-u keyid
    Passado para git-tag(1).

--branch=RAMO
    Onde colocar a etiqueta, isto é, o que deseja lançar. Se não especificado, nós pomos a etiqueta em onde o CABEÇALHO aponta.

    Note que sito não precisa realmente ser um ramo, mas pode ser qualquer cometido (veja gitglossary(7)). O nome de opção é escolhido para corresponder ao que é de longe o caso mais comum.

--upstream=ETIQUETA
    Quando se empurra um pacote não-nativo, o git-debpush precisa duma etiqueta para a parte do autor do seu pacote.

    Por predefinição o git-debpush pergunta ao git-deborig(1), o qual procura por uma etiqueta apropriada baseada na versão de autor em debian/changelog.

--remote=REMOTO
    Para onde empurrar etiquetas e ramos. Se não especificado, usa o remoto que o git usaria se você escrevesse "git push RAMO".

--distro=DISTRIBUIÇÃO
    Qual o nome de distribuição a embeber na etiqueta assinada. A predefinição é "debian".

--untaint-history
    Nome alternativo conveniente para --deliberately-include-questionable-history. Veja em baixo, e consulte HISTÓRICO CONTAMINADO em dgit(7).

--deliberately-DELIB
    Requer certas sobreposições de verificações implementadas no processamento no lado do servidor. Do ponto de vista do git-debpush(1) isto são puros meta dados embebidos diretamente na etiqueta. Mas quando o servidor os encontra lá, pode mudar aspectos do comportamento. As seguintes sobreposições são presentemente significativas em Debian:

    --deliberately-include-questionable-history
    --deliberately-not-fast-forward

    Veja HISTÓRICO CONTAMINADO em dgit(7) para detalhes de quando usar estes. Para outros alvos de envio, o dgit(1) tem detalhes de todas as deliberações conhecidas; mas note que um servidor de envio pode definir as suas próprias.

    Note que ao contrário de --force, o seu uso de uma destas opções é permanentemente registada na etiqueta assinada.

--force|-f
    Ignora os resultados de todas as verificações destinadas a prevenir envios quebrados.

    Note que isto não implica fazer um empurrar forçado de git: O git-debpush nunca passa -f para o git push. Se você precisar disto, use git debpush -t e depois faça o seu próprio empurrar forçado de git.

--force=check[,check] ...
    Sobrepõe verificações individuais desenhadas para prevenir envios quebrados. Pode ser especificado mais do que uma vez.

    Usar --force ou --force=check pode fazer com que o envio falhe em qualquer ponto adiante no processo.

    Os valores válidos para check são descritos a seguir. As verificações dividem-se em dois grupos: aquelas verificações para as quais o git-debpush em uso interativo vai oferecer ignorar as falhas de verificação (com uma pergunta s/n), e aquelas verificações cuja falha vão sempre fazer o git-debpush terminar, a menos que forçado.

    A falha destas verificações pode ser ignorada durante uso interativo:

    uncommitted
        Ignora que existem alterações não cometidas aos ficheiros rastreados.

    untracked
        Ignora que existem ficheiros não rastreados. (Para o formato de ramo debian nu, ficheiros não rastreados fora de debian/ são sempre ignorados.)

    superfluous-quilt-mode
        Ignora o facto que a opção de modo quilt fornecida na linha de comandos é a mesma que aquela que iria ser auto-detetada.

        Se um pacote foi antes enviado com git-debpush, você não precisa de passar --gbp|--dpm|--quilt=mode, excepto no caso pouco usual em que você está a alterar o seu fluxo de trabalho git.

        É melhor não entrar no hábito de especificar o modo quilt, pois isso pode sobrepor a determinação do git-debpush, e desse modo acabar por aplicar o modo quilt errado a um pacote diferente.

    upstream-nonancestor
        Ignora o facto que a etiqueta de autor não é um ancestral do ramo a ser etiquetado (saltar esta verificação é imposto pelo --quilt=baredebian).

    unreleased
        Permite envio para uma suite chamada UNRELEASED.

    dgit-view
        Ignora o empurrar aparente da vista dgit de um pacote (como produzido pelo dgit clone) para o ramo do maintainer, onde a vista dgit e a vista do maintainer do pacote não são idênticas.

    pristine-tar
        Ignora que os dados pristine tar para esta nova versão de autor foram cometidos para o ramo pristine-tar, apesar do facto que o serviço intermediário irá sempre ignorar estes dados. (Irá gerar o seu próprio tarball de origem com git-archive(1). Veja Debian bug #1106071.)

    unstitched
        Ignora o facto que o ramo a ser empurrado parecer ser um ramo de git-debrebase(1) num estado descosido (veja git-debrebase(5)).

    detached
        Ignora o facto de que CABEÇALHO vai ser etiquetado, mas CABEÇALHO está desanexado (esta verificação é apenas efetuada quando a opção --branch=HEAD ou nenhuma --branch é especificada).

    branch-behind
        Ignora que o ramo local está atrás da sua autoria, arriscando enviar código fonte desatualizado. Se você sobrepor isto então apenas a etiqueta, e não o cometido para onde aponta, pode ser empurrada.

    branch-diverged
        Ignora que o ramo local e a sua autoria terem divergido, tal que apenas a etiqueta, e não o cometido para onde aponta, pode ser empurrada.

        Isto arrisca enviar código fonte caducado, agora ou no futuro.

    repo-inaccessible
        Ignora que o repositório para o qual a etiqueta vai ser empurrada não parece estar publicamente acessível.

    remake-tag
        Ignora que uma etiqueta do mesmo nome que o git-debpush propõe fazer já existe, com conteúdo diferente. Sobrepor esta verificação implica passar -f ao git-tag(1).

    unknown-delibrately
        Ignora que uma opção --deliberately-* foi fornecida que esta versão de git-debpush não a conhece.

        Isto pode estar correto, por exemplo se você está a correr uma versão antiga do git-debpush, ou a enviar para outro lado sem ser Debian.

        Mas caso contrário é provável que seja erro de escrita. Note que opções --deliberately-* desconhecidas (ou não aplicáveis) vão ser ignoradas em silêncio pelo servidor.

    Falhas destas verificações são sempre fatais, a menos que forçado:

    upstream-nonidentical
        Ignora quaisquer alterações entre a fonte de autor na etiqueta de autor e a fonte de autor no ramo a ser etiquetado (esta verificação só é efetuada quando se usa --quilt=gbp ou --quilt=unapplied).

    patches-nonapplicable
        Ignora quaisquer falhas das duas verificações seguintes:

        •   Com --quilt=gbp, --quilt=unapplied, --quilt=baredebian, --quilt=dpm, e --quilt=nofix, as patches quilt deverão aplicar de modo limpo à fonte de autor com git-apply(1).

        •   Com --quilt=dpm e --quilt=nofix, aplicar as patches quilt na fonte de autor deverá produzir exatamente a árvore fonte a ser etiquetada.

    submodule
        Ignora que existem sub-módulos git. Os sub-módulos não são suportados.

    local-options
        Ignora que o ficheiro debian/source/local-options existe. Este ficheiro não é suportado (mas note que você pode usar debian/source/options).

--batch
    Quando se usa interativamente, e um teste falha, o git-debpush irá por vezes propor ignorar a falha, dependendo da probabilidade de que ignorar a falha irá resultar num envio quebrado. Passar esta opção desactiva o aviso interativo.

--extra-metadata=<CHAVE[=VALOR]>
    Adiciona um item de metadados extra à etiqueta. CHAVE[=VALOR] vai ser inserida em uma das linhas de saída [dgit ...]. Esta opção pode ser repetida como necessário.

    Você tem controle manual completo. A sintaxe e semânticas são completamente não verificadas. Esta opção pode ser útil, por exemplo, se você está a correr uma versão antiga do git-debpush, ou a enviar para um outro lado sem ser Debian.

VEJA TAMBÉM
<https://wiki.debian.org/tag2upload>, tag2upload(5)

Formatos de ramo git usados pelos maintainers de Debian: <https://wiki.debian.org/GitPackagingSurvey>

AUTOR
git-debpush e este manual foram escritos por Sean Whitton <spwhitton@spwhitton.name> com muitas entradas de Ian Jackson <ijackson@chiark.greenend.org.uk>.