]> git.ipfire.org Git - thirdparty/git.git/commitdiff
What's cooking (2015/07 #04)
authorJunio C Hamano <gitster@pobox.com>
Mon, 13 Jul 2015 21:36:50 +0000 (14:36 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 13 Jul 2015 21:36:50 +0000 (14:36 -0700)
whats-cooking.txt

index b41afacc9cdd81d36769f02eea527d34ae4fdab4..6eb84610b5b7857c552abe9e327095ca0a5a1b6d 100644 (file)
@@ -1,25 +1,18 @@
 To: git@vger.kernel.org
 Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Jul 2015, #03; Fri, 10)
-X-master-at: e59f6c2d348d465e3147b11098126d3965686098
-X-next-at: 8463c8d6f0c5700d7d5cf215888040724599e56f
+Subject: What's cooking in git.git (Jul 2015, #04; Mon, 13)
+X-master-at: 01977f46cb48e2894e335667eaabce274174ac5e
+X-next-at: 96fd69be6df34ee40ec1cf02764f3ddd6e3f6a83
 
-What's cooking in git.git (Jul 2015, #03; Fri, 10)
+What's cooking in git.git (Jul 2015, #04; Mon, 13)
 --------------------------------------------------
 
 Here are the topics that have been cooking.  Commits prefixed with
 '-' are only in 'pu' (proposed updates) while commits prefixed with
 '+' are in 'next'.
 
-As there is at least one new topic in 2.5-rc that has a real and
-severe breakage, we may need to delay the final by at least a few
-weeks.  Note that when I say "Will merge to 'master'", I am not
-saying if that happens before or after the upcoming release, at
-least not yet ;-).
-
-Projects from GSoC students and Ensimag students have also been a
-pleasure to work with.  I'd have to say that this year is much
-better than some previous years.
+2.5.0-rc2 today, 2.5.0-rc3 next week today.  We'll judge when to end
+the cycle, reviewing what we have, at that point.
 
 You can find the changes described here in the integration branches
 of the repositories listed at
@@ -29,135 +22,211 @@ of the repositories listed at
 --------------------------------------------------
 [Graduated to "master"]
 
-* cb/rebase-am-exit-code (2015-07-08) 1 commit
-  (merged to 'next' on 2015-07-09 at ca9b7e1)
- + rebase: return non-zero error code if format-patch fails
-
- "git rebase" did not exit with failure when format-patch it invoked
- failed for whatever reason.
-
-
-* cb/subtree-tests-update (2015-06-22) 3 commits
-  (merged to 'next' on 2015-06-24 at 31a2938)
- + contrib/subtree: small tidy-up to test
- + contrib/subtree: fix broken &&-chains and revealed test error
- + contrib/subtree: use tabs consitently for indentation in tests
-
- Tests update in contrib/subtree.
+* es/worktree-add (2015-07-12) 24 commits
+  (merged to 'next' on 2015-07-12 at 4926868)
+ + Revert "checkout: retire --ignore-other-worktrees in favor of --force"
+  (merged to 'next' on 2015-07-10 at 304e329)
+ + checkout: retire --ignore-other-worktrees in favor of --force
+ + worktree: add: auto-vivify new branch when <branch> is omitted
+ + worktree: add: make -b/-B default to HEAD when <branch> is omitted
+ + worktree: extract basename computation to new function
+ + checkout: require worktree unconditionally
+ + checkout: retire --to option
+ + tests: worktree: retrofit "checkout --to" tests for "worktree add"
+ + worktree: add -b/-B options
+ + worktree: add --detach option
+ + worktree: add --force option
+ + worktree: introduce "add" command
+ + checkout: drop 'checkout_opts' dependency from prepare_linked_checkout
+ + checkout: make --to unconditionally verbose
+ + checkout: prepare_linked_checkout: drop now-unused 'new' argument
+ + checkout: relocate --to's "no branch specified" check
+ + checkout: fix bug with --to and relative HEAD
+ + Documentation/git-worktree: add EXAMPLES section
+ + Documentation/git-worktree: add high-level 'lock' overview
+ + Documentation/git-worktree: split technical info from general description
+ + Documentation/git-worktree: add BUGS section
+ + Documentation: move linked worktree description from checkout to worktree
+ + Documentation/git-worktree: associate options with commands
+ + Documentation/git-checkout: fix incorrect worktree prune command
+ (this branch is used by es/worktree-add-cleanup; uses nd/multiple-work-trees.)
 
