git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jonathan Nieder <jrnieder@gmail.com>
To: Sverre Rabbelier <srabbelier@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>, Jeff King <peff@peff.net>,
	Git List <git@vger.kernel.org>,
	Daniel Barkalow <barkalow@iabervon.org>,
	Ramkumar Ramachandra <artagnon@gmail.com>,
	Brandon Casey <drafnel@gmail.com>
Subject: Re: [PATCH v2 10/20] git-remote-testgit: fix error handling
Date: Sun, 19 Jun 2011 17:58:10 -0500	[thread overview]
Message-ID: <20110619225810.GG23893@elie> (raw)
In-Reply-To: <1308496725-22329-11-git-send-email-srabbelier@gmail.com>

Hi,

Sverre Rabbelier wrote:

> If fast-export did not complete successfully the error handling code
> itself would error out.

That sounds like a problem indeed.  What error message does it produce?

> This was broken in commit 23b093ee0 (Brandon Casey, Wed Jun 9 2010,
> Remove python 2.5'isms). Revert that commit an introduce our own copy
> of check_call in util.py instead.

The "an" should probably be "and".  More importantly, it's probably
worth mentioning that this is only a partial revert or rephrasing some
other way.

Have you checked if this still works with python 2.4?  Cc-ing Brandon
in case he has advice.

[...]
> +++ b/git_remote_helpers/git/exporter.py
[...]
> @@ -53,6 +55,4 @@ class GitExporter(object):
>  
>          args = ["sed", "s_refs/heads/_" + self.repo.prefix + "_g"]
>  
> -        child = subprocess.Popen(args, stdin=p1.stdout)
> -        if child.wait() != 0:
> -            raise CalledProcessError
> +        check_call(args, stdin=p1.stdout)
[...]
> +++ b/git_remote_helpers/util.py
> @@ -128,6 +128,38 @@ def run_command (args, cwd = None, shell = False, add_env = None,
>      return (exit_code, output, errors)
>  
>  
> +# from python2.7:subprocess.py
> +def call(*popenargs, **kwargs):
[...]
> +    return subprocess.Popen(*popenargs, **kwargs).wait()
> +
> +
> +# from python2.7:subprocess.py
> +def check_call(*popenargs, **kwargs):
[...]
> +    retcode = call(*popenargs, **kwargs)
> +    if retcode:
> +        cmd = kwargs.get("args")
> +        if cmd is None:
> +            cmd = popenargs[0]
> +        raise subprocess.CalledProcessError(retcode, cmd)
> +    return 0

So IIUC the existing code is not providing arguments to the
CalledProcessError constructor, and your patch fixes that.  Good.

Based on <http://pydoc.org/2.4.1/subprocess.html>, Python 2.4 doesn't
seem to have a CalledProcessError type.  Maybe these code paths
weren't being exercised before.

Regards,
Jonathan

  reply	other threads:[~2011-06-19 22:58 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-19 15:18 [PATCH v2 v2 00/20] remote-helper improvements Sverre Rabbelier
2011-06-19 15:18 ` [PATCH v2 01/20] transport-helper: fix minor leak in push_refs_with_export Sverre Rabbelier
2011-06-19 15:18 ` [PATCH v2 02/20] t5800: factor out some ref tests Sverre Rabbelier
2011-06-19 15:18 ` [PATCH v2 03/20] t5800: use skip_all instead of prereq Sverre Rabbelier
2011-06-19 15:18 ` [PATCH v2 04/20] t5800: document some non-functional parts of remote helpers Sverre Rabbelier
2011-06-19 22:02   ` Jonathan Nieder
2011-07-04 11:19     ` Sverre Rabbelier
2011-06-19 15:18 ` [PATCH v2 05/20] teach remote-testgit to import non-HEAD refs Sverre Rabbelier
2011-06-19 15:18 ` [PATCH v2 06/20] transport-helper: don't feed bogus refs to export push Sverre Rabbelier
2011-06-19 15:18 ` [PATCH v2 07/20] git_remote_helpers: push all refs during a non-local export Sverre Rabbelier
2011-06-19 15:18 ` [PATCH v2 08/20] remote-curl: accept empty line as terminator Sverre Rabbelier
2011-06-19 22:42   ` Jonathan Nieder
2011-07-04 14:11     ` Sverre Rabbelier
2011-06-20  2:35   ` Dmitry Ivankov
2011-06-20  7:55     ` Jonathan Nieder
2011-06-20 19:41       ` Junio C Hamano
2011-06-19 15:18 ` [PATCH v2 09/20] git-remote-testgit: only push for non-local repositories Sverre Rabbelier
2011-06-19 15:18 ` [PATCH v2 10/20] git-remote-testgit: fix error handling Sverre Rabbelier
2011-06-19 22:58   ` Jonathan Nieder [this message]
2011-06-20 17:50     ` Brandon Casey
2011-06-20 18:02       ` Sverre Rabbelier
2011-06-19 15:18 ` [PATCH v2 11/20] fast-import: introduce 'done' command Sverre Rabbelier
2011-06-19 15:18 ` [PATCH v2 12/20] fast-export: support done feature Sverre Rabbelier
2011-06-19 15:18 ` [PATCH v2 13/20] transport-helper: factor out push_update_refs_status Sverre Rabbelier
2011-06-19 15:18 ` [PATCH v2 14/20] transport-helper: check status code of finish_command Sverre Rabbelier
2011-06-19 15:18 ` [PATCH v2 15/20] transport-helper: use the new done feature where possible Sverre Rabbelier
2011-06-20 11:45   ` Jonathan Nieder
2011-06-20 19:51     ` Junio C Hamano
2011-07-04 13:37     ` Sverre Rabbelier
2011-06-19 15:18 ` [PATCH v2 16/20] transport-helper: update ref status after push with export Sverre Rabbelier
2011-06-19 23:25   ` Jonathan Nieder
2011-06-21 20:05   ` Junio C Hamano
2011-06-21 20:11     ` Sverre Rabbelier
2011-06-19 15:18 ` [PATCH v2 17/20] transport-helper: change import semantics Sverre Rabbelier
2011-06-19 23:38   ` Jonathan Nieder
2011-07-04 11:20     ` Sverre Rabbelier
2011-07-04 21:58       ` Jonathan Nieder
2011-07-04 22:23         ` Sverre Rabbelier
2011-07-04 22:37           ` Jonathan Nieder
2011-06-19 15:18 ` [PATCH v2 18/20] transport-helper: export is no longer always the last command Sverre Rabbelier
2011-06-19 15:18 ` [PATCH v2 19/20] transport-helper: Use capname for gitdir capability too Sverre Rabbelier
2011-06-19 15:18 ` [PATCH v2 20/20] transport-helper: implement marks location as capability Sverre Rabbelier
2011-06-20  1:29   ` Jonathan Nieder
2011-07-04 13:43     ` 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=20110619225810.GG23893@elie \
    --to=jrnieder@gmail.com \
    --cc=artagnon@gmail.com \
    --cc=barkalow@iabervon.org \
    --cc=drafnel@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --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 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).