Attached is an updated version of the patch.
This fixes a bug in the previous patch which would cause git-dpm-tag to fail
when trying to re-tag the same upstream commit, because the annotated tag is a
different object to the commit that it points to.
X
Ximin Luo:
> Hi, attached is a patch that implements this.
>
> I was lazy, the patch is a bit lacking because it forces the tag to be signed
> and no longer allows unsigned tags. However personally I don't see an issue
> with that, in the context of Debian anyway.
>
> X
>
> On Thu, 7 Jan 2016 22:26:42 +0300 Dmitry Shachnev <[email protected]> wrote:
>> Package: git-dpm
>> Version: 0.9.1-1
>> Severity: wishlist
>>
>> It would be nice if git-dpm tag command supported signed tags.
>>
>> Maybe make it possible to pass arbitrary arguments to git tag?
>>
>> --
>> Dmitry Shachnev
>
--
GPG: ed25519/56034877E1F87C35
GPG: rsa4096/1318EFAC5FBBDBCE
https://github.com/infinity0/pubkeys.git
--- a/git-dpm 2016-12-12 11:49:59.049343163 +0100
+++ b/git-dpm 2016-12-12 11:50:23.099963581 +0100
@@ -2457,6 +2457,7 @@
##:function settag notsilent =gitcheck
function settag() { # name newvalue force
local oldrev
+ local msg="$1"; shift
if test x"$1" = x"NONE" ; then
return 0
@@ -2466,8 +2467,8 @@
if $notsilent ; then
echo "Creating new tag '$1'..."
fi
- gitcmd tag "$1" "$2"
- elif [ x"$oldrev" = x"$2" ] ; then
+ gitcmd tag -asm "$msg" "$1" "$2"
+ elif [ x"$oldrev" = x"$2" -o x"$(git rev-list -n1 "$oldrev")" = x"$2" ] ; then
if $notsilent ; then
echo "'$1' already up to date"
else
@@ -2477,7 +2478,7 @@
if $notsilent ; then
echo "Replacing tag '$1'..."
fi
- gitcmd tag -f "$1" "$2"
+ gitcmd tag -asm "$msg" -f "$1" "$2"
else
printerror "tag '$1' already exists and differs!"
return 1
@@ -2701,9 +2702,9 @@
debiantag="$(createtagname "$debiantag" "debian" \
"${nameprefix}debian$epoch-$version")" || return 1
- settag "$upstreamtag" "$control_upstream" "$dorefreshupstream" || return 1
- settag "$patchedtag" "$control_patched" "$dorefresh" || return 1
- settag "$debiantag" "$DEBIANREV" "$dorefresh" || return 1
+ settag "$packagename upstream release $uversion" "$upstreamtag" "$control_upstream" "$dorefreshupstream" || return 1
+ settag "$packagename patched upstream for Debian release $version" "$patchedtag" "$control_patched" "$dorefresh" || return 1
+ settag "$packagename Debian release $version" "$debiantag" "$DEBIANREV" "$dorefresh" || return 1
}
##:function do_reftag =subcommand
@@ -2856,9 +2857,9 @@
debiantag="$(createtagname "$debiantag" "debian" \
"${nameprefix}debian$epoch-$version")" || return 1
- settag "$upstreamtag" "$control_upstream" "$dorefreshupstream" || return 1
- settag "$patchedtag" "$control_patched" "$dorefresh" || return 1
- settag "$debiantag" "$totag" "$dorefresh" || return 1
+ settag "$packagename upstream release $uversion" "$upstreamtag" "$control_upstream" "$dorefreshupstream" || return 1
+ settag "$packagename patched upstream for Debian release $version" "$patchedtag" "$control_patched" "$dorefresh" || return 1
+ settag "$packagename Debian release $version" "$debiantag" "$totag" "$dorefresh" || return 1
}
############ common stuff ###############