Subject: Re: [PATCH] git-push: plumb in --mirror mode

From: Andy Whitcroft <[email-masked]>
Date: Tue, 2 Oct 2007 15:21:15 +0100

On Tue, Oct 02, 2007 at 01:50:28PM +0100, Johannes Schindelin wrote:
> Hi,
> 
> On Tue, 2 Oct 2007, Andy Whitcroft wrote:
> 
> > @@ -137,5 +144,10 @@ int cmd_push(int argc, const char **argv, const char *prefix)
> >  	if (all && refspec)
> >  		usage(push_usage);
> >  
> > +	if (modes_specified > 1) {
> > +		error("--all and --mirror are incompatible");
> > +		usage(push_usage);
> > +	}
> > +
> 
> Why not
> 
> 	if ((flags & TRANSPORT_PUSH_ALL) && (flags & TRANSPORT_PUSH_MIRROR))?
> 
> It's more explicit.

Yep, that does seem cleaner.

> > @@ -667,6 +673,8 @@ static int git_transport_push(struct transport *transport, int refspec_nr, const
> >  		argv[argc++] = "--all";
> >  	if (flags & TRANSPORT_PUSH_FORCE)
> >  		argv[argc++] = "--force";
> > +	if (flags & TRANSPORT_PUSH_MIRROR)
> > +		argv[argc++] = "--mirror";
> >  	if (data->receivepack) {
> >  		char *rp = xmalloc(strlen(data->receivepack) + 16);
> >  		sprintf(rp, "--receive-pack=%s", data->receivepack);
> 
> Shouldn't you then increment the "11" a few lines before that, to ensure 
> enough space for the new argument?

I should have mentioned I'd not even reviewed it as the basic underlying
functionality seemed to be broken.  I'll look over it if I get a chance
to try and debug the underlying failure.

-apw