Re: [PATCH 03/14] upload-pack-2: Implement the version 2 of upload-pack
From: Junio C Hamano <hidden>
Date: 2016-06-16 02:19:11
David Turner [off-list ref] writes:
On Fri, 2016-04-29 at 16:34 -0700, Stefan Beller wrote:quoted
In upload-pack-2 we send each capability in its own packet buffer. The construction of upload-pack-2 is a bit unfortunate as I would like it to not be depending on a symlink linking to upload-pack.c, but I did not find another easy way to do it. I would like it to generate upload-pack-2.o from upload-pack.c but with '-DTRANSPORT_VERSION=2' set.Couldn't we check argv[0] and use that to determine protocol? Then we could symlink executables rather than source code.
Yeah, I do not have a good suggestion on the mechanism to actually switch between behaviours other than what was already been discussed in the thread, but the code resulting from the patch proposed is too ugly with full of #ifdef for it to be the final form. Just to make sure nobody gets me wrong; it is OK as a POC to move the discussion forward. A production quality implemention however would need to either be a single executable that switches behaviour at runtime, or two executables, each with its own *.c file with its own main(), that share code in another common *.c file, I would think.