git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Remote helpers and signed tags
@ 2013-04-07 10:34 John Keeping
  2013-04-07 21:46 ` Jonathan Nieder
  0 siblings, 1 reply; 14+ messages in thread
From: John Keeping @ 2013-04-07 10:34 UTC (permalink / raw)
  To: git; +Cc: Florian Achleitner, Sverre Rabbelier

It appears to be impossible to push signed tags using a remote helper
that supports only fast-export.  This is reported against gitifyhg[1]
but I think it is actually a Git issue.

[1] https://github.com/buchuki/gitifyhg/issues/59

I can reproduce the error using a trivial remote helper (run this in a
clone of git.git):

-- >8 --
cat >git-remote-export <<EOF &&
#!/bin/sh

alias=$1
url=${2-$1}

while read -r line
do
	case "$line" in
	capabilities)
		echo 'export'
		echo 'refspec *:*'
		echo
		;;
	list)
		echo
		;;
	export)
		while read -r line
		do
			echo "$line" >&3
			test "$line" = done && break
		done 3>"$url"
		echo
		;;
	'')
		exit
		;;
	*)
		echo >&2 "unsupported command: $line"
		exit 1
		;;
	esac
done
EOF
chmod +x git-remote-export &&
PATH="$(pwd):$PATH" git push "export::$(pwd)/v1.8.2.export" v1.8.2
-- 8< --

This produces:

    fatal: Encountered signed tag 572a535454612a046e7dd7404dcca94d6243c788;
        use --signed-tag=<mode> to handle it.
    fatal: Error while running fast-export

which is not particularly helpful for a user who doesn't know how the
remote helper is implemented, particularly because adding
--signed-tag=<mode> to the command won't work.

I think there are two problems here:

    1) The error message is misleading: "--signed-tag" isn't an option
       to git-push and as a user I don't know why Git thought I wanted
       to run fast-export.

    2) There is no way (that I have found) to change the signed-tag
       behaviour of git-fast-export when it is being invoked for a
       remote helper.

How do remote helpers using the "push" method handle this?  In that case
it seems to be completely up to the helper program to decide what to do.

I wonder if the way forward is to do some combination of:

    a) Add a --signed-tags option to git-push, which is either passed to
       fast-export or given as a new "option signed-tags" to the
       remote-helper when using the push interface (and ignored for the
       connect interface).

    b) Add a configuration variable to specify how to handle signed tags
       when pushing to a remote that uses a remote helper that cannot
       handle them; something like "remote.<name>.signedTags".

    c) Improve the "Error while running fast-export" message to
       something more like "Error pushing with fast-export (using helper
       git-remote-foo)".

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2013-04-17  5:03 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-04-07 10:34 Remote helpers and signed tags John Keeping
2013-04-07 21:46 ` Jonathan Nieder
2013-04-08  0:02   ` Sverre Rabbelier
2013-04-14 10:57     ` [PATCH 0/3] Handle signed tags with 'export' remote helpers John Keeping
2013-04-14 10:57       ` [PATCH 1/3] fast-export: add --signed-tags=warn-strip mode John Keeping
2013-04-16  4:09         ` Sverre Rabbelier
2013-04-16  4:47           ` Junio C Hamano
2013-04-16  4:50             ` Sverre Rabbelier
2013-04-16  8:42               ` John Keeping
2013-04-17  4:48                 ` Junio C Hamano
2013-04-17  5:02                   ` Sverre Rabbelier
2013-04-16  5:32             ` Jonathan Nieder
2013-04-14 10:57       ` [PATCH 2/3] transport-helper: pass --signed-tags=warn-strip to fast-export John Keeping
2013-04-14 10:57       ` [PATCH 3/3] transport-helper: add 'signed-tags' capability John Keeping

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).