Merge branch 'jk/fix-proto-downgrade-to-v0'
Transports that do not support protocol v2 did not correctly fall back to protocol v0 under certain conditions, which has been corrected. * jk/fix-proto-downgrade-to-v0: git_connect(): fix corner cases in downgrading v2 to v0
This commit is contained in:
@@ -1408,6 +1408,7 @@ static void fill_ssh_args(struct child_process *conn, const char *ssh_host,
|
||||
* the connection failed).
|
||||
*/
|
||||
struct child_process *git_connect(int fd[2], const char *url,
|
||||
const char *name,
|
||||
const char *prog, int flags)
|
||||
{
|
||||
char *hostandport, *path;
|
||||
@@ -1417,10 +1418,11 @@ struct child_process *git_connect(int fd[2], const char *url,
|
||||
|
||||
/*
|
||||
* NEEDSWORK: If we are trying to use protocol v2 and we are planning
|
||||
* to perform a push, then fallback to v0 since the client doesn't know
|
||||
* how to push yet using v2.
|
||||
* to perform any operation that doesn't involve upload-pack (i.e., a
|
||||
* fetch, ls-remote, etc), then fallback to v0 since we don't know how
|
||||
* to do anything else (like push or remote archive) via v2.
|
||||
*/
|
||||
if (version == protocol_v2 && !strcmp("git-receive-pack", prog))
|
||||
if (version == protocol_v2 && strcmp("git-upload-pack", name))
|
||||
version = protocol_v0;
|
||||
|
||||
/* Without this we cannot rely on waitpid() to tell
|
||||
|
||||
Reference in New Issue
Block a user