Stefan Beller <sbeller@xxxxxxxxxx> writes: > Signed-off-by: Stefan Beller <sbeller@xxxxxxxxxx> > --- > > Notes: > name it to_free > > transport.c | 17 +++++++++++++++-- > 1 file changed, 15 insertions(+), 2 deletions(-) > > diff --git a/transport.c b/transport.c > index 651f0ac..b49fc60 100644 > --- a/transport.c > +++ b/transport.c > @@ -496,15 +496,28 @@ static int set_git_option(struct git_transport_options *opts, > static int connect_setup(struct transport *transport, int for_push, int verbose) > { > struct git_transport_data *data = transport->data; > + const char *remote_program; > + char *to_free = 0; char *to_free = NULL; > + remote_program = (for_push ? data->options.receivepack > + : data->options.uploadpack); > + > + if (transport->smart_options->transport_version >= 2) { > + to_free = xmalloc(strlen(remote_program) + 12); > + sprintf(to_free, "%s-%d", remote_program, > + transport->smart_options->transport_version); > + remote_program = to_free; > + } Hmph, so everybody else thinks it is interacting with 'upload-pack', and this is the only function that knows it is actually talking with 'upload-pack-2'? I am wondering why there isn't a separate helper function that munges data->options.{uploadpack,receivepack} fields based on the value of transport_version that is called _before_ this function is called. Also, how does this interact with the name of the program the end user can specify via "fetch --upload-pack=<program name>" option? > data->conn = git_connect(data->fd, transport->url, > - for_push ? data->options.receivepack : > - data->options.uploadpack, > + remote_program, > verbose ? CONNECT_VERBOSE : 0); > > + free(to_free); > + > return 0; > } -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html