Re: [PATCH v2 2/8] checkout: validate new branch name in checkout_branch()
Junio C Hamano <gitster@pobox.com> writes:
Show 10 quoted lines
> In checkout_main(), new branch name validation is performed before
> dispatching to checkout_branch() or checkout_paths(). Checking out
> paths does not create new branches, so this validation only belongs
> in checkout_branch().
>
> Move the validate_branchname() and validate_new_branchname() calls
> from checkout_main() into checkout_branch(). checkout_paths()
> checks and fails if '.new_branch' is set before doing anything,
> which indicates that this change is safe and makes good sense.
>
This is straightforward and makes sense.
Show 47 quoted lines
> Signed-off-by: Junio C Hamano <gitster@pobox.com>
> ---
> builtin/checkout.c | 22 +++++++++++-----------
> 1 file changed, 11 insertions(+), 11 deletions(-)
>
> diff --git a/builtin/checkout.c b/builtin/checkout.c
> index 774e4fd5b3..14542626e9 100644
> --- a/builtin/checkout.c
> +++ b/builtin/checkout.c
> @@ -1734,6 +1734,17 @@ static int checkout_branch(struct checkout_opts *opts,
> free(full_ref);
> }
>
> + if (opts->new_branch) {
> + struct strbuf buf = STRBUF_INIT;
> +
> + if (opts->new_branch_force)
> + opts->branch_exists = validate_branchname(opts->new_branch, &buf);
> + else
> + opts->branch_exists =
> + validate_new_branchname(opts->new_branch, &buf, 0);
> + strbuf_release(&buf);
> + }
> +
> if (!new_branch_info->commit && opts->new_branch) {
> struct object_id rev;
> int flag;
> @@ -2062,17 +2073,6 @@ static int checkout_main(int argc, const char **argv, const char *prefix,
> die(_("you must specify path(s) to restore"));
> }
>
> - if (opts->new_branch) {
> - struct strbuf buf = STRBUF_INIT;
> -
> - if (opts->new_branch_force)
> - opts->branch_exists = validate_branchname(opts->new_branch, &buf);
> - else
> - opts->branch_exists =
> - validate_new_branchname(opts->new_branch, &buf, 0);
> - strbuf_release(&buf);
> - }
> -
> if (opts->patch_mode || opts->pathspec.nr)
> ret = checkout_paths(opts, &new_branch_info);
> else
> --
> 2.55.0-884-g76cf8659c2The changes looks good too.