From 313677627a8258a0a936136938302b244ae5511c Mon Sep 17 00:00:00 2001 From: Derrick Stolee Date: Thu, 29 Aug 2019 10:01:32 -0700 Subject: [PATCH 1/4] checkout: add simple check for 'git checkout -b' The 'git switch' command was created to separate half of the behavior of 'git checkout'. It specifically has the mode to do nothing with the index and working directory if the user only specifies to create a new branch and change HEAD to that branch. This is also the behavior most users expect from 'git checkout -b', but for historical reasons it also performs an index update by scanning the working directory. This can be slow for even moderately-sized repos. A performance fix for 'git checkout -b' was introduced by fa655d8411 (checkout: optimize "git checkout -b " 2018-08-16). That change includes details about the config setting checkout.optimizeNewBranch when the sparse-checkout feature is required. The way this change detected if this behavior change is safe was through the skip_merge_working_tree() method. This method was complex and needed to be updated as new options were introduced. This behavior was essentially reverted by 65f099b ("switch: no worktree status unless real branch switch happens" 2019-03-29). Instead, two members of the checkout_opts struct were used to distinguish between 'git checkout' and 'git switch': * switch_branch_doing_nothing_is_ok * only_merge_on_switching_branches These settings have opposite values depending on if we start in cmd_checkout or cmd_switch. The message for 64f099b includes "Users of big repos are encouraged to move to switch." Making this change while 'git switch' is still experimental is too aggressive. Create a happy medium between these two options by making 'git checkout -b ' behave just like 'git switch', but only if we read exactly those arguments. This must be done in cmd_checkout to avoid the arguments being consumed by the option parsing logic. This differs from the previous change by fa644d8 in that the config option checkout.optimizeNewBranch remains deleted. This means that 'git checkout -b' will ignore the index merge even if we have a sparse-checkout file. While this is a behavior change for 'git checkout -b', it matches the behavior of 'git switch -c'. Signed-off-by: Derrick Stolee Acked-by: Elijah Newren Acked-by: Taylor Blau Signed-off-by: Junio C Hamano --- builtin/checkout.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/builtin/checkout.c b/builtin/checkout.c index f884d27f1f5910..2bca5fe4925638 100644 --- a/builtin/checkout.c +++ b/builtin/checkout.c @@ -1698,6 +1698,15 @@ int cmd_checkout(int argc, const char **argv, const char *prefix) opts.checkout_index = -2; /* default on */ opts.checkout_worktree = -2; /* default on */ + if (argc == 3 && !strcmp(argv[1], "-b")) { + /* + * User ran 'git checkout -b ' and expects + * the same behavior as 'git switch -c '. + */ + opts.switch_branch_doing_nothing_is_ok = 0; + opts.only_merge_on_switching_branches = 1; + } + options = parse_options_dup(checkout_options); options = add_common_options(&opts, options); options = add_common_switch_branch_options(&opts, options); From d90e0a2f5374d2cd9975e058e483943ba2ad65be Mon Sep 17 00:00:00 2001 From: Derrick Stolee Date: Mon, 16 Sep 2019 12:57:48 +0000 Subject: [PATCH 2/4] fixup! DEPRECATION: warn about 'git checkout -b' This reverts commit dd3b5120077dd0414c62b8deaeaaffa40bc47736. Signed-off-by: Derrick Stolee --- builtin/.checkout.c.swp | Bin 0 -> 77824 bytes builtin/checkout.c | 9 +-------- 2 files changed, 1 insertion(+), 8 deletions(-) create mode 100644 builtin/.checkout.c.swp diff --git a/builtin/.checkout.c.swp b/builtin/.checkout.c.swp new file mode 100644 index 0000000000000000000000000000000000000000..f6dad4abb02c265ee66b3f6f76d00d59b9b524a4 GIT binary patch literal 77824 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%0D($Rh0-7;8R*3|qhA%&XMH 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 Ul^dyn{$I$!_h?IFGP36X2Rz^&;s5{u literal 0 HcmV?d00001 diff --git a/builtin/checkout.c b/builtin/checkout.c index d908d2dcb6c257..337cba3337b4e8 100644 --- a/builtin/checkout.c +++ b/builtin/checkout.c @@ -1144,7 +1144,6 @@ static int switch_branches(const struct checkout_opts *opts, void *path_to_free; struct object_id rev; int flag, writeout_error = 0; - int do_merge = 1; trace2_cmd_mode("branch"); @@ -1171,20 +1170,15 @@ static int switch_branches(const struct checkout_opts *opts, if (!new_branch_info->commit) die(_("You are on a branch yet to be born")); parse_commit_or_die(new_branch_info->commit); - - if (opts->only_merge_on_switching_branches) - do_merge = 0; } /* optimize the "checkout -b path */ - if (!do_merge || skip_merge_working_tree(opts, &old_branch_info, new_branch_info)) { + if (skip_merge_working_tree(opts, &old_branch_info, new_branch_info)) { if (!checkout_optimize_new_branch && !opts->quiet) { if (read_cache_preload(NULL) < 0) return error(_("index file corrupt")); show_local_changes(&new_branch_info->commit->object, &opts->diff_options); } - if (!opts->only_merge_on_switching_branches) - warning(_("'git checkout -b ' is being deprecated in favor of 'git switch -c '. Please adjust your workflow accordingly.")); } else { ret = merge_working_tree(opts, &old_branch_info, new_branch_info, &writeout_error); if (ret) { @@ -1884,7 +1878,6 @@ int cmd_switch(int argc, const char **argv, const char *prefix) opts.accept_ref = 1; opts.accept_pathspec = 0; opts.switch_branch_doing_nothing_is_ok = 0; - opts.only_merge_on_switching_branches = 1; opts.implicit_detach = 0; opts.can_switch_when_in_progress = 0; opts.orphan_from_empty_tree = 1; From 193c35218f59b2943e52b65e1fbfb57db6a8ff6d Mon Sep 17 00:00:00 2001 From: Derrick Stolee Date: Mon, 16 Sep 2019 12:58:06 +0000 Subject: [PATCH 3/4] fixup! Revert "switch: no worktree status unless real branch switch happens" This reverts commit 538420ffd575f1705e9fb764f9d86e5d4d7f25ad. Signed-off-by: Derrick Stolee --- Documentation/config/checkout.txt | 8 -- builtin/.checkout.c.swp | Bin 77824 -> 0 bytes builtin/checkout.c | 133 ++---------------------------- t/t1090-sparse-checkout-scope.sh | 14 ---- 4 files changed, 7 insertions(+), 148 deletions(-) delete mode 100644 builtin/.checkout.c.swp diff --git a/Documentation/config/checkout.txt b/Documentation/config/checkout.txt index d6872ffa83ea5a..6b646813abadc9 100644 --- a/Documentation/config/checkout.txt +++ b/Documentation/config/checkout.txt @@ -16,11 +16,3 @@ will checkout the '' branch on another remote, and by linkgit:git-worktree[1] when 'git worktree add' refers to a remote branch. This setting might be used for other checkout-like commands or functionality in the future. - -checkout.optimizeNewBranch:: - Optimizes the performance of "git checkout -b " when - using sparse-checkout. When set to true, git will not update the - repo based on the current sparse-checkout settings. This means it - will not update the skip-worktree bit in the index nor add/remove - files in the working directory to reflect the current sparse checkout - settings nor will it show the local changes. diff --git a/builtin/.checkout.c.swp b/builtin/.checkout.c.swp deleted file mode 100644 index f6dad4abb02c265ee66b3f6f76d00d59b9b524a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77824 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%0D($Rh0-7;8R*3|qhA%&XMH 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 Ul^dyn{$I$!_h?IFGP36X2Rz^&;s5{u diff --git a/builtin/checkout.c b/builtin/checkout.c index 337cba3337b4e8..0fce9763ffd380 100644 --- a/builtin/checkout.c +++ b/builtin/checkout.c @@ -28,8 +28,6 @@ #include "xdiff-interface.h" #include "packfile.h" -static int checkout_optimize_new_branch; - static const char * const checkout_usage[] = { N_("git checkout [] "), N_("git checkout [] [] -- ..."), @@ -74,11 +72,6 @@ struct checkout_opts { const char *ignore_unmerged_opt; int ignore_unmerged; - /* - * If new checkout options are added, skip_merge_working_tree - * should be updated accordingly. - */ - const char *new_branch; const char *new_branch_force; const char *new_orphan_branch; @@ -647,112 +640,6 @@ static void setup_branch_path(struct branch_info *branch) branch->path = strbuf_detach(&buf, NULL); } -/* - * Skip merging the trees, updating the index and working directory if and - * only if we are creating a new branch via "git checkout -b ." - */ -static int skip_merge_working_tree(const struct checkout_opts *opts, - const struct branch_info *old_branch_info, - const struct branch_info *new_branch_info) -{ - /* - * Do the merge if sparse checkout is on and the user has not opted in - * to the optimized behavior - */ - if (core_sparse_checkout && !checkout_optimize_new_branch) - return 0; - - /* - * We must do the merge if we are actually moving to a new commit. - */ - if (!old_branch_info->commit || !new_branch_info->commit || - !oideq(&old_branch_info->commit->object.oid, - &new_branch_info->commit->object.oid)) - return 0; - - /* - * opts->patch_mode cannot be used with switching branches so is - * not tested here - */ - - /* - * opts->quiet only impacts output so doesn't require a merge - */ - - /* - * Honor the explicit request for a three-way merge or to throw away - * local changes - */ - if (opts->merge || opts->force) - return 0; - - /* - * --detach is documented as "updating the index and the files in the - * working tree" but this optimization skips those steps so fall through - * to the regular code path. - */ - if (opts->force_detach) - return 0; - - /* - * opts->writeout_stage cannot be used with switching branches so is - * not tested here - */ - - /* - * Honor the explicit ignore requests - */ - if (!opts->overwrite_ignore || opts->ignore_skipworktree || - opts->ignore_other_worktrees) - return 0; - - /* - * opts->show_progress only impacts output so doesn't require a merge - */ - - /* - * opts->overlay_mode cannot be used with switching branches so is - * not tested here - */ - - /* - * If we aren't creating a new branch any changes or updates will - * happen in the existing branch. Since that could only be updating - * the index and working directory, we don't want to skip those steps - * or we've defeated any purpose in running the command. - */ - if (!opts->new_branch) - return 0; - - /* - * new_branch_force is defined to "create/reset and checkout a branch" - * so needs to go through the merge to do the reset - */ - if (opts->new_branch_force) - return 0; - - /* - * A new orphaned branch requrires the index and the working tree to be - * adjusted to - */ - if (opts->new_orphan_branch) - return 0; - - /* - * Remaining variables are not checkout options but used to track state - */ - - /* - * Do the merge if this is the initial checkout. We cannot use - * is_cache_unborn() here because the index hasn't been loaded yet - * so cache_nr and timestamp.sec are always zero. - */ - if (!file_exists(get_index_file())) - return 0; - - return 1; -} - static int merge_working_tree(const struct checkout_opts *opts, struct branch_info *old_branch_info, struct branch_info *new_branch_info, @@ -1144,6 +1031,7 @@ static int switch_branches(const struct checkout_opts *opts, void *path_to_free; struct object_id rev; int flag, writeout_error = 0; + int do_merge = 1; trace2_cmd_mode("branch"); @@ -1162,6 +1050,7 @@ static int switch_branches(const struct checkout_opts *opts, BUG("'switch --orphan' should never accept a commit as starting point"); new_branch_info->commit = NULL; new_branch_info->name = "(empty)"; + do_merge = 1; } if (!new_branch_info->name) { @@ -1170,16 +1059,12 @@ static int switch_branches(const struct checkout_opts *opts, if (!new_branch_info->commit) die(_("You are on a branch yet to be born")); parse_commit_or_die(new_branch_info->commit); + + if (opts->only_merge_on_switching_branches) + do_merge = 0; } - /* optimize the "checkout -b path */ - if (skip_merge_working_tree(opts, &old_branch_info, new_branch_info)) { - if (!checkout_optimize_new_branch && !opts->quiet) { - if (read_cache_preload(NULL) < 0) - return error(_("index file corrupt")); - show_local_changes(&new_branch_info->commit->object, &opts->diff_options); - } - } else { + if (do_merge) { ret = merge_working_tree(opts, &old_branch_info, new_branch_info, &writeout_error); if (ret) { free(path_to_free); @@ -1199,11 +1084,6 @@ static int switch_branches(const struct checkout_opts *opts, static int git_checkout_config(const char *var, const char *value, void *cb) { - if (!strcmp(var, "checkout.optimizenewbranch")) { - checkout_optimize_new_branch = git_config_bool(var, value); - return 0; - } - if (!strcmp(var, "diff.ignoresubmodules")) { struct checkout_opts *opts = cb; handle_ignore_submodules_arg(&opts->diff_options, value); @@ -1878,6 +1758,7 @@ int cmd_switch(int argc, const char **argv, const char *prefix) opts.accept_ref = 1; opts.accept_pathspec = 0; opts.switch_branch_doing_nothing_is_ok = 0; + opts.only_merge_on_switching_branches = 1; opts.implicit_detach = 0; opts.can_switch_when_in_progress = 0; opts.orphan_from_empty_tree = 1; diff --git a/t/t1090-sparse-checkout-scope.sh b/t/t1090-sparse-checkout-scope.sh index 62735a6113c980..ac786c7e7af010 100755 --- a/t/t1090-sparse-checkout-scope.sh +++ b/t/t1090-sparse-checkout-scope.sh @@ -31,20 +31,6 @@ test_expect_success 'perform sparse checkout of master' ' test_path_is_file c ' -test_expect_success 'checkout -b checkout.optimizeNewBranch interaction' ' - cp .git/info/sparse-checkout .git/info/sparse-checkout.bak && - test_when_finished " - mv -f .git/info/sparse-checkout.bak .git/info/sparse-checkout - git checkout master - " && - echo "/b" >>.git/info/sparse-checkout && - test "$(git ls-files -t b)" = "S b" && - git -c checkout.optimizeNewBranch=true checkout -b fast && - test "$(git ls-files -t b)" = "S b" && - git checkout -b slow && - test "$(git ls-files -t b)" = "H b" -' - test_expect_success 'merge feature branch into sparse checkout of master' ' git merge feature && test_path_is_file a && From 043dd4781cc67605180527784e9a8695e3afcd8b Mon Sep 17 00:00:00 2001 From: Derrick Stolee Date: Mon, 16 Sep 2019 20:31:05 +0000 Subject: [PATCH 4/4] fixup! Fix reset when using the sparse-checkout feature. --- t/t7114-reset-sparse-checkout.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/t/t7114-reset-sparse-checkout.sh b/t/t7114-reset-sparse-checkout.sh index 8dd88fd46d3938..c46cbdb64e4ebc 100755 --- a/t/t7114-reset-sparse-checkout.sh +++ b/t/t7114-reset-sparse-checkout.sh @@ -24,7 +24,7 @@ test_expect_success 'setup' ' test_expect_success 'reset when there is a sparse-checkout' ' echo "/c" >.git/info/sparse-checkout && test_config core.sparsecheckout true && - git checkout -b resetBranch && + git checkout -B resetBranch && test_path_is_missing m && test_path_is_missing a && test_path_is_missing d && @@ -41,7 +41,7 @@ test_expect_success 'reset after deleting file without skip-worktree bit' ' echo "/c /m" >.git/info/sparse-checkout && test_config core.sparsecheckout true && - git checkout -b resetAfterDelete && + git checkout -B resetAfterDelete && test_path_is_file m && test_path_is_missing a && test_path_is_missing d &&