From: Jeff King <peff@peff.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: Sverre Rabbelier <srabbelier@gmail.com>,
Dmitry Ivankov <divanorama@gmail.com>,
git@vger.kernel.org, Jonathan Nieder <jrnieder@gmail.com>,
Ramkumar Ramachandra <artagnon@gmail.com>
Subject: [PATCH 2/8] git-remote-testgit: exit gracefully after push
Date: Tue, 7 Jun 2011 13:19:48 -0400 [thread overview]
Message-ID: <20110607171947.GA22111@sigill.intra.peff.net> (raw)
In-Reply-To: <20110607171838.GA21685@sigill.intra.peff.net>
The core of the helper script is a loop reading commands.
After most commands, we want to read more, until we get an
empty command that signals we're done. The "export" command
is different, though; all of the rest of the input goes to
fast-import, and there is nothing left for us to read. This
caused us to print a warning that we got EOF, even though it
is expected in this case.
This was just a warning, so it didn't cause any tests to
fail, but the testgit helper is supposed to act as a
reference implementation. We should try to set a good
example.
This patch lets each command handler tell the main loop
whether it should expect more commands or not; the handler
exits gracefully if no more are expected.
Signed-off-by: Jeff King <peff@peff.net>
---
git-remote-testgit.py | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/git-remote-testgit.py b/git-remote-testgit.py
index df9d512..937b858 100644
--- a/git-remote-testgit.py
+++ b/git-remote-testgit.py
@@ -74,6 +74,7 @@ def do_capabilities(repo, args):
print "refspec refs/heads/*:%s*" % repo.prefix
print # end capabilities
+ return True
def do_list(repo, args):
@@ -96,6 +97,7 @@ def do_list(repo, args):
print "@refs/heads/master HEAD"
print # end list
+ return True
def update_local_repo(repo):
@@ -123,6 +125,7 @@ def do_import(repo, args):
repo = update_local_repo(repo)
repo.exporter.export_repo(repo.gitdir)
+ return True
def do_export(repo, args):
@@ -148,6 +151,7 @@ def do_export(repo, args):
update_local_repo(repo)
repo.importer.do_import(repo.gitdir)
repo.non_local.push(repo.gitdir)
+ return False
def do_gitdir(repo, args):
@@ -158,6 +162,7 @@ def do_gitdir(repo, args):
die("gitdir needs an argument")
repo.gitdir = ' '.join(args)
+ return True
COMMANDS = {
@@ -203,7 +208,8 @@ def read_one_line(repo):
die("Unknown command, %s", cmd)
func = COMMANDS[cmd]
- func(repo, cmdline)
+ if not func(repo, cmdline):
+ return False
sys.stdout.flush()
return True
--
1.7.6.rc0.35.gc40cb
next prev parent reply other threads:[~2011-06-07 17:19 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-06-01 21:30 git clone (ssh://) skips detached HEAD Dmitry Ivankov
2011-06-01 22:05 ` Jeff King
2011-06-01 22:18 ` Dmitry Ivankov
2011-06-01 22:22 ` Junio C Hamano
2011-06-01 22:47 ` Jeff King
2011-06-01 22:53 ` Jeff King
2011-06-03 5:09 ` Jeff King
2011-06-03 5:10 ` [PATCH 1/3] t: add tests for cloning remotes with " Jeff King
2011-06-03 5:11 ` [PATCH 2/3] consider only branches in guess_remote_head Jeff King
2011-06-03 5:18 ` [PATCH 3/3] clone: always fetch remote HEAD Jeff King
2011-06-03 5:36 ` Sverre Rabbelier
2011-06-03 5:43 ` Jeff King
2011-06-03 14:51 ` Jeff King
2011-06-03 16:28 ` Junio C Hamano
2011-06-03 18:10 ` Jeff King
2011-06-04 1:50 ` Sverre Rabbelier
2011-06-06 16:08 ` Jeff King
2011-06-06 0:47 ` Junio C Hamano
2011-06-06 1:00 ` Junio C Hamano
2011-06-06 13:05 ` Sverre Rabbelier
2011-06-06 13:57 ` Junio C Hamano
2011-06-06 16:11 ` Jeff King
2011-06-06 19:05 ` Sverre Rabbelier
2011-06-07 17:10 ` Jeff King
2011-06-07 17:20 ` Sverre Rabbelier
2011-06-07 17:18 ` [PATCH 0/8] minor import/export remote helper fixes Jeff King
2011-06-07 17:19 ` [PATCH 1/8] transport-helper: fix minor leak in push_refs_with_export Jeff King
2011-06-07 17:19 ` Jeff King [this message]
2011-06-07 17:48 ` [PATCH 2/8] git-remote-testgit: exit gracefully after push Sverre Rabbelier
2011-06-07 17:20 ` [PATCH 3/8] t5800: factor out some ref tests Jeff King
2011-06-07 17:22 ` Sverre Rabbelier
2011-06-07 17:20 ` [PATCH 4/8] t5800: document some non-functional parts of remote helpers Jeff King
2011-06-07 17:25 ` Sverre Rabbelier
2011-06-07 17:28 ` Jeff King
2011-06-07 17:34 ` Sverre Rabbelier
2011-06-07 17:51 ` Jeff King
2011-06-07 17:53 ` Sverre Rabbelier
2011-06-07 17:55 ` Jeff King
2011-06-08 23:19 ` Junio C Hamano
2011-06-09 0:11 ` Jeff King
2011-06-09 0:43 ` Junio C Hamano
2011-06-09 0:45 ` Jeff King
2011-06-09 6:20 ` Sverre Rabbelier
2011-06-07 17:20 ` [PATCH 5/8] teach remote-testgit to import non-HEAD refs Jeff King
2011-06-08 23:21 ` Junio C Hamano
2011-06-09 0:17 ` Jeff King
2011-06-07 17:21 ` [PATCH 6/8] teach remote-testgit to import multiple refs Jeff King
2011-06-07 17:21 ` [PATCH 7/8] transport-helper: don't feed bogus refs to export push Jeff King
2011-06-07 17:31 ` Sverre Rabbelier
2011-06-07 17:21 ` [PATCH 8/8] git_remote_helpers: push all refs during a non-local export Jeff King
2011-06-07 17:32 ` Sverre Rabbelier
2011-06-07 17:42 ` Jeff King
2011-06-07 17:44 ` Sverre Rabbelier
2011-06-06 20:31 ` [PATCH 3/3] clone: always fetch remote HEAD Junio C Hamano
2011-06-06 22:08 ` Jeff King
2011-06-07 23:01 ` Jeff King
2011-06-07 23:03 ` [PATCH 1/2] make copy_ref globally available Jeff King
2011-06-07 23:03 ` [PATCH 2/2] clone: always fetch remote HEAD Jeff King
2011-06-07 23:18 ` [PATCH 3/3] " Junio C Hamano
2011-06-03 16:11 ` git clone (ssh://) skips detached HEAD Junio C Hamano
2011-06-03 18:48 ` Jeff King
2011-06-01 22:42 ` Jakub Narebski
2011-06-01 22:51 ` Jeff King
2011-06-02 20:02 ` Jakub Narebski
2011-06-03 2:52 ` Jeff King
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=20110607171947.GA22111@sigill.intra.peff.net \
--to=peff@peff.net \
--cc=artagnon@gmail.com \
--cc=divanorama@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jrnieder@gmail.com \
--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 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).