Ben Peart
fa655d8411
checkout: optimize "git checkout -b <new_branch>"
...
Skip merging the commit, updating the index and working directory if and
only if we are creating a new branch via "git checkout -b <new_branch>."
Any other checkout options will still go through the former code path.
If sparse_checkout is on, require the user to manually opt in to this
optimzed behavior by setting the config setting checkout.optimizeNewBranch
to true as we will no longer update the skip-worktree bit in the index, nor
add/remove files in the working directory to reflect the current sparse
checkout settings.
For comparison, running "git checkout -b <new_branch>" on a large repo takes:
14.6 seconds - without this patch
0.3 seconds - with this patch
Signed-off-by: Ben Peart <Ben.Peart@microsoft.com >
Signed-off-by: Junio C Hamano <gitster@pobox.com >
2018-08-16 11:54:57 -07:00
..
2018-05-30 14:04:05 +09:00
2018-06-25 13:22:38 -07:00
2017-10-06 10:07:18 +09:00
2018-02-08 12:37:30 -08:00
2017-11-13 10:51:14 +09:00
2018-07-24 14:50:51 -07:00
2018-07-18 12:20:31 -07:00
2017-03-21 11:18:41 -07:00
2018-07-18 12:20:28 -07:00
2017-06-15 12:56:22 -07:00
2018-02-12 13:09:35 -08:00
2017-06-15 12:56:22 -07:00
2017-11-15 12:04:57 +09:00
2018-02-09 10:24:50 -08:00
2018-08-16 11:54:57 -07:00
2018-05-29 14:51:28 +09:00
2018-07-24 14:50:47 -07:00
2018-05-13 10:45:05 +09:00
2018-04-11 10:43:02 +09:00
2018-05-16 11:42:03 +09:00
2018-07-18 12:20:28 -07:00
2018-07-24 14:50:46 -07:00
2018-05-02 13:59:49 +09:00
2017-05-30 14:45:03 +09:00
2018-07-18 12:20:28 -07:00
2017-08-03 13:11:02 -07:00
2017-10-07 16:27:55 +09:00
2018-02-14 13:10:05 -08:00
2018-06-25 13:22:36 -07:00
2018-07-18 12:20:28 -07:00
2018-07-18 12:20:28 -07:00
2018-05-08 15:59:16 +09:00
2018-07-24 14:50:44 -07:00
2018-05-16 11:42:03 +09:00
2017-10-04 11:35:29 +09:00
2018-05-30 14:04:10 +09:00
2018-05-30 14:04:05 +09:00
2017-09-27 15:45:24 +09:00
2018-06-22 12:59:02 -07:00
2018-07-18 12:20:28 -07:00
2018-06-01 15:06:37 +09:00
2018-06-13 12:50:46 -07:00
2018-06-01 15:06:40 +09:00
2017-08-26 22:55:04 -07:00
2018-07-18 12:20:29 -07:00
2018-06-01 15:06:38 +09:00
2018-05-23 14:38:15 +09:00
2018-05-16 11:42:03 +09:00
2017-03-21 11:18:41 -07:00
2017-05-08 12:18:19 +09:00
2017-11-15 12:14:32 +09:00
2017-06-15 12:56:22 -07:00
2017-03-26 22:08:21 -07:00
2017-11-09 14:31:27 +09:00
2018-07-18 12:20:28 -07:00
2018-07-18 12:20:28 -07:00
2018-05-16 11:42:03 +09:00
2018-05-16 11:42:03 +09:00
2018-05-30 14:04:05 +09:00
2018-05-21 14:07:20 +09:00
2018-07-18 12:20:28 -07:00
2018-07-18 12:20:30 -07:00
2018-05-02 13:59:50 +09:00
2018-04-12 11:38:56 +09:00
2017-06-15 12:56:22 -07:00
2018-05-02 13:59:49 +09:00
2018-05-18 08:13:10 +09:00
2018-07-18 12:20:28 -07:00
2018-05-18 06:19:44 +09:00
2018-05-10 14:55:40 +09:00
2018-04-26 12:28:43 +09:00
2018-07-24 14:50:48 -07:00
2018-07-18 12:20:28 -07:00
2017-09-22 12:49:57 +09:00
2017-05-30 14:45:04 +09:00
2018-07-18 12:20:28 -07:00
2018-04-16 13:52:29 +09:00
2018-07-18 12:20:28 -07:00
2017-09-14 15:17:59 +09:00
2018-07-18 12:20:28 -07:00
2018-07-18 12:20:30 -07:00
2018-07-18 12:20:28 -07:00
2017-12-13 11:15:14 -08:00
2018-05-30 14:04:05 +09:00
2018-06-28 12:53:30 -07:00
2018-03-15 12:01:08 -07:00
2018-04-10 16:28:20 +09:00
2018-05-21 14:07:20 +09:00
2018-05-29 00:28:22 +09:00
2018-05-16 11:42:03 +09:00
2017-06-15 12:56:22 -07:00
2018-07-18 12:20:31 -07:00
2017-11-06 10:31:08 +09:00
2018-07-18 12:20:28 -07:00
2018-05-16 11:42:03 +09:00
2018-07-18 12:20:28 -07:00
2018-05-30 14:04:07 +09:00
2018-06-04 12:26:01 +09:00
2018-02-09 10:24:50 -08:00
2017-05-30 14:45:04 +09:00
2018-05-08 15:59:16 +09:00
2017-06-15 12:56:22 -07:00
2018-05-16 11:42:03 +09:00
2017-06-15 12:56:22 -07:00
2018-04-09 06:14:45 +09:00
2018-05-23 14:38:18 +09:00
2018-03-14 09:23:47 -07:00