From: Junio C Hamano Date: Mon, 20 Jul 2015 23:17:44 +0000 (-0700) Subject: What's cooking (2015/07 #05) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4071fba232bba6211f7f3b7fa4f0dea5313c32cc;p=thirdparty%2Fgit.git What's cooking (2015/07 #05) --- diff --git a/whats-cooking.txt b/whats-cooking.txt index 6eb84610b5..2aa0f18ac4 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,158 +1,87 @@ To: git@vger.kernel.org Bcc: lwn@lwn.net -Subject: What's cooking in git.git (Jul 2015, #04; Mon, 13) -X-master-at: 01977f46cb48e2894e335667eaabce274174ac5e -X-next-at: 96fd69be6df34ee40ec1cf02764f3ddd6e3f6a83 +Subject: What's cooking in git.git (Jul 2015, #05; Mon, 20) +X-master-at: fbdeabf1f0992e41237caee8fc357849e0038a82 +X-next-at: 76e840bed084a99e9de166e429c25bc0b2d6a698 -What's cooking in git.git (Jul 2015, #04; Mon, 13) +What's cooking in git.git (Jul 2015, #05; Mon, 20) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with '-' are only in 'pu' (proposed updates) while commits prefixed with '+' are in 'next'. -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 http://git-blame.blogspot.com/p/git-public-repositories.html -------------------------------------------------- -[Graduated to "master"] - -* 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 is omitted - + worktree: add: make -b/-B default to HEAD when 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. - - Instead of "checkout --to" that does not do what "checkout" - normally does, move the functionality to "git worktree add". - - 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. - - -* 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. - - -* 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. +[New Topics] +* zb/userdiff-fountain (2015-07-17) 1 commit + - userdiff: add support for Fountain documents -* 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 + New userdiff pattern definition for fountain screenwriting markup + format. - When you say "!" 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. + Needs another reroll? ($gmane/274354) - 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. +* as/sparse-checkout-removal (2015-07-17) 1 commit + - unpack-trees: don't update files with CE_WT_REMOVE set -* 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 + Duy's replacement needs to be applied ($gmane/274158). - Abandoning an already applied change in "git rebase -i" with - "--continue" left CHERRY_PICK_HEAD and confused later steps. +* cb/uname-in-untracked (2015-07-17) 1 commit + - untracked: fix detection of uname(2) failure -* 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 + An experimental "untracked cache" feature used to use uname(2) in a + slightly unportable way. - "git config" failed to update the configuration file when the - underlying filesystem is incapable of renaming a file that is still - open. + Will merge to 'next'. -* 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 +* jc/rerere-multi (2015-07-20) 5 commits + - t4200: rerere a merge with two identical conflicts + - rerere: delay the recording of preimage for the first time + - rerere: handle leftover rr-cache/$ID directory and postimage files + - rerere: scan $GIT_DIR/rr-cache/$ID when instantiating a rerere_id + - rerere: split conflict ID further + (this branch uses jc/rerere.) - Clarify in the Makefile a guideline to decide use of USE_NSEC. + This is a contination of jc/rerere topic. -* 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 +* bw/portability-solaris (2015-07-20) 3 commits + - tests: fix sed usage in tests to work around broken xpg4/sed on Solaris + - tests: fix sed usage in tests to work around broken xpg4/sed on Solaris + - tests: modify tr expressions so that xpg4/tr handles it on Solaris - Avoid possible ssize_t to int truncation. + Needs another reroll? ($gmane/274296) -* 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.) +* es/worktree-add (2015-07-20) 5 commits + (merged to 'next' on 2015-07-20 at 76e840b) + + config: rename "gc.pruneWorktreesExpire" to "gc.worktreePruneExpire" + + Documentation/git-worktree: wordsmith worktree-related manpages + + Documentation/config: fix stale "git prune --worktree" reference + + Documentation/git-worktree: fix incorrect reference to file "locked" + + Documentation/git-worktree: consistently use term "linked working tree" + (this branch is used by es/worktree-add-cleanup.) - "git checkout [] " spent unnecessary cycles - checking if the current branch was checked out elsewhere, when we - know we are not switching the branches ourselves. + Will merge to 'master'. -* 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() +* sg/bash-prompt-untracked-optim (2015-07-20) 2 commits + - bash prompt: faster untracked status indicator with untracked directories + - bash prompt: test untracked files status indicator with untracked dirs - Code simplification. + Will merge to 'next'. -------------------------------------------------- -[New Topics] +[Graduated to "master"] * jc/diff-ws-error-highlight (2015-07-12) 1 commit (merged to 'next' on 2015-07-12 at 15b60ce) @@ -161,72 +90,13 @@ of the repositories listed at 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 =" with "pair=key=value" specification, - which instead would have defined a "--pair=key " option. - - Will merge to 'next'. - - -* mh/fast-import-optimize-current-from (2015-07-13) 1 commit - - fast-import: do less work when given "from" matches current branch head - - 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'. - - -* mh/notes-allow-reading-treeish (2015-07-13) 1 commit - - notes: allow treeish expressions as notes ref +* jk/still-interesting (2015-06-29) 1 commit + (merged to 'next' on 2015-07-09 at e19fc0e) + + revision.c: remove unneeded check for NULL - Some "git notes" operations, e.g. "git log --notes=", 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). + Code clean-up. - Needs update to docs. + Will merge to 'master'. -------------------------------------------------- [Stalled] @@ -423,6 +293,79 @@ of the repositories listed at -------------------------------------------------- [Cooking] +* es/worktree-add-cleanup (2015-07-20) 22 commits + - checkout: drop intimate knowledge of newly created worktree + - 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 + - worktree: detect branch-name/detached and error conditions locally + - worktree: add_worktree: construct worktree-population command locally + - worktree: elucidate environment variables intended for child processes + - worktree: make branch creation distinct from worktree population + - worktree: add: suppress auto-vivication with --detach and no + - worktree: make --detach mutually exclusive with -b/-B + - worktree: introduce options container + - worktree: simplify new branch (-b/-B) option checking + - worktree: improve worktree setup message + - branch: publish die_if_checked_out() + - checkout: teach check_linked_checkout() about symbolic link HEAD + - checkout: check_linked_checkout: simplify symref parsing + - checkout: check_linked_checkout: improve "already checked out" aesthetic + - 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 + (this branch uses es/worktree-add.) + + 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". + + Will merge to 'next'. + + +* ib/scripted-parse-opt-better-hint-string (2015-07-15) 1 commit + (merged to 'next' on 2015-07-17 at 7bb1674) + + 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 =" with "pair=key=value" specification, + which instead would have defined a "--pair=key " option. + + Will merge to 'master'. + + +* mh/fast-import-optimize-current-from (2015-07-13) 1 commit + (merged to 'next' on 2015-07-15 at 2be8b1f) + + fast-import: do less work when given "from" matches current branch head + + 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 'master'. + + +* mh/notes-allow-reading-treeish (2015-07-13) 1 commit + - notes: allow treeish expressions as notes ref + + Some "git notes" operations, e.g. "git log --notes=", 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. + + * dt/log-follow-config (2015-07-09) 1 commit (merged to 'next' on 2015-07-10 at b8fbb43) + log: add "log.follow" configuration variable @@ -434,9 +377,10 @@ of the repositories listed at * kn/tag-doc-fix (2015-07-10) 1 commit - - Documentation/tag: remove double occurance of "" + (merged to 'next' on 2015-07-15 at 7bd6038) + + Documentation/tag: remove double occurance of "" - Will merge to 'next'. + Will merge to 'master'. * se/doc-checkout-ours-theirs (2015-07-12) 1 commit @@ -449,7 +393,7 @@ of the repositories listed at the "checkout --ours/--theirs". -* pt/am-tests (2015-07-07) 12 commits +* pt/am-tests (2015-07-20) 12 commits - t3901: test git-am encoding conversion - t3418: non-interactive rebase --continue with rerere enabled - t4150: tests for am --[no-]scissors @@ -463,29 +407,33 @@ of the repositories listed at - t4150: am fails if index is dirty - t4150: am.messageid really adds the message id - Sprinkle a few test prereqs ($gmane/273709)? - - Needs a reroll. + Will merge to 'next'. * 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 - - parse-option: rename parse_opt_with_commit() - - for-each-ref: add '--merged' and '--no-merged' options - - ref-filter: implement '--merged' and '--no-merged' options - - ref-filter: add parse_opt_merge_filter() - - for-each-ref: add '--points-at' option - - ref-filter: implement '--points-at' option - - tag: libify parse_opt_points_at() - - t6302: for-each-ref tests for ref-filter APIs + (merged to 'next' on 2015-07-15 at bf5418f) + + for-each-ref: add '--contains' option + + ref-filter: implement '--contains' option + + parse-options.h: add macros for '--contains' option + + parse-option: rename parse_opt_with_commit() + + for-each-ref: add '--merged' and '--no-merged' options + + ref-filter: implement '--merged' and '--no-merged' options + + ref-filter: add parse_opt_merge_filter() + + for-each-ref: add '--points-at' option + + ref-filter: implement '--points-at' option + + tag: libify parse_opt_points_at() + + t6302: for-each-ref tests for ref-filter APIs (this branch uses kn/for-each-ref.) - Was the GPG prereq the only thing that needed fixing? + Port features over from tag -l and branch -l to for-each-ref + so that eventually the unified implementation can be used to + reimplement tag -l and branch -l, shared across all three, in + a follow-up series or two. + + Will merge to 'master'. -* pt/am-builtin (2015-07-08) 47 commits +* pt/am-builtin (2015-07-20) 46 commits - builtin-am: remove redirection to git-am.sh - builtin-am: check for valid committer ident - builtin-am: implement legacy -b/--binary option @@ -509,7 +457,6 @@ of the repositories listed at - builtin-am: implement -k/--keep, --keep-non-patch - builtin-am: implement -u/--utf8 - builtin-am: handle stray state directory - - fixup! builtin-am: bypass git-mailinfo when --rebasing - builtin-am: bypass git-mailinfo when --rebasing - builtin-am: implement --rebasing mode - builtin-am: implement --3way, am.threeWay @@ -520,11 +467,11 @@ of the repositories listed at - builtin-am: reject patches when there's a session in progress - builtin-am: implement --abort - builtin-am: implement --skip + - builtin-am: don't parse mail when resuming - builtin-am: implement --resolved/--continue - builtin-am: refuse to apply patches if index is dirty - builtin-am: implement committing applied patch - builtin-am: apply patch with git-apply - - fixup! builtin-am: extract patch and commit info with git-mailinfo - builtin-am: extract patch and commit info with git-mailinfo - builtin-am: auto-detect mbox patches - builtin-am: split out mbox/maildir patches with git-mailsplit @@ -537,9 +484,6 @@ of the repositories listed at Rewrite "am" in "C". - Looks more-or-less ready. Any reroll needed other than squashing - these fixup! in? - * ad/bisect-cleanup (2015-06-29) 6 commits (merged to 'next' on 2015-07-09 at 75e2a06) @@ -557,9 +501,10 @@ of the repositories listed at * mh/fast-import-get-mark (2015-07-01) 1 commit - - fast-import: add a get-mark command + (merged to 'next' on 2015-07-15 at 5e034b9) + + fast-import: add a get-mark command - Will merge to 'next'. + Will merge to 'master'. * kb/i18n-doc (2015-07-01) 1 commit @@ -569,14 +514,13 @@ of the repositories listed at Will merge to 'master'. -* dt/refs-backend-preamble (2015-07-08) 8 commits +* dt/refs-backend-preamble (2015-07-13) 7 commits - git-stash: use update-ref --create-reflog instead of creating files - update-ref and tag: add --create-reflog arg + - refs: add REF_FORCE_CREATE_REFLOG flag - git-reflog: add exists command - refs: new public ref function: safe_create_reflog - refs: Break out check for reflog autocreation - - bisect: treat BISECT_HEAD as a ref - - cherry-pick: treat CHERRY_PICK_HEAD and REVERT_HEAD as refs - refs.c: add err arguments to reflog functions In preparation for allowing different "backends" to store the refs @@ -602,15 +546,6 @@ of the repositories listed at Will merge to 'master'. -* jk/still-interesting (2015-06-29) 1 commit - (merged to 'next' on 2015-07-09 at e19fc0e) - + revision.c: remove unneeded check for NULL - - Code clean-up. - - Will merge to 'master'. - - * nd/export-worktree (2015-06-26) 1 commit (merged to 'next' on 2015-07-09 at 1581a9b) + setup: set env $GIT_WORK_TREE when work tree is set, like $GIT_DIR @@ -621,10 +556,9 @@ of the repositories listed at Will merge to 'master'. -* jc/rerere (2015-07-06) 19 commits - . t4200: rerere a merge with two identical conflicts - . rerere: un-nest merge() further - . rerere: use "struct rerere_id" instead of "char *" for conflict ID +* jc/rerere (2015-07-18) 18 commits + - rerere: un-nest merge() further + - rerere: use "struct rerere_id" instead of "char *" for conflict ID - rerere: call conflict-ids IDs - rerere: further clarify do_rerere_one_path() - rerere: further de-dent do_plain_rerere() @@ -641,6 +575,7 @@ of the repositories listed at - rerere: lift PATH_MAX limitation - rerere: plug conflict ID leaks - rerere: fix an off-by-one non-bug + (this branch is used by jc/rerere-multi.) Code clean-up and minor fixes (so far). @@ -843,6 +778,8 @@ of the repositories listed at Add an environment variable to tell Git to look into refs hierarchy other than refs/replace/ for the object replacement data. + Will merge to 'master'. + * gp/status-rebase-i-info (2015-07-06) 4 commits (merged to 'next' on 2015-07-10 at b121298) @@ -889,6 +826,8 @@ of the repositories listed at Various enhancements around "git am" reading patches generated by foreign SCM. + Will merge to 'master'. + * pt/pull-builtin (2015-06-18) 19 commits (merged to 'next' on 2015-07-10 at 07b1794) @@ -979,16 +918,17 @@ of the repositories listed at * gr/rebase-i-drop-warn (2015-06-30) 3 commits - - git rebase -i: add static check for commands and SHA-1 - - git rebase -i: warn about removed commits - - git-rebase -i: add command "drop" to remove a commit + (merged to 'next' on 2015-07-15 at 6f4f2c8) + + git rebase -i: add static check for commands and SHA-1 + + git rebase -i: warn about removed commits + + git-rebase -i: add command "drop" to remove a commit Add "drop commit-object-name subject" command as another way to skip replaying of a commit in "rebase -i", and then punish those who do not use it (and instead just remove the lines) by throwing a warning. - Will merge to 'next'. + Will merge to 'master'. * jh/strbuf-read-use-read-in-full (2015-06-01) 1 commit @@ -1035,12 +975,13 @@ of the repositories listed at * jc/commit-slab (2015-05-22) 1 commit - - commit-slab: introduce slabname##_peek() function + (merged to 'next' on 2015-07-15 at 4c83475) + + commit-slab: introduce slabname##_peek() function Memory use reduction when commit-slab facility is used to annotate sparsely (which is not recommended in the first place). - Will merge to 'next'. + Will merge to 'master'. * jc/clone-bundle (2015-04-30) 1 commit