From: Jonathan Nieder <jrnieder@gmail.com>
To: Sverre Rabbelier <srabbelier@gmail.com>
Cc: Jeff King <peff@peff.net>, Git List <git@vger.kernel.org>,
Daniel Barkalow <barkalow@iabervon.org>,
Ramkumar Ramachandra <artagnon@gmail.com>
Subject: Re: [PATCH 03/19] t5800: document some non-functional parts of remote helpers
Date: Wed, 8 Jun 2011 14:28:51 -0500 [thread overview]
Message-ID: <20110608192850.GF27715@elie> (raw)
In-Reply-To: <1307558930-16074-4-git-send-email-srabbelier@gmail.com>
Sverre Rabbelier wrote:
[....]
> The fifth test is the most complex, and does not have a fix
> in this series. It tests pushing a ref via the export
> mechanism to a new name on the remote side (i.e.,
> "git push $remote old:new").
Thanks. Makes sense up to here (and the previous two patches are
obviously good, too).
> The problem is that we push all of the work of generating
> the export stream onto fast-export,
Here "we" means remote-testgit, not transport-helper, right?
> but we have no way of
> communicating to fast-export that this name mapping is
> happening.
It's not just name mapping, no? E.g., I could try
git push testgit::/path/to/repo $(git rev-parse HEAD):new
So I think the current implementation of "export" by testgit
is just wrong. ;-)
[...]
> There are two possible solutions:
>
> 1. Indicate the mapping to fast-export, so that it can
> generate the "mapped" names. Unfortunately, this is
> somewhat difficult due to the way fast-import is
> implemented. It feeds its revision parameters to the
> regular rev-walking machinery
This seems like a reasonable solution. One way would be to teach
fast-export about refspecs; another way would be to set up refs in a
private namespace and then munge the stream that fast-export spits out
before passing it back to the transport-helper; another (more ugly and
hackish) way would be to set up a private repository with the real
repository set up as an alternate, put the appropriate refs there, and
point fast-export to that.
Anyway, I don't think this should be in the commit message for the new
test which doesn't even know about the remote helper protocol. :)
> --- a/t/t5800-remote-helpers.sh
> +++ b/t/t5800-remote-helpers.sh
> @@ -81,4 +81,51 @@ test_expect_success PYTHON_24 'pushing remote local repo' '
> compare_refs clone HEAD server HEAD
> '
>
> +test_expect_failure PYTHON_24 'fetch new branch' '
Side note: this repeated PYTHON_24 implementation detail as a
prerequisite feels wrong. Would it make sense to do something like
if test_have_prereq PYTHON_24
then
test_set_prereq REMOTE_TESTGIT
fi
at the start and use that?
[...]
> +test_expect_failure PYTHON_24 'push new branch with old:new refspec' '
> + (cd clone &&
> + git push origin new-name:new-refspec
> + ) &&
> + compare_refs clone HEAD server refs/heads/new-refspec
> +'
It would also be interesting to test tag pushes and pushes by object
name.
(cd clone &&
git tag -a -m 'example tag' example-tag &&
git push origin tag example-tag
) &&
compare_refs clone example-tag server refs/tags/example-tag
(cd clone &&
file_blob=$(git rev-parse --verify HEAD:file) &&
git push origin "$file_blob":refs/blobs/file
) &&
compare_refs clone HEAD:file server refs/blobs/file
(cd clone &&
echo more >>file &&
git add file &&
file_blob=$(git rev-parse --verify :file) &&
git push origin "$file_blob":refs/blobs/newfile
) &&
compare_refs clone :file server refs/blobs/newfile
(cd clone &&
echo more >>file &&
git commit -a -m another &&
git push origin HEAD^0:master
) &&
compare_refs clone HEAD server HEAD
next prev parent reply other threads:[~2011-06-08 19:29 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-08 18:48 [PATCH 00/19] remote-helper improvements Sverre Rabbelier
2011-06-08 18:48 ` [PATCH 01/19] transport-helper: fix minor leak in push_refs_with_export Sverre Rabbelier
2011-06-08 21:57 ` Jeff King
2011-06-08 22:08 ` Sverre Rabbelier
2011-06-08 18:48 ` [PATCH 02/19] t5800: factor out some ref tests Sverre Rabbelier
2011-06-08 18:48 ` [PATCH 03/19] t5800: document some non-functional parts of remote helpers Sverre Rabbelier
2011-06-08 19:28 ` Jonathan Nieder [this message]
2011-06-08 19:36 ` Jonathan Nieder
2011-06-08 19:51 ` Sverre Rabbelier
2011-06-08 21:13 ` Sverre Rabbelier
2011-06-09 12:45 ` Sverre Rabbelier
2011-06-10 1:18 ` Jeff King
2011-06-08 18:48 ` [PATCH 04/19] teach remote-testgit to import non-HEAD refs Sverre Rabbelier
2011-06-08 19:30 ` Jonathan Nieder
2011-06-08 19:47 ` Sverre Rabbelier
2011-06-08 22:15 ` Jeff King
2011-06-08 23:48 ` Junio C Hamano
2011-06-09 6:23 ` Sverre Rabbelier
2011-06-08 18:48 ` [PATCH 05/19] transport-helper: don't feed bogus refs to export push Sverre Rabbelier
2011-06-08 18:48 ` [PATCH 06/19] git_remote_helpers: push all refs during a non-local export Sverre Rabbelier
2011-06-08 19:42 ` Jonathan Nieder
2011-06-08 22:19 ` Jeff King
2011-06-08 22:21 ` Sverre Rabbelier
2011-06-09 8:09 ` Jonathan Nieder
2011-06-09 8:29 ` Sverre Rabbelier
2011-06-09 8:43 ` Jonathan Nieder
2011-06-09 10:26 ` Sverre Rabbelier
2011-06-10 1:40 ` Jeff King
2011-06-08 18:48 ` [PATCH 07/19] remote-curl: accept empty line as terminator Sverre Rabbelier
2011-06-08 18:48 ` [PATCH 08/19] git-remote-testgit: only push for non-local repositories Sverre Rabbelier
2011-06-08 18:48 ` [PATCH 09/19] git-remote-testgit: fix error handling Sverre Rabbelier
2011-06-08 18:48 ` [PATCH 10/19] fast-import: introduce 'done' command Sverre Rabbelier
2011-06-08 20:03 ` Jonathan Nieder
2011-06-08 20:07 ` Sverre Rabbelier
2011-06-08 18:48 ` [PATCH 11/19] fast-export: support done feature Sverre Rabbelier
2011-06-08 18:48 ` [PATCH 12/19] transport-helper: factor out push_update_refs_status Sverre Rabbelier
2011-06-08 18:48 ` [PATCH 13/19] transport-helper: check status code of finish_command Sverre Rabbelier
2011-06-08 18:48 ` [PATCH 14/19] transport-helper: use the new done feature where possible Sverre Rabbelier
2011-06-08 18:48 ` [PATCH 15/19] transport-helper: update ref status after push with export Sverre Rabbelier
2011-06-09 9:10 ` Jonathan Nieder
2011-06-09 10:23 ` Sverre Rabbelier
2011-06-08 18:48 ` [PATCH 16/19] transport-helper: change import semantics Sverre Rabbelier
2011-06-08 20:47 ` Jonathan Nieder
2011-06-08 20:52 ` Sverre Rabbelier
2011-06-08 18:48 ` [PATCH 17/19] transport-helper: export is no longer always the last command Sverre Rabbelier
2011-06-09 1:07 ` Junio C Hamano
2011-06-09 6:48 ` Sverre Rabbelier
2011-06-09 7:51 ` Jonathan Nieder
2011-06-09 8:28 ` Sverre Rabbelier
2011-06-13 15:24 ` Junio C Hamano
2011-06-08 18:48 ` [PATCH 18/19] transport-helper: Use capname for gitdir capability too Sverre Rabbelier
2011-06-08 20:54 ` Jonathan Nieder
2011-06-08 20:57 ` Sverre Rabbelier
2011-06-08 18:48 ` [PATCH 19/19] transport-helper: implement marks location as capability Sverre Rabbelier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110608192850.GF27715@elie \
--to=jrnieder@gmail.com \
--cc=artagnon@gmail.com \
--cc=barkalow@iabervon.org \
--cc=git@vger.kernel.org \
--cc=peff@peff.net \
--cc=srabbelier@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.