| 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¶
- --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
- Convenience alias for --deliberately-include-questionable-history. See below, and refer to TAINTED HISTORY in dgit(7).
- --deliberately-DELIB
- Request certain overrides of checks implemented in the server-side processing. From git-debpush(1)'s point of view this is pure metadata embedded directly in the tag. But when the server finds them there, it may change aspects of its behaviour. The following overrides are currently meaningful in Debian:
See TAINTED HISTORY in dgit(7) for details of when to use those. For other upload targets, dgit(1) has details of all known deliberatelies; but note that an upload server might define its own.
Note that unlike --force, your use of one of these options is permanently recorded in the signed tag.
- --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-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.
- 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, tal que 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.
- 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
- Ignore that a --deliberately-* option was supplied that this
version of git-debpush doesn't know about.
This might be correct, for example if you're running an old version of git-debpush, or uploading elsewhere than to Debian.
But otherwise it's likely to be a typo. Note that unknown (or inapplicable) --deliberately-* options will be silently ignored by the server.
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.
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 |