Scroll to navigation

git-debpush(1) git-debpush 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 acçõ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

Você está a usar o formato de ramo de patches não aplicadas, como usado tipicamente com gbp(1) em quilt(1).
Você está a usar o formato de ramo de git-dpm(1).
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.

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.

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.)

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

Corre verificações e gera o texto da etiqueta, mas não assina nem cria a etiqueta, nem a empurra.
Apenas etiqueta, não empurra. É passado juntamente um "sem efeito" com --dry-run|-n.
Também escreve o texto da etiqueta (não assinado) na saída standard.

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

Escreve um breve sumário de utilização e termina.
Passado para git-tag(1).
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.

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.

Para onde empurrar etiquetas e ramos. Se não especificado, usa o remoto que o git usaria se você escrevesse "git push RAMO".
Qual o nome de distribuição a embeber na etiqueta assinada. A predefinição é "debian".
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.

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:

Ignora que existem alterações não cometidas aos ficheiros rastreados.
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.)
Ignora o facto que a opção de modo quilt fornecida na linha de comandos é a mesma que aquela que iria ser auto-detectada.

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.

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).
Permite envio para uma suite chamada UNRELEASED.
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.
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.)
Ignora o facto que o ramo a ser empurrado parecer ser um ramo de git-debrebase(1) num estado descosido (veja git-debrebase(5)).
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).
Ignora que o ramo local está atrás da sua autoria, tal que apenas a etiqueta, e não o cometido para onde aponta, pode ser empurrada.
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.
Ignora que o repositório para o qual a etiqueta vai ser empurrada não parece estar publicamente acessível.
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).

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

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).
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.
Ignora que existem sub-módulos git. Os sub-módulos não são suportados.
Ignora que o ficheiro debian/source/local-options existe. Este ficheiro não é suportado (mas note que você pode usar debian/source/options).
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.

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>.

dgit+tag2upload team Debian Project