What's cooking (2015/07 #04)

Junio C Hamano committed Jul 13, 2015 at 14:36 UTC 67aed94f7f8ed9e3dd7eca582840121b978d6b10
1 file changed +184 -219
whats-cooking.txt
+184 -219
@@ -1,25 +1,18 @@
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 -Subject: What's cooking in git.git (Jul 2015, #03; Fri, 10)
4 -X-master-at: e59f6c2d348d465e3147b11098126d3965686098
5 -X-next-at: 8463c8d6f0c5700d7d5cf215888040724599e56f
3 +Subject: What's cooking in git.git (Jul 2015, #04; Mon, 13)
4 +X-master-at: 01977f46cb48e2894e335667eaabce274174ac5e
5 +X-next-at: 96fd69be6df34ee40ec1cf02764f3ddd6e3f6a83
6
7 -What's cooking in git.git (Jul 2015, #03; Fri, 10)
7 +What's cooking in git.git (Jul 2015, #04; Mon, 13)
8 --------------------------------------------------
9
10 Here are the topics that have been cooking. Commits prefixed with
11 '-' are only in 'pu' (proposed updates) while commits prefixed with
12 '+' are in 'next'.
13
14 -As there is at least one new topic in 2.5-rc that has a real and
15 -severe breakage, we may need to delay the final by at least a few
16 -weeks. Note that when I say "Will merge to 'master'", I am not
17 -saying if that happens before or after the upcoming release, at
18 -least not yet ;-).
19 -
20 -Projects from GSoC students and Ensimag students have also been a
21 -pleasure to work with. I'd have to say that this year is much
22 -better than some previous years.
14 +2.5.0-rc2 today, 2.5.0-rc3 next week today. We'll judge when to end
15 +the cycle, reviewing what we have, at that point.
16
17 You can find the changes described here in the integration branches
18 of the repositories listed at
@@ -29,135 +22,211 @@ of the repositories listed at
22 --------------------------------------------------
23 [Graduated to "master"]
24
32 -* cb/rebase-am-exit-code (2015-07-08) 1 commit
33 - (merged to 'next' on 2015-07-09 at ca9b7e1)
34 - + rebase: return non-zero error code if format-patch fails
35 -
36 - "git rebase" did not exit with failure when format-patch it invoked
37 - failed for whatever reason.
38 -
39 -
40 -* cb/subtree-tests-update (2015-06-22) 3 commits
41 - (merged to 'next' on 2015-06-24 at 31a2938)
42 - + contrib/subtree: small tidy-up to test
43 - + contrib/subtree: fix broken &&-chains and revealed test error
44 - + contrib/subtree: use tabs consitently for indentation in tests
45 -
46 - Tests update in contrib/subtree.
25 +* es/worktree-add (2015-07-12) 24 commits
26 + (merged to 'next' on 2015-07-12 at 4926868)
27 + + Revert "checkout: retire --ignore-other-worktrees in favor of --force"
28 + (merged to 'next' on 2015-07-10 at 304e329)
29 + + checkout: retire --ignore-other-worktrees in favor of --force
30 + + worktree: add: auto-vivify new branch when <branch> is omitted
31 + + worktree: add: make -b/-B default to HEAD when <branch> is omitted
32 + + worktree: extract basename computation to new function
33 + + checkout: require worktree unconditionally
34 + + checkout: retire --to option
35 + + tests: worktree: retrofit "checkout --to" tests for "worktree add"
36 + + worktree: add -b/-B options
37 + + worktree: add --detach option
38 + + worktree: add --force option
39 + + worktree: introduce "add" command
40 + + checkout: drop 'checkout_opts' dependency from prepare_linked_checkout
41 + + checkout: make --to unconditionally verbose
42 + + checkout: prepare_linked_checkout: drop now-unused 'new' argument
43 + + checkout: relocate --to's "no branch specified" check
44 + + checkout: fix bug with --to and relative HEAD
45 + + Documentation/git-worktree: add EXAMPLES section
46 + + Documentation/git-worktree: add high-level 'lock' overview
47 + + Documentation/git-worktree: split technical info from general description
48 + + Documentation/git-worktree: add BUGS section
49 + + Documentation: move linked worktree description from checkout to worktree
50 + + Documentation/git-worktree: associate options with commands
51 + + Documentation/git-checkout: fix incorrect worktree prune command
52 + (this branch is used by es/worktree-add-cleanup; uses nd/multiple-work-trees.)
53
54 + Update to the "linked checkout" in 2.5.0-rc1.
55
49 -* jc/fix-alloc-sortbuf-in-index-pack (2015-07-04) 1 commit
50 - (merged to 'next' on 2015-07-06 at c05da06)
51 - + index-pack: fix allocation of sorted_by_pos array
56 + Instead of "checkout --to" that does not do what "checkout"
57 + normally does, move the functionality to "git worktree add".
58
53 - A hotfix for what is in 2.5-rc but not in 2.4.
59 + As this makes the end-user experience of the "worktree add" more or
60 + less complete, I am tempted to say we should cook the other topic
61 + that removes the internal "new-worktree-mode" hack from "checkout"
62 + a bit longer in 'next', and release 2.5 final without that one.
63
64
56 -* jk/fix-refresh-utime (2015-07-08) 1 commit
57 - (merged to 'next' on 2015-07-09 at 323b86d)
58 - + check_and_freshen_file: fix reversed success-check
65 +* et/http-proxyauth (2015-06-29) 1 commit
66 + (merged to 'next' on 2015-07-09 at cf80874)
67 + + http: always use any proxy auth method available
68
60 - Fix a small bug in our use of umask() return value.
69 + We used to ask libCURL to use the most secure authentication method
70 + available when talking to an HTTP proxy only when we were told to
71 + talk to one via configuration variables. We now ask libCURL to
72 + always use the most secure authentication method, because the user
73 + can tell libCURL to use an HTTP proxy via an environment variable
74 + without using configuration variables.
75
76
63 -* jk/maint-for-each-packed-object (2015-06-22) 1 commit
64 - (merged to 'next' on 2015-06-24 at 162e134)
65 - + for_each_packed_object: automatically open pack index
66 - (this branch is used by jk/cat-file-batch-all.)
77 +* jc/fsck-retire-require-eoh (2015-06-28) 1 commit
78 + (merged to 'next' on 2015-07-09 at dbc292b)
79 + + fsck: it is OK for a tag and a commit to lack the body
80
68 - The for_each_packed_object() API function did not iterate over
69 - objects in a packfile that hasn't been used yet.
81 + A fix to a minor regression to "git fsck" in v2.2 era that started
82 + complaining about a body-less tag object when it lacks a separator
83 + empty line after its header to separate it with a non-existent body.
84
85
72 -* jk/pretty-encoding-doc (2015-06-17) 1 commit
73 - (merged to 'next' on 2015-07-09 at f61edd3)
74 - + docs: clarify that --encoding can produce invalid sequences
86 +* jc/unexport-git-pager-in-use-in-pager (2015-07-03) 1 commit
87 + (merged to 'next' on 2015-07-09 at bff19cd)
88 + + pager: do not leak "GIT_PAGER_IN_USE" to the pager
89
76 - Doc update.
90 + When you say "!<ENTER>" while running say "git log", you'd confuse
91 + yourself in the resulting shell, that may look as if you took
92 + control back to the original shell you spawned "git log" from but
93 + that isn't what is happening. To that new shell, we leaked
94 + GIT_PAGER_IN_USE environment variable that was meant as a local
95 + communication between the original "Git" and subprocesses that was
96 + spawned by it after we launched the pager, which caused many
97 + "interesting" things to happen, e.g. "git diff | cat" still paints
98 + its output in color by default.
99
100 + Stop leaking that environment variable to the pager's half of the
101 + fork; we only need it on "Git" side when we spawn the pager.
102
79 -* jk/rev-list-no-bitmap-while-pruning (2015-07-01) 1 commit
80 - (merged to 'next' on 2015-07-09 at 81d6d1b)
81 - + rev-list: disable --use-bitmap-index when pruning commits
103
83 - A minor bugfix when pack bitmap is used with "rev-list --count".
104 +* js/rebase-i-clean-up-upon-continue-to-skip (2015-06-29) 2 commits
105 + (merged to 'next' on 2015-07-09 at b844d9a)
106 + + rebase -i: do not leave a CHERRY_PICK_HEAD file behind
107 + + t3404: demonstrate CHERRY_PICK_HEAD bug
108
109 + Abandoning an already applied change in "git rebase -i" with
110 + "--continue" left CHERRY_PICK_HEAD and confused later steps.
111
86 -* ls/hint-rev-list-count (2015-07-01) 1 commit
87 - (merged to 'next' on 2015-07-09 at 84139dc)
88 - + rev-list: add --count to usage guide
112
113 +* kb/config-unmap-before-renaming (2015-06-30) 1 commit
114 + (merged to 'next' on 2015-07-10 at 6b89478)
115 + + config.c: fix writing config files on Windows network shares
116
91 -* mm/branch-doc-updates (2015-07-06) 2 commits
92 - (merged to 'next' on 2015-07-09 at 4b0fa63)
93 - + Documentation/branch: document -M and -D in terms of --force
94 - + Documentation/branch: document -d --force and -m --force
117 + "git config" failed to update the configuration file when the
118 + underlying filesystem is incapable of renaming a file that is still
119 + open.
120
121
97 -* nd/dwim-wildcards-as-pathspecs (2015-07-01) 1 commit
98 - (merged to 'next' on 2015-07-09 at a376360)
99 - + Add tests for wildcard "path vs ref" disambiguation
122 +* kb/use-nsec-doc (2015-07-01) 1 commit
123 + (merged to 'next' on 2015-07-09 at e7e5a05)
124 + + Makefile / racy-git.txt: clarify USE_NSEC prerequisites
125
101 - Test updates to a topic already in 2.5-rc.
126 + Clarify in the Makefile a guideline to decide use of USE_NSEC.
127
128
104 -* rh/test-color-avoid-terminfo-in-original-home (2015-06-17) 2 commits
105 - (merged to 'next' on 2015-06-24 at 6af5fa7)
106 - + test-lib.sh: fix color support when tput needs ~/.terminfo
107 - + Revert "test-lib.sh: do tests for color support after changing HOME"
129 +* mh/strbuf-read-file-returns-ssize-t (2015-07-03) 1 commit
130 + (merged to 'next' on 2015-07-09 at 0d8544e)
131 + + strbuf: strbuf_read_file() should return ssize_t
132
109 - An ancient test framework enhancement to allow color was not
110 - entirely correct; this makes it work even when tput needs to read
111 - from the ~/.terminfo under the user's real HOME directory.
133 + Avoid possible ssize_t to int truncation.
134
135
114 -* sb/p5310-and-chain (2015-06-26) 1 commit
115 - (merged to 'next' on 2015-07-09 at c54ee67)
116 - + p5310: Fix broken && chain in performance test
136 +* nd/multiple-work-trees (2015-06-29) 2 commits
137 + (merged to 'next' on 2015-06-29 at fd4eb60)
138 + + worktree: new place for "git prune --worktrees"
139 + (merged to 'next' on 2015-06-24 at 7c3f918)
140 + + checkout: don't check worktrees when not necessary
141 + (this branch is used by es/worktree-add and es/worktree-add-cleanup.)
142
118 - Code clean-up.
143 + "git checkout [<tree-ish>] <paths>" spent unnecessary cycles
144 + checking if the current branch was checked out elsewhere, when we
145 + know we are not switching the branches ourselves.
146
147
121 -* tb/checkout-doc (2015-06-17) 1 commit
122 - (merged to 'next' on 2015-07-09 at 74226c9)
123 - + git-checkout.txt: document "git checkout <pathspec>" better
148 +* ss/clone-guess-dir-name-simplify (2015-07-09) 1 commit
149 + (merged to 'next' on 2015-07-10 at 8a62f4d)
150 + + clone: simplify string handling in guess_dir_name()
151
125 - Doc update.
152 + Code simplification.
153
154 --------------------------------------------------
155 [New Topics]
156
130 -* dt/log-follow-config (2015-07-09) 1 commit
131 - (merged to 'next' on 2015-07-10 at b8fbb43)
132 - + log: add "log.follow" configuration variable
133 -
134 - Add a new configuration variable to enable "--follow" automatically
135 - when "git log" is run with one pathspec argument.
136 -
137 - Will merge to 'master'.
138 -
157 +* jc/diff-ws-error-highlight (2015-07-12) 1 commit
158 + (merged to 'next' on 2015-07-12 at 15b60ce)
159 + + diff: parse ws-error-highlight option more strictly
160 +
161 + A hotfix to a new feature in 2.5.0-rc.
162 +
163 +
164 +* es/worktree-add-cleanup (2015-07-13) 17 commits
165 + - checkout: drop intimate knowledge of new worktree initial population
166 + - worktree: populate via "git reset --hard" rather than "git checkout"
167 + - worktree: avoid resolving HEAD unnecessarily
168 + - worktree: make setup of new HEAD distinct from worktree population
169 + - fixup! worktree: detect branch symref/detach and error conditions locally
170 + - worktree: detect branch symref/detach and error conditions locally
171 + - worktree: add_worktree: construct worktree-population command locally
172 + - worktree: make branch creation distinct from worktree population
173 + - worktree: make --detach mutually exclusive with -b/-B
174 + - worktree: introduce options container
175 + - worktree: simplify new branch (-b/-B) option checking
176 + - branch: publish die_if_checked_out()
177 + - checkout: generalize die_if_checked_out() branch name argument
178 + - checkout: die_if_checked_out: simplify strbuf management
179 + - checkout: improve die_if_checked_out() robustness
180 + - checkout: name check_linked_checkouts() more meaningfully
181 + - checkout: avoid resolving HEAD unnecessarily
182 +
183 + Remove the "new-worktree-mode" hack in "checkout" that was added in
184 + nd/multiple-work-trees topic by updating the implementation of new
185 + "worktree add".
186 +
187 + Need to look at the fixup! more and then amend it. After that
188 + will think if this should be part of 2.5 final. My current
189 + thinking is we should ship 2.5 with es/worktree-add but not this
190 + one, as the end-user experience would not change.
191 +
192 +
193 +* ib/scripted-parse-opt-better-hint-string (2015-07-13) 1 commit
194 + - rev-parse --parseopt: allow [*=?!] in argument hints
195 +
196 + The "rev-parse --parseopt" mode parsed the option specification
197 + and the argument hint in a strange way to allow '=' and other
198 + special characters in the option name while forbidding them from
199 + the argument hint. This made it impossible to define an option
200 + like "--pair <key>=<value>" with "pair=key=value" specification,
201 + which instead would have defined a "--pair=key <value>" option.
202
140 -* ss/clone-guess-dir-name-simplify (2015-07-09) 1 commit
141 - (merged to 'next' on 2015-07-10 at 8a62f4d)
142 - + clone: simplify string handling in guess_dir_name()
203 + Will merge to 'next'.
204
144 - Will merge to 'master'.
205
206 +* mh/fast-import-optimize-current-from (2015-07-13) 1 commit
207 + - fast-import: do less work when given "from" matches current branch head
208
147 -* kn/tag-doc-fix (2015-07-10) 1 commit
148 - - Documentation/tag: remove double occurance of "<pattern>"
209 + Often a fast-import stream builds a new commit on top of the
210 + previous commit it built, and it often unconditionally emits a
211 + "from" command to specify the first parent, which can be omitted in
212 + such a case. This caused fast-import to forget the tree of the
213 + previous commit and then re-read it from scratch, which was
214 + inefficient. Optimize for this common case.
215
216 Will merge to 'next'.
217
218
153 -* se/doc-checkout-ours-theirs (2015-07-10) 1 commit
154 - - checkout: document subtlety around --ours/--theirs
219 +* mh/notes-allow-reading-treeish (2015-07-13) 1 commit
220 + - notes: allow treeish expressions as notes ref
221
156 - A "rebase" replays changes of the local branch on top of something
157 - else, as such they are placed in stage #3 and referred to as
158 - "theirs", while the changes in the new base, typically a foreign
159 - work, are placed in stage #2 and referred to as "ours". Clarify
160 - the "checkout --ours/--theirs".
222 + Some "git notes" operations, e.g. "git log --notes=<note>", should
223 + be able to read notes from any tree-ish that is shaped like a notes
224 + tree, but the notes infrastructure required that the argument must
225 + be a ref under refs/notes/. Loosen it to require a valid ref only
226 + when the operation would update the notes (in which case we must
227 + have a place to store the updated notes tree, iow, a ref).
228 +
229 + Needs update to docs.
230
231 --------------------------------------------------
232 [Stalled]
@@ -354,68 +423,30 @@ of the repositories listed at
423 --------------------------------------------------
424 [Cooking]
425
357 -* es/worktree-add (2015-07-07) 23 commits
358 - (merged to 'next' on 2015-07-10 at 304e329)
359 - + checkout: retire --ignore-other-worktrees in favor of --force
360 - + worktree: add: auto-vivify new branch when <branch> is omitted
361 - + worktree: add: make -b/-B default to HEAD when <branch> is omitted
362 - + worktree: extract basename computation to new function
363 - + checkout: require worktree unconditionally
364 - + checkout: retire --to option
365 - + tests: worktree: retrofit "checkout --to" tests for "worktree add"
366 - + worktree: add -b/-B options
367 - + worktree: add --detach option
368 - + worktree: add --force option
369 - + worktree: introduce "add" command
370 - + checkout: drop 'checkout_opts' dependency from prepare_linked_checkout
371 - + checkout: make --to unconditionally verbose
372 - + checkout: prepare_linked_checkout: drop now-unused 'new' argument
373 - + checkout: relocate --to's "no branch specified" check
374 - + checkout: fix bug with --to and relative HEAD
375 - + Documentation/git-worktree: add EXAMPLES section
376 - + Documentation/git-worktree: add high-level 'lock' overview
377 - + Documentation/git-worktree: split technical info from general description
378 - + Documentation/git-worktree: add BUGS section
379 - + Documentation: move linked worktree description from checkout to worktree
380 - + Documentation/git-worktree: associate options with commands
381 - + Documentation/git-checkout: fix incorrect worktree prune command
382 - (this branch uses nd/multiple-work-trees.)
383 -
384 - Update to the "linked checkout" in 2.5.0-rc1.
426 +* dt/log-follow-config (2015-07-09) 1 commit
427 + (merged to 'next' on 2015-07-10 at b8fbb43)
428 + + log: add "log.follow" configuration variable
429
386 - Instead of "checkout --to" that does not do what "checkout"
387 - normally does, move the functionality to "git worktree add".
430 + Add a new configuration variable to enable "--follow" automatically
431 + when "git log" is run with one pathspec argument.
432
433 Will merge to 'master'.
434
435
392 -* jc/unexport-git-pager-in-use-in-pager (2015-07-03) 1 commit
393 - (merged to 'next' on 2015-07-09 at bff19cd)
394 - + pager: do not leak "GIT_PAGER_IN_USE" to the pager
395 -
396 - When you say "!<ENTER>" while running say "git log", you'd confuse
397 - yourself in the resulting shell, that may look as if you took
398 - control back to the original shell you spawned "git log" from but
399 - that isn't what is happening. To that new shell, we leaked
400 - GIT_PAGER_IN_USE environment variable that was meant as a local
401 - communication between the original "Git" and subprocesses that was
402 - spawned by it after we launched the pager, which caused many
403 - "interesting" things to happen, e.g. "git diff | cat" still paints
404 - its output in color by default.
405 -
406 - Stop leaking that environment variable to the pager's half of the
407 - fork; we only need it on "Git" side when we spawn the pager.
408 -
409 - Will merge to 'master'.
436 +* kn/tag-doc-fix (2015-07-10) 1 commit
437 + - Documentation/tag: remove double occurance of "<pattern>"
438
439 + Will merge to 'next'.
440
412 -* mh/strbuf-read-file-returns-ssize-t (2015-07-03) 1 commit
413 - (merged to 'next' on 2015-07-09 at 0d8544e)
414 - + strbuf: strbuf_read_file() should return ssize_t
441
416 - Avoid possible ssize_t to int truncation.
442 +* se/doc-checkout-ours-theirs (2015-07-12) 1 commit
443 + - checkout: document subtlety around --ours/--theirs
444
418 - Will merge to 'master'.
445 + A "rebase" replays changes of the local branch on top of something
446 + else, as such they are placed in stage #3 and referred to as
447 + "theirs", while the changes in the new base, typically a foreign
448 + work, are placed in stage #2 and referred to as "ours". Clarify
449 + the "checkout --ours/--theirs".
450
451
452 * pt/am-tests (2015-07-07) 12 commits
@@ -437,7 +468,7 @@ of the repositories listed at
468 Needs a reroll.
469
470
440 -* kn/for-each-tag-branch (2015-07-07) 11 commits
471 +* kn/for-each-tag-branch (2015-07-13) 11 commits
472 - for-each-ref: add '--contains' option
473 - ref-filter: implement '--contains' option
474 - parse-options.h: add macros for '--contains' option
@@ -451,9 +482,7 @@ of the repositories listed at
482 - t6302: for-each-ref tests for ref-filter APIs
483 (this branch uses kn/for-each-ref.)
484
454 - Sprinkle a few test prereqs ($gmane/273652)?
455 -
456 - Needs a reroll.
485 + Was the GPG prereq the only thing that needed fixing?
486
487
488 * pt/am-builtin (2015-07-08) 47 commits
@@ -527,13 +556,6 @@ of the repositories listed at
556 Will merge to 'master'.
557
558
530 -* kb/config-unmap-before-renaming (2015-06-30) 1 commit
531 - (merged to 'next' on 2015-07-10 at 6b89478)
532 - + config.c: fix writing config files on Windows network shares
533 -
534 - Will merge to 'master'.
535 -
536 -
559 * mh/fast-import-get-mark (2015-07-01) 1 commit
560 - fast-import: add a get-mark command
561
@@ -547,13 +569,6 @@ of the repositories listed at
569 Will merge to 'master'.
570
571
550 -* kb/use-nsec-doc (2015-07-01) 1 commit
551 - (merged to 'next' on 2015-07-09 at e7e5a05)
552 - + Makefile / racy-git.txt: clarify USE_NSEC prerequisites
553 -
554 - Will merge to 'master'.
555 -
556 -
572 * dt/refs-backend-preamble (2015-07-08) 8 commits
573 - git-stash: use update-ref --create-reflog instead of creating files
574 - update-ref and tag: add --create-reflog arg
@@ -575,33 +590,6 @@ of the repositories listed at
590 Will hold.
591
592
578 -* et/http-proxyauth (2015-06-29) 1 commit
579 - (merged to 'next' on 2015-07-09 at cf80874)
580 - + http: always use any proxy auth method available
581 -
582 - We used to ask libCURL to use the most secure authentication method
583 - available when talking to an HTTP proxy only when we were told to
584 - talk to one via configuration variables. We now ask libCURL to
585 - always use the most secure authentication method, because the user
586 - can tell libCURL to use an HTTP proxy via an environment variable
587 - without using configuration variables.
588 -
589 - An extra set of eyes appreciated, but I think this is ready.
590 -
591 - Will merge to 'master'.
592 -
593 -
594 -* jc/fsck-retire-require-eoh (2015-06-28) 1 commit
595 - (merged to 'next' on 2015-07-09 at dbc292b)
596 - + fsck: it is OK for a tag and a commit to lack the body
597 -
598 - A fix to a minor regression to "git fsck" in v2.2 era that started
599 - complaining about a body-less tag object when it lacks a separator
600 - empty line after its header to separate it with a non-existent body.
601 -
602 - Will merge to 'master'.
603 -
604 -
593 * jk/date-mode-format (2015-06-29) 3 commits
594 (merged to 'next' on 2015-07-09 at a01bfc3)
595 + introduce "format" date-mode
@@ -730,17 +718,6 @@ of the repositories listed at
718 Will merge to 'master'.
719
720
733 -* js/rebase-i-clean-up-upon-continue-to-skip (2015-06-29) 2 commits
734 - (merged to 'next' on 2015-07-09 at b844d9a)
735 - + rebase -i: do not leave a CHERRY_PICK_HEAD file behind
736 - + t3404: demonstrate CHERRY_PICK_HEAD bug
737 -
738 - Abandoning an already applied change in "git rebase -i" with
739 - "--continue" left CHERRY_PICK_HEAD and confused later steps.
740 -
741 - Will merge to 'master'.
742 -
743 -
721 * ak/format-patch-odir-config (2015-06-19) 1 commit
722 - format-patch: introduce format.outputDirectory configuration
723
@@ -867,18 +844,6 @@ of the repositories listed at
844 other than refs/replace/ for the object replacement data.
845
846
870 -* nd/multiple-work-trees (2015-06-29) 2 commits
871 - (merged to 'next' on 2015-06-29 at fd4eb60)
872 - + worktree: new place for "git prune --worktrees"
873 - (merged to 'next' on 2015-06-24 at 7c3f918)
874 - + checkout: don't check worktrees when not necessary
875 - (this branch is used by es/worktree-add.)
876 -
877 - "git checkout [<tree-ish>] <paths>" spent unnecessary cycles
878 - checking if the current branch was checked out elsewhere, when we
879 - know we are not switching the branches ourselves.
880 -
881 -
847 * gp/status-rebase-i-info (2015-07-06) 4 commits
848 (merged to 'next' on 2015-07-10 at b121298)
849 + status: add new tests for status during rebase -i