+ Update to the "linked checkout" in 2.5.0-rc1.
 
-* jc/fix-alloc-sortbuf-in-index-pack (2015-07-04) 1 commit
-  (merged to 'next' on 2015-07-06 at c05da06)
- + index-pack: fix allocation of sorted_by_pos array
+ Instead of "checkout --to" that does not do what "checkout"
+ normally does, move the functionality to "git worktree add".
 
- A hotfix for what is in 2.5-rc but not in 2.4.
+ As this makes the end-user experience of the "worktree add" more or
+ less complete, I am tempted to say we should cook the other topic
+ that removes the internal "new-worktree-mode" hack from "checkout"
+ a bit longer in 'next', and release 2.5 final without that one.
 
 
-* jk/fix-refresh-utime (2015-07-08) 1 commit
-  (merged to 'next' on 2015-07-09 at 323b86d)
- + check_and_freshen_file: fix reversed success-check
+* et/http-proxyauth (2015-06-29) 1 commit
+  (merged to 'next' on 2015-07-09 at cf80874)
+ + http: always use any proxy auth method available
 
- Fix a small bug in our use of umask() return value.
+ We used to ask libCURL to use the most secure authentication method
+ available when talking to an HTTP proxy only when we were told to
+ talk to one via configuration variables.  We now ask libCURL to
+ always use the most secure authentication method, because the user
+ can tell libCURL to use an HTTP proxy via an environment variable
+ without using configuration variables.
 
 
-* jk/maint-for-each-packed-object (2015-06-22) 1 commit
-  (merged to 'next' on 2015-06-24 at 162e134)
- + for_each_packed_object: automatically open pack index
- (this branch is used by jk/cat-file-batch-all.)
+* jc/fsck-retire-require-eoh (2015-06-28) 1 commit
+  (merged to 'next' on 2015-07-09 at dbc292b)
+ + fsck: it is OK for a tag and a commit to lack the body
 
- The for_each_packed_object() API function did not iterate over
- objects in a packfile that hasn't been used yet.
+ A fix to a minor regression to "git fsck" in v2.2 era that started
+ complaining about a body-less tag object when it lacks a separator
+ empty line after its header to separate it with a non-existent body.
 
 
-* jk/pretty-encoding-doc (2015-06-17) 1 commit
-  (merged to 'next' on 2015-07-09 at f61edd3)
- + docs: clarify that --encoding can produce invalid sequences
+* jc/unexport-git-pager-in-use-in-pager (2015-07-03) 1 commit
+  (merged to 'next' on 2015-07-09 at bff19cd)
+ + pager: do not leak "GIT_PAGER_IN_USE" to the pager
 
- Doc update.
+ When you say "!<ENTER>" while running say "git log", you'd confuse
+ yourself in the resulting shell, that may look as if you took
+ control back to the original shell you spawned "git log" from but
+ that isn't what is happening.  To that new shell, we leaked
+ GIT_PAGER_IN_USE environment variable that was meant as a local
+ communication between the original "Git" and subprocesses that was
+ spawned by it after we launched the pager, which caused many
+ "interesting" things to happen, e.g. "git diff | cat" still paints
+ its output in color by default.
 
+ Stop leaking that environment variable to the pager's half of the
+ fork; we only need it on "Git" side when we spawn the pager.
 
-* jk/rev-list-no-bitmap-while-pruning (2015-07-01) 1 commit
-  (merged to 'next' on 2015-07-09 at 81d6d1b)
- + rev-list: disable --use-bitmap-index when pruning commits
 
- A minor bugfix when pack bitmap is used with "rev-list --count".
+* js/rebase-i-clean-up-upon-continue-to-skip (2015-06-29) 2 commits
+  (merged to 'next' on 2015-07-09 at b844d9a)
+ + rebase -i: do not leave a CHERRY_PICK_HEAD file behind
+ + t3404: demonstrate CHERRY_PICK_HEAD bug
 
+ Abandoning an already applied change in "git rebase -i" with
+ "--continue" left CHERRY_PICK_HEAD and confused later steps.
 
-* ls/hint-rev-list-count (2015-07-01) 1 commit
-  (merged to 'next' on 2015-07-09 at 84139dc)
- + rev-list: add --count to usage guide
 
+* kb/config-unmap-before-renaming (2015-06-30) 1 commit
+  (merged to 'next' on 2015-07-10 at 6b89478)
+ + config.c: fix writing config files on Windows network shares
 
-* mm/branch-doc-updates (2015-07-06) 2 commits
-  (merged to 'next' on 2015-07-09 at 4b0fa63)
- + Documentation/branch: document -M and -D in terms of --force
- + Documentation/branch: document -d --force and -m --force
+ "git config" failed to update the configuration file when the
+ underlying filesystem is incapable of renaming a file that is still
+ open.
 
 
-* nd/dwim-wildcards-as-pathspecs (2015-07-01) 1 commit
-  (merged to 'next' on 2015-07-09 at a376360)
- + Add tests for wildcard "path vs ref" disambiguation
+* kb/use-nsec-doc (2015-07-01) 1 commit
+  (merged to 'next' on 2015-07-09 at e7e5a05)
+ + Makefile / racy-git.txt: clarify USE_NSEC prerequisites
 
Test updates to a topic already in 2.5-rc.
Clarify in the Makefile a guideline to decide use of USE_NSEC.
 
 
-* rh/test-color-avoid-terminfo-in-original-home (2015-06-17) 2 commits
-  (merged to 'next' on 2015-06-24 at 6af5fa7)
- + test-lib.sh: fix color support when tput needs ~/.terminfo
- + Revert "test-lib.sh: do tests for color support after changing HOME"
+* mh/strbuf-read-file-returns-ssize-t (2015-07-03) 1 commit
+  (merged to 'next' on 2015-07-09 at 0d8544e)
+ + strbuf: strbuf_read_file() should return ssize_t
 
- An ancient test framework enhancement to allow color was not
- entirely correct; this makes it work even when tput needs to read
- from the ~/.terminfo under the user's real HOME directory.
+ Avoid possible ssize_t to int truncation.
 
 
-* sb/p5310-and-chain (2015-06-26) 1 commit
-  (merged to 'next' on 2015-07-09 at c54ee67)
- + p5310: Fix broken && chain in performance test
+* nd/multiple-work-trees (2015-06-29) 2 commits
+  (merged to 'next' on 2015-06-29 at fd4eb60)
+ + worktree: new place for "git prune --worktrees"
+  (merged to 'next' on 2015-06-24 at 7c3f918)
+ + checkout: don't check worktrees when not necessary
+ (this branch is used by es/worktree-add and es/worktree-add-cleanup.)
 
- Code clean-up.
+ "git checkout [<tree-ish>] <paths>" spent unnecessary cycles
+ checking if the current branch was checked out elsewhere, when we
+ know we are not switching the branches ourselves.
 
 
-* tb/checkout-doc (2015-06-17) 1 commit
-  (merged to 'next' on 2015-07-09 at 74226c9)
- + git-checkout.txt: document "git checkout <pathspec>" better
+* ss/clone-guess-dir-name-simplify (2015-07-09) 1 commit
+  (merged to 'next' on 2015-07-10 at 8a62f4d)
+ + clone: simplify string handling in guess_dir_name()
 
Doc update.
Code simplification.
 
 --------------------------------------------------
 [New Topics]
 
-* dt/log-follow-config (2015-07-09) 1 commit
-  (merged to 'next' on 2015-07-10 at b8fbb43)
- + log: add "log.follow" configuration variable
-
- Add a new configuration variable to enable "--follow" automatically
- when "git log" is run with one pathspec argument.
-
- Will merge to 'master'.
-
+* jc/diff-ws-error-highlight (2015-07-12) 1 commit
+  (merged to 'next' on 2015-07-12 at 15b60ce)
+ + diff: parse ws-error-highlight option more strictly
+
+ A hotfix to a new feature in 2.5.0-rc.
+
+
+* es/worktree-add-cleanup (2015-07-13) 17 commits
+ - checkout: drop intimate knowledge of new worktree initial population
+ - worktree: populate via "git reset --hard" rather than "git checkout"
+ - worktree: avoid resolving HEAD unnecessarily
+ - worktree: make setup of new HEAD distinct from worktree population
+ - fixup! worktree: detect branch symref/detach and error conditions locally
+ - worktree: detect branch symref/detach and error conditions locally
+ - worktree: add_worktree: construct worktree-population command locally
+ - worktree: make branch creation distinct from worktree population
+ - worktree: make --detach mutually exclusive with -b/-B
+ - worktree: introduce options container
+ - worktree: simplify new branch (-b/-B) option checking
+ - branch: publish die_if_checked_out()
+ - checkout: generalize die_if_checked_out() branch name argument
+ - checkout: die_if_checked_out: simplify strbuf management
+ - checkout: improve die_if_checked_out() robustness
+ - checkout: name check_linked_checkouts() more meaningfully
+ - checkout: avoid resolving HEAD unnecessarily
+
+ Remove the "new-worktree-mode" hack in "checkout" that was added in
+ nd/multiple-work-trees topic by updating the implementation of new
+ "worktree add".
+
+ Need to look at the fixup! more and then amend it.  After that
+ will think if this should be part of 2.5 final.  My current
+ thinking is we should ship 2.5 with es/worktree-add but not this
+ one, as the end-user experience would not change.
+
+
+* ib/scripted-parse-opt-better-hint-string (2015-07-13) 1 commit
+ - rev-parse --parseopt: allow [*=?!] in argument hints
+
+ The "rev-parse --parseopt" mode parsed the option specification
+ and the argument hint in a strange way to allow '=' and other
+ special characters in the option name while forbidding them from
+ the argument hint.  This made it impossible to define an option
+ like "--pair <key>=<value>" with "pair=key=value" specification,
+ which instead would have defined a "--pair=key <value>" option.
 
-* ss/clone-guess-dir-name-simplify (2015-07-09) 1 commit
-  (merged to 'next' on 2015-07-10 at 8a62f4d)
- + clone: simplify string handling in guess_dir_name()
+ Will merge to 'next'.
 
- Will merge to 'master'.
 
+* mh/fast-import-optimize-current-from (2015-07-13) 1 commit
+ - fast-import: do less work when given "from" matches current branch head
 
-* kn/tag-doc-fix (2015-07-10) 1 commit
- - Documentation/tag: remove double occurance of "<pattern>"
+ Often a fast-import stream builds a new commit on top of the
+ previous commit it built, and it often unconditionally emits a
+ "from" command to specify the first parent, which can be omitted in
+ such a case.  This caused fast-import to forget the tree of the
+ previous commit and then re-read it from scratch, which was
+ inefficient.  Optimize for this common case.
 
  Will merge to 'next'.
 
 
-* se/doc-checkout-ours-theirs (2015-07-10) 1 commit
- - checkout: document subtlety around --ours/--theirs
+* mh/notes-allow-reading-treeish (2015-07-13) 1 commit
+ - notes: allow treeish expressions as notes ref
 
- A "rebase" replays changes of the local branch on top of something
- else, as such they are placed in stage #3 and referred to as
- "theirs", while the changes in the new base, typically a foreign
- work, are placed in stage #2 and referred to as "ours".  Clarify
- the "checkout --ours/--theirs".
+ Some "git notes" operations, e.g. "git log --notes=<note>", should
+ be able to read notes from any tree-ish that is shaped like a notes
+ tree, but the notes infrastructure required that the argument must
+ be a ref under refs/notes/.  Loosen it to require a valid ref only
+ when the operation would update the notes (in which case we must
+ have a place to store the updated notes tree, iow, a ref).
+
+ Needs update to docs.
 
 --------------------------------------------------
 [Stalled]
@@ -354,68 +423,30 @@ of the repositories listed at
 --------------------------------------------------
 [Cooking]
 
-* es/worktree-add (2015-07-07) 23 commits
-  (merged to 'next' on 2015-07-10 at 304e329)
- + checkout: retire --ignore-other-worktrees in favor of --force
- + worktree: add: auto-vivify new branch when <branch> is omitted
- + worktree: add: make -b/-B default to HEAD when <branch> is omitted
- + worktree: extract basename computation to new function
- + checkout: require worktree unconditionally
- + checkout: retire --to option
- + tests: worktree: retrofit "checkout --to" tests for "worktree add"
- + worktree: add -b/-B options
- + worktree: add --detach option
- + worktree: add --force option
- + worktree: introduce "add" command
- + checkout: drop 'checkout_opts' dependency from prepare_linked_checkout
- + checkout: make --to unconditionally verbose
- + checkout: prepare_linked_checkout: drop now-unused 'new' argument
- + checkout: relocate --to's "no branch specified" check
- + checkout: fix bug with --to and relative HEAD
- + Documentation/git-worktree: add EXAMPLES section
- + Documentation/git-worktree: add high-level 'lock' overview
- + Documentation/git-worktree: split technical info from general description
- + Documentation/git-worktree: add BUGS section
- + Documentation: move linked worktree description from checkout to worktree
- + Documentation/git-worktree: associate options with commands
- + Documentation/git-checkout: fix incorrect worktree prune command
- (this branch uses nd/multiple-work-trees.)
-
- Update to the "linked checkout" in 2.5.0-rc1.
+* dt/log-follow-config (2015-07-09) 1 commit
+  (merged to 'next' on 2015-07-10 at b8fbb43)
+ + log: add "log.follow" configuration variable
 
- Instead of "checkout --to" that does not do what "checkout"
normally does, move the functionality to "git worktree add".
+ Add a new configuration variable to enable "--follow" automatically
when "git log" is run with one pathspec argument.
 
  Will merge to 'master'.
 
 
-* jc/unexport-git-pager-in-use-in-pager (2015-07-03) 1 commit
-  (merged to 'next' on 2015-07-09 at bff19cd)
- + pager: do not leak "GIT_PAGER_IN_USE" to the pager
-
- When you say "!<ENTER>" while running say "git log", you'd confuse
- yourself in the resulting shell, that may look as if you took
- control back to the original shell you spawned "git log" from but
- that isn't what is happening.  To that new shell, we leaked
- GIT_PAGER_IN_USE environment variable that was meant as a local
- communication between the original "Git" and subprocesses that was
- spawned by it after we launched the pager, which caused many
- "interesting" things to happen, e.g. "git diff | cat" still paints
- its output in color by default.
-
- Stop leaking that environment variable to the pager's half of the
- fork; we only need it on "Git" side when we spawn the pager.
-
- Will merge to 'master'.
+* kn/tag-doc-fix (2015-07-10) 1 commit
+ - Documentation/tag: remove double occurance of "<pattern>"
 
+ Will merge to 'next'.
 
-* mh/strbuf-read-file-returns-ssize-t (2015-07-03) 1 commit
-  (merged to 'next' on 2015-07-09 at 0d8544e)
- + strbuf: strbuf_read_file() should return ssize_t
 
- Avoid possible ssize_t to int truncation.
+* se/doc-checkout-ours-theirs (2015-07-12) 1 commit
+ - checkout: document subtlety around --ours/--theirs
 
- Will merge to 'master'.
+ A "rebase" replays changes of the local branch on top of something
+ else, as such they are placed in stage #3 and referred to as
+ "theirs", while the changes in the new base, typically a foreign
+ work, are placed in stage #2 and referred to as "ours".  Clarify
+ the "checkout --ours/--theirs".
 
 
 * pt/am-tests (2015-07-07) 12 commits
@@ -437,7 +468,7 @@ of the repositories listed at
  Needs a reroll.
 
 
-* kn/for-each-tag-branch (2015-07-07) 11 commits
+* kn/for-each-tag-branch (2015-07-13) 11 commits
  - for-each-ref: add '--contains' option
  - ref-filter: implement '--contains' option
  - parse-options.h: add macros for '--contains' option
@@ -451,9 +482,7 @@ of the repositories listed at
  - t6302: for-each-ref tests for ref-filter APIs
  (this branch uses kn/for-each-ref.)
 
- Sprinkle a few test prereqs ($gmane/273652)?
-
- Needs a reroll.
+ Was the GPG prereq the only thing that needed fixing?
 
 
 * pt/am-builtin (2015-07-08) 47 commits
@@ -527,13 +556,6 @@ of the repositories listed at
  Will merge to 'master'.
 
 
-* kb/config-unmap-before-renaming (2015-06-30) 1 commit
-  (merged to 'next' on 2015-07-10 at 6b89478)
- + config.c: fix writing config files on Windows network shares
-
- Will merge to 'master'.
-
-
 * mh/fast-import-get-mark (2015-07-01) 1 commit
  - fast-import: add a get-mark command
 
@@ -547,13 +569,6 @@ of the repositories listed at
  Will merge to 'master'.
 
 
-* kb/use-nsec-doc (2015-07-01) 1 commit
-  (merged to 'next' on 2015-07-09 at e7e5a05)
- + Makefile / racy-git.txt: clarify USE_NSEC prerequisites
-
- Will merge to 'master'.
-
-
 * dt/refs-backend-preamble (2015-07-08) 8 commits
  - git-stash: use update-ref --create-reflog instead of creating files
  - update-ref and tag: add --create-reflog arg
@@ -575,33 +590,6 @@ of the repositories listed at
  Will hold.
 
 
-* et/http-proxyauth (2015-06-29) 1 commit
-  (merged to 'next' on 2015-07-09 at cf80874)
- + http: always use any proxy auth method available
-
- We used to ask libCURL to use the most secure authentication method
- available when talking to an HTTP proxy only when we were told to
- talk to one via configuration variables.  We now ask libCURL to
- always use the most secure authentication method, because the user
- can tell libCURL to use an HTTP proxy via an environment variable
- without using configuration variables.
-
- An extra set of eyes appreciated, but I think this is ready.
-
- Will merge to 'master'.
-
-
-* jc/fsck-retire-require-eoh (2015-06-28) 1 commit
-  (merged to 'next' on 2015-07-09 at dbc292b)
- + fsck: it is OK for a tag and a commit to lack the body
-
- A fix to a minor regression to "git fsck" in v2.2 era that started
- complaining about a body-less tag object when it lacks a separator
- empty line after its header to separate it with a non-existent body.
-
- Will merge to 'master'.
-
-
 * jk/date-mode-format (2015-06-29) 3 commits
   (merged to 'next' on 2015-07-09 at a01bfc3)
  + introduce "format" date-mode
@@ -730,17 +718,6 @@ of the repositories listed at
  Will merge to 'master'.
 
 
-* js/rebase-i-clean-up-upon-continue-to-skip (2015-06-29) 2 commits
-  (merged to 'next' on 2015-07-09 at b844d9a)
- + rebase -i: do not leave a CHERRY_PICK_HEAD file behind
- + t3404: demonstrate CHERRY_PICK_HEAD bug
-
- Abandoning an already applied change in "git rebase -i" with
- "--continue" left CHERRY_PICK_HEAD and confused later steps.
-
- Will merge to 'master'.
-
-
 * ak/format-patch-odir-config (2015-06-19) 1 commit
  - format-patch: introduce format.outputDirectory configuration
 
@@ -867,18 +844,6 @@ of the repositories listed at
  other than refs/replace/ for the object replacement data.
 
 
-* nd/multiple-work-trees (2015-06-29) 2 commits
-  (merged to 'next' on 2015-06-29 at fd4eb60)
- + worktree: new place for "git prune --worktrees"
-  (merged to 'next' on 2015-06-24 at 7c3f918)
- + checkout: don't check worktrees when not necessary
- (this branch is used by es/worktree-add.)
-
- "git checkout [<tree-ish>] <paths>" spent unnecessary cycles
- checking if the current branch was checked out elsewhere, when we
- know we are not switching the branches ourselves.
-
-
 * gp/status-rebase-i-info (2015-07-06) 4 commits
   (merged to 'next' on 2015-07-10 at b121298)
  + status: add new tests for status during rebase -i