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