зеркало из https://github.com/microsoft/git.git
Fix 'push --all branch...' error handling
The builtin-fetch topic changed push's handling of --all to setting the new TRANSPORT_PUSH_ALL flag before starting the push subroutine for the given transport. Unfortunately not all references within builtin-push were changed to test this flag therefore allowing push to incorrectly accept refspecs and --all. Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
Родитель
2e13e5d892
Коммит
18184f79db
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
static const char push_usage[] = "git-push [--all] [--dry-run] [--tags] [--receive-pack=<git-receive-pack>] [--repo=all] [-f | --force] [-v] [<repository> <refspec>...]";
|
static const char push_usage[] = "git-push [--all] [--dry-run] [--tags] [--receive-pack=<git-receive-pack>] [--repo=all] [-f | --force] [-v] [<repository> <refspec>...]";
|
||||||
|
|
||||||
static int all, thin, verbose;
|
static int thin, verbose;
|
||||||
static const char *receivepack;
|
static const char *receivepack;
|
||||||
|
|
||||||
static const char **refspec;
|
static const char **refspec;
|
||||||
|
@ -52,7 +52,9 @@ static int do_push(const char *repo, int flags)
|
||||||
if (!remote)
|
if (!remote)
|
||||||
die("bad repository '%s'", repo);
|
die("bad repository '%s'", repo);
|
||||||
|
|
||||||
if (!refspec && !all && remote->push_refspec_nr) {
|
if (!refspec
|
||||||
|
&& !(flags & TRANSPORT_PUSH_ALL)
|
||||||
|
&& remote->push_refspec_nr) {
|
||||||
refspec = remote->push_refspec;
|
refspec = remote->push_refspec;
|
||||||
refspec_nr = remote->push_refspec_nr;
|
refspec_nr = remote->push_refspec_nr;
|
||||||
}
|
}
|
||||||
|
@ -138,7 +140,7 @@ int cmd_push(int argc, const char **argv, const char *prefix)
|
||||||
usage(push_usage);
|
usage(push_usage);
|
||||||
}
|
}
|
||||||
set_refspecs(argv + i, argc - i);
|
set_refspecs(argv + i, argc - i);
|
||||||
if (all && refspec)
|
if ((flags & TRANSPORT_PUSH_ALL) && refspec)
|
||||||
usage(push_usage);
|
usage(push_usage);
|
||||||
|
|
||||||
return do_push(repo, flags);
|
return do_push(repo, flags);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче