X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=dgit;h=3a91929f7cbffb027e891fe8b86ec1a5327682a9;hb=e7d9e0826831352cee9b27b5a94ac728e7d68982;hp=949d22c794f4e04ede69f238601ef5f690071c95;hpb=251174a2cc06e0cd3041c0b97b9fc687902979fc;p=dgit.git diff --git a/dgit b/dgit index 949d22c7..3a91929f 100755 --- a/dgit +++ b/dgit @@ -50,8 +50,6 @@ our (@dget) = qw(dget); our (@dput) = qw(dput); our (@debsign) = qw(debsign); our (@gpg) = qw(gpg); -fixme should be in manual -fixme should pass this to debsign our (@sbuild) = qw(sbuild -A); our (@dpkgbuildpackage) = qw(dpkg-buildpackage -i\.git/ -I.git); our (@dpkgsource) = qw(dpkg-source -i\.git/ -I.git); @@ -994,13 +992,21 @@ END $keyid = access_cfg('keyid','RETURN-UNDEF'); } unlink $tfn->('.tmp.asc') or $!==&ENOENT or die $!; - my @sign_cmd = (@gpg, qw(--clearsign --armor)); + my @sign_cmd = (@gpg, qw(--detach-sign --armor)); push @sign_cmd, qw(-u),$keyid if defined $keyid; push @sign_cmd, $tfn->('.tmp'); runcmd_ordryrun @sign_cmd; - if (!$dry - runcmd_ordryrun @ + if (!$dryrun) { + $tagobjfn = $tfn->('.signed.tmp'); + runcmd shell_cmd "> $tagobjfn", qw(cat --), + $tfn->('.tmp'), $tfn->('.tmp.asc'); + } } + my $tag_obj_hash = runcmd @git, qw(hash-object -w -t tag), $tagobjfn; + runcmd_ordryrun @git, qw(verify-tag), $tag_obj_hash; + runcmd_ordryrun @git, qw(update-ref), "refs/tags/$tag", $tag_obj_hash; + runcmd_ordryrun @git, qw(tag -v --), $tag; + if (!check_for_git()) { create_remote_git_repo(); } @@ -1013,16 +1019,6 @@ END } if ($sign) { - if (!$as_remote) { - my @tag_cmd = (@git, qw(tag -a -m), - ); - push @tag_cmd, $tag; - runcmd_ordryrun @tag_cmd; - } else { - } - - push @tag_cmd, qw(-u),$keyid if defined $keyid; - my @debsign_cmd = @debsign; push @debsign_cmd, "-k$keyid" if defined $keyid; push @debsign_cmd, $changesfile;