| 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 is designed such that for regular uploads of your package, you should be able to just invoke it without passing any command line arguments. After you've built and tested some .debs, run dch(1) to finalise your changelog and committed the result, just type "git debpush", and the intermediary service and your distribution's autobuilder network will take care of the rest:
% 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.
The valid values for check are described next. The checks fall into two groups: those checks for which git-debpush in interactive use will offer to ignore failures of the check (with a y/n prompt), and those checks whose failure always causes git-debpush to exit, unless forced.
Failures of these checks can be ignored during interactive use:
- 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
- Ignore that the local branch is behind its upstream, such that only the tag, and not the commit to which it points, can be pushed.
- branch-diverged
- Ignore that the local branch and its upstream have diverged, such that only the tag, and not the commit to which it points, can be pushed.
- repo-inaccessible
- Ignore that the repository to which the tag will be pushed does not seem to be publically accessible.
- remake-tag
- Ignore that a tag of the same name that git-debpush proposes to make already exists, with different content. Overriding this check implies passing -f to git-tag(1).
Failures of these checks are always fatal, unless forced:
- 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
- When used interactively, and a test fails, git-debpush will sometimes offer to ignore the failure, depending on the likelihood that ignoring the failure will result in a broken upload. Passing this option disables this interactive prompting.
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 |