From 8fee0378a248ed21773e94f2b3e331873836ee3d Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Tue, 16 Jun 2015 15:18:34 -0700 Subject: [PATCH] What's cooking (2015/06 #04) --- whats-cooking.txt | 854 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 468 insertions(+), 386 deletions(-) diff --git a/whats-cooking.txt b/whats-cooking.txt index 3aaaf9eaad..3ec113f905 100644 --- a/whats-cooking.txt +++ b/whats-cooking.txt @@ -1,28 +1,20 @@ To: git@vger.kernel.org Bcc: lwn@lwn.net -Subject: What's cooking in git.git (Jun 2015, #03; Wed, 10) -X-master-at: 7974889a053574e449b55ca543a486e38e74864f -X-next-at: 1a18470cb8c6fbcf40b535cf669aa165844706d5 +Subject: What's cooking in git.git (Jun 2015, #04; Tue, 16) +X-master-at: 16da57c7c6c1fe92b32645202dd19657a89dd67d +X-next-at: d7bed1d571a3164716149e236b028e1e8ae2619b -What's cooking in git.git (Jun 2015, #03; Wed, 10) +What's cooking in git.git (Jun 2015, #04; Tue, 16) -------------------------------------------------- Here are the topics that have been cooking. Commits prefixed with '-' are only in 'pu' (proposed updates) while commits prefixed with '+' are in 'next'. -Somehow we are getting quite a many new topics in the past few -weeks. All the new contributors we acquired recently, including but -not limited to the GSoC and Matthieu's students, are making good -progress, throwing patches and responding to reviews in a reasonable -way, proving themselves to be real assets to the community. - -Which, I am very happy about, even though I am a bit behind catching -up with them. "Let's skip commute to gain an extra productive hour" -I tried yesterday did not help enough X-<. I am sure I've either -missed or postponed more than a few topics. I'll try to get to them -but some of them may fall in the cracks; please help by reviewing on -uncommented patches. +Hopefully the pre-release freeze can start late next week, and the +next cycle would reopen mid next month. In the meantime, let's +shift the focus on making sure that what has already been merged to +'master' are good (i.e. regression hunting and fixes). You can find the changes described here in the integration branches of the repositories listed at @@ -32,221 +24,260 @@ of the repositories listed at -------------------------------------------------- [New Topics] -* af/tcsh-completion-noclobber (2015-06-09) 1 commit - - git-completion.tcsh: fix redirect with noclobber +* jk/pkt-log-pack (2015-06-16) 3 commits + - pkt-line: support tracing verbatim pack contents + - pkt-line: tighten sideband PACK check when tracing + - pkt-line: simplify starts_with checks in packet tracing - The tcsh completion writes a bash scriptlet but that would have - failed for users with noclobber set. + Enhance packet tracing machinery to allow capturing an incoming + pack data to a file for debugging. - Will merge to 'next'. +* jk/stash-require-clean-index (2015-06-15) 1 commit + (merged to 'next' on 2015-06-16 at beb4883) + + Revert "stash: require a clean index to apply" -* es/utf8-stupid-compiler-workaround (2015-06-05) 1 commit - - utf8: NO_ICONV: silence uninitialized variable warning + A hotfix for the topic already in 'master'. - A compilation workaround. + Will merge to 'master'. - Will merge to 'next'. +* kb/i18n-doc (2015-06-15) 1 commit + - Documentation/i18n.txt: clarify character encoding support -* fk/doc-format-patch-vn (2015-06-10) 1 commit - - doc: format-patch: fix typo + Comments? - Docfix. - Will merge to 'next'. +* kb/use-nsec-doc (2015-06-15) 1 commit + - Makefile / racy-git.txt: clarify USE_NSEC prerequisites + Comments? -* gp/status-rebase-i-info (2015-06-09) 5 commits - - SQUASH??? fix misindent - - status: add new tests for status during rebase -i - - status: give more information during rebase -i - - status: differentiate interactive from non-interactive rebases - - status: factor two rebase-related messages together - Teach "git status" to show a more detailed information regarding - the "rebase -i" session in progress. +* kn/for-each-ref (2015-06-15) 11 commits + - ref-filter: make 'ref_array_item' use a FLEX_ARRAY for refname + - for-each-ref: introduce filter_refs() + - ref-filter: move code from 'for-each-ref' + - ref-filter: add 'ref-filter.h' + - for-each-ref: rename variables called sort to sorting + - for-each-ref: rename some functions and make them public + - for-each-ref: introduce 'ref_array_clear()' + - for-each-ref: introduce new structures for better organisation + - for-each-ref: rename 'refinfo' to 'ref_array_item' + - for-each-ref: clean up code + - for-each-ref: extract helper functions out of grab_single_ref() - Expecting a reroll. + GSoC project to rebuild ref listing by branch and tag based on the + for-each-ref machinery. + Will merge to 'next'. -* jc/prompt-document-ps1-state-separator (2015-06-10) 1 commit - - git-prompt.sh: document GIT_PS1_STATESEPARATOR - Docfix. +* mh/init-delete-refs-api (2015-06-15) 13 commits + - SQUASH avoid die(variable) + - refs: move the remaining ref module declarations to refs.h + - initial_ref_transaction_commit(): check for ref D/F conflicts + - initial_ref_transaction_commit(): check for duplicate refs + - refs: remove some functions from the module's public interface + - initial_ref_transaction_commit(): function for initial ref creation + - repack_without_refs(): make function private + - prune_remote(): use delete_refs() + - delete_refs(): improve error message + - delete_refs(): new function for the refs API + - delete_ref(): handle special case more explicitly + - remove_branches(): remove temporary + - delete_ref(): move declaration to refs.h - Will merge to 'next'. + Clean up refs API and make "git clone" less intimate with the + implementation detail. + Needs reroll. -* jk/index-pack-reduce-recheck (2015-06-09) 1 commit - - index-pack: avoid excessive re-reading of pack directory - Disable "have we lost a race with competing repack?" check while - receiving a huge object transfer that runs index-pack. +* mh/replace-refs (2015-06-12) 1 commit + - Allow to control where the replace refs are looked for - Will merge to 'next'. + Add an environment variable to tell Git to look into refs hierarchy + other than refs/replace/ for the object replacement data. -* js/sleep-without-select (2015-06-05) 4 commits - - lockfile: wait using sleep_millisec() instead of select() - - lockfile: convert retry timeout computations to millisecond - - help.c: wrap wait-only poll() invocation in sleep_millisec() - - lockfile: replace random() by rand() +* nd/multiple-work-trees (2015-06-12) 1 commit + - checkout: don't check worktrees when not necessary - Portability fix. + "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 'next'. -* ld/p4-changes-block-size (2015-06-10) 4 commits - - git-p4: fixing --changes-block-size handling - - git-p4: add tests for non-numeric revision range - - git-p4: test with limited p4 server results - - git-p4: additional testing of --changes-block-size +* pa/auto-gc-mac-osx (2015-06-12) 1 commit + (merged to 'next' on 2015-06-16 at 151ec95) + + hooks/pre-auto-gc: adjust power checking for newer OS X - More Perforce row number limit workaround for "git p4". + Recent Mac OS X updates breaks the logic to detect that the machine + is on the AC power in the sample pre-auto-gc script. - Will merge to 'next'. + Will merge to 'master'. -* mh/fsck-reflog-entries (2015-06-08) 2 commits - - fsck: report errors if reflog entries point at invalid objects - - fsck_handle_reflog_sha1(): new function +* pt/t0302-needs-sanity (2015-06-12) 1 commit + (merged to 'next' on 2015-06-16 at f0d8e17) + + t0302: "unreadable" test needs SANITY prereq - "git fsck" used to ignore missing or invalid objects recorded in reflog. + Will merge to 'master'. - Will merge to 'next'. +-------------------------------------------------- +[Graduated to "master"] +* ah/send-email-sendmail-alias (2015-05-27) 2 commits + (merged to 'next' on 2015-06-04 at 9d9bd68) + + t9001: write $HOME/, not ~/, to help shells without tilde expansion + + send-email: add sendmail email aliases format + (this branch is used by es/send-email-sendmail-alias.) -* mk/utf8-no-iconv-warn (2015-06-08) 1 commit - - utf8.c: print warning about disabled iconv + "git send-email" learned the alias file format used by the sendmail + program (in an abbreviated form). - Warn when a reencoding is requested in a build without iconv - support, as the end user is likely to get an unexpected result. I - think the same level of safety should be added to a build with - iconv support when the specified encoding is not available, but the - patch does not go there. - Expecting a reroll. +* jc/diff-ws-error-highlight (2015-05-26) 4 commits + (merged to 'next' on 2015-06-01 at 6046560) + + diff.c: --ws-error-highlight= option + + diff.c: add emit_del_line() and emit_context_line() + + t4015: separate common setup and per-test expectation + + t4015: modernise style + Allow whitespace breakages in deleted and context lines to be also + painted in the output. -* mr/rebase-i-customize-insn-sheet (2015-06-08) 1 commit - - git-rebase--interactive.sh: add config option for custom instruction format - Breaks tests. +* jk/clone-dissociate (2015-05-27) 2 commits + (merged to 'next' on 2015-06-01 at 19e3ec3) + + clone: reorder --dissociate and --reference options + + clone: use OPT_STRING_LIST for --reference - Expecting a reroll. + Code clean-up. -* nd/untracked-cache (2015-06-08) 1 commit - - read-cache: fix untracked cache invalidation when split-index is used +* jk/color-diff-plain-is-context (2015-05-27) 2 commits + (merged to 'next' on 2015-06-01 at bcd8f1d) + + diff.h: rename DIFF_PLAIN color slot to DIFF_CONTEXT + + diff: accept color.diff.context as a synonym for "plain" - Hotfix for a topic already in 'master'. + "color.diff.plain" was a misnomer; give it 'color.diff.context' as + a more logical synonym. - Will merge to 'next'. +* jk/diagnose-config-mmap-failure (2015-05-28) 5 commits + (merged to 'next' on 2015-06-01 at ca750d5) + + xmmap(): drop "Out of memory?" + + config.c: rewrite ENODEV into EISDIR when mmap fails + + config.c: avoid xmmap error messages + + config.c: fix mmap leak when writing config + + read-cache.c: drop PROT_WRITE from mmap of index -* pt/am-abort-fix (2015-06-08) 6 commits - - am --abort: keep unrelated commits on unborn branch - - am --abort: support aborting to unborn branch - - am --abort: revert changes introduced by failed 3way merge - - am --skip: support skipping while on unborn branch - - am -3: support 3way merge on unborn branch - - am --skip: revert changes introduced by failed 3way merge + The configuration reader/writer uses mmap(2) interface to access + the files; when we find a directory, it barfed with "Out of memory?". - Various fixes around "git am" that applies a patch to a history - that is not there yet. - Will merge to 'next'. +* jk/die-on-bogus-worktree-late (2015-05-29) 1 commit + (merged to 'next' on 2015-06-04 at fac7a83) + + setup_git_directory: delay core.bare/core.worktree errors + The setup code used to die when core.bare and core.worktree are set + inconsistently, even for commands that do not need working tree. -* pt/am-foreign (2015-06-08) 6 commits - - SQUASH??? do not cat a single file into a pipe - - am: teach mercurial patch parser how to read from stdin - - am: use gmtime() to parse mercurial patch date - - t4150: test applying StGit series - - am: teach StGit patch parser how to read from stdin - - t4150: test applying StGit patch - Various enhancements around "git am" reading patches generated by - foreign SCM. +* jk/make-fix-dependencies (2015-05-29) 3 commits + (merged to 'next' on 2015-06-04 at 28daf19) + + Makefile: silence perl/PM.stamp recipe + + Makefile: avoid timestamp updates to GIT-BUILD-OPTIONS + + Makefile: drop dependency between git-instaweb and gitweb - Expecting a reroll. + Build clean-up. -* pt/pull-builtin (2015-06-09) 20 commits - . SQUASH??? adjust to new world order after 9e3751d4 (remote.c: drop "remote" pointer from "struct branch", 2015-05-21) - . pull: remove redirection to git-pull.sh - . pull --rebase: error on no merge candidate cases - . pull --rebase: exit early when the working directory is dirty - . pull: configure --rebase via branch..rebase or pull.rebase - . pull: teach git pull about --rebase - . pull: set reflog message - . pull: implement pulling into an unborn branch - . pull: fast-forward working tree if head is updated - . pull: check if in unresolved merge state - - pull: support pull.ff config - - pull: error on no merge candidates - - pull: pass git-fetch's options to git-fetch - - pull: pass git-merge's options to git-merge - - pull: pass verbosity, --progress flags to fetch and merge - - pull: implement fetch + merge - - pull: implement skeletal builtin pull - - argv-array: implement argv_array_pushv() - - parse-options-cb: implement parse_opt_pass_argv_array() - - parse-options-cb: implement parse_opt_pass_strbuf() +* jk/squelch-missing-link-warning-for-unreachable (2015-06-01) 3 commits + (merged to 'next' on 2015-06-01 at 9ddc5d1) + + suppress errors on missing UNINTERESTING links + + silence broken link warnings with revs->ignore_missing_links + + add quieter versions of parse_{tree,commit} - Expecting a reroll. + Recent "git prune" traverses young unreachable objects to safekeep + old objects in the reachability chain from them, which sometimes + caused error messages that are unnecessarily alarming. -* rl/send-email-aliases (2015-06-08) 5 commits - - send-email: refactor address list process - - send-email: allow multiple emails using --cc, --to and --bcc - - t9001-send-email: refactor header variable fields replacement - - send-email: allow aliases in patch header and command script outputs - - t9001-send-email: move script creation in a setup test +* mh/verify-lock-error-report (2015-05-27) 5 commits + (merged to 'next' on 2015-06-01 at 7b450a7) + + ref_transaction_commit(): do not capitalize error messages + + verify_lock(): do not capitalize error messages + + verify_lock(): report errors via a strbuf + + verify_lock(): on errors, let the caller unlock the lock + + verify_lock(): return 0/-1 rather than struct ref_lock * - "git send-email" now performs alias-expansion on names that are - given via --cccmd, etc. + Bring consistency to error reporting mechanism used in "refs" API. - Expecting a reroll. +* mt/p4-depotFile-at-version (2015-05-27) 1 commit + (merged to 'next' on 2015-06-01 at 33e8622) + + p4: retrieve the right revision of the file in UTF-16 codepath -* sg/commit-cleanup-scissors (2015-06-09) 1 commit - - commit: cope with scissors lines in commit message - "git commit --cleanup=scissors" was not careful enough to protect - against getting fooled by a line that looked like scissors. +* nd/slim-index-pack-memory-usage (2015-06-04) 1 commit + (merged to 'next' on 2015-06-04 at 328fd50) + + index-pack: fix truncation of off_t in comparison - Will merge to 'next'. + An earlier optimization broke index-pack for a large object + transfer; this fixes it before the breakage hits any released + version. -* sg/completion-commit-cleanup (2015-06-08) 1 commit - - completion: teach 'scissors' mode to 'git commit --cleanup=' +* pt/pull-tests (2015-05-29) 8 commits + (merged to 'next' on 2015-06-01 at c98370b) + + t5520: check reflog action in fast-forward merge + + t5521: test --dry-run does not make any changes + + t5520: test --rebase failure on unborn branch with index + + t5520: test --rebase with multiple branches + + t5520: test work tree fast-forward when fetch updates head + + t5520: test for failure if index has unresolved entries + + t5520: test no merge candidates cases + + t5520: prevent field splitting in content comparisons + (this branch is used by pt/pull-optparse.) - Will merge to 'next'. + Add more test coverage to "git pull". -* wp/sha1-name-negative-match (2015-06-08) 2 commits - - sha1_name.c: introduce '^{/!-}' notation - - test for '!' handling in rev-parse's named commits +* sb/glossary-submodule (2015-05-29) 1 commit + (merged to 'next' on 2015-06-01 at 84de87b) + + glossary: add "remote", "submodule", "superproject" - Introduce "branch^{/!-}" notation to name a commit - reachable from branch that does not match the given pattern. - Expecting a reroll. +* sb/pack-protocol-mention-smart-http (2015-06-02) 1 commit + (merged to 'next' on 2015-06-04 at 8041cf6) + + Documentation/technical/pack-protocol: mention http as possible protocol + Doc updates. -* bc/object-id (2015-06-10) 7 commits - - ref_newer: convert to use struct object_id - - parse_fetch: convert to use struct object_id - - add_sought_entry_mem: convert to struct object_id - - Add a utility function to make parsing hex values easier. - - Convert struct ref to use object_id. - - sha1_file: introduce has_object_file helper. - - refs: convert some internal functions to use object_id - (incomplete) +* sb/submodule-doc-intro (2015-05-28) 1 commit + (merged to 'next' on 2015-06-01 at b6798de) + + submodule doc: reorder introductory paragraphs + + +* sg/merge-summary-config (2015-05-28) 1 commit + (merged to 'next' on 2015-06-04 at 8c0946c) + + Documentation: include 'merge.branchdesc' for merge and config as well + + Doc updates. + + +* tb/complete-sequencing (2015-06-01) 1 commit + (merged to 'next' on 2015-06-01 at b7604e8) + + completion: suggest sequencer commands for revert + + The bash completion script (in contrib/) learned a few options that + "git revert" takes. -------------------------------------------------- [Stalled] @@ -455,381 +486,432 @@ of the repositories listed at -------------------------------------------------- [Cooking] -* jc/ll-merge-expose-path (2015-06-04) 1 commit - - ll-merge: pass the original path to external drivers +* af/tcsh-completion-noclobber (2015-06-09) 1 commit + (merged to 'next' on 2015-06-16 at 621f205) + + git-completion.tcsh: fix redirect with noclobber - Traditionally, external low-level 3-way merge drivers are expected - to produce their results based solely on the contents of the three - variants given in temporary files named by %O, %A and %B on their - command line. Additionally allow them to look at the final path - (given by %P). + The tcsh completion writes a bash scriptlet but that would have + failed for users with noclobber set. - Will merge to 'next'. + Will merge to 'master'. -* jk/log-missing-default-HEAD (2015-06-03) 1 commit - - log: diagnose empty HEAD more clearly +* es/utf8-stupid-compiler-workaround (2015-06-05) 1 commit + (merged to 'next' on 2015-06-11 at dc0f2d2) + + utf8: NO_ICONV: silence uninitialized variable warning - "git init empty && git -C empty log" said "bad default revision 'HEAD'", - which was found to be a bit confusing to new users. + A compilation workaround. - What's the status of this one? + Will merge to 'master'. -* nd/slim-index-pack-memory-usage (2015-06-04) 1 commit - (merged to 'next' on 2015-06-04 at 328fd50) - + index-pack: fix truncation of off_t in comparison +* fk/doc-format-patch-vn (2015-06-10) 1 commit + (merged to 'next' on 2015-06-16 at 9be3516) + + doc: format-patch: fix typo - An earlier optimization broke index-pack for a large object - transfer; this fixes it before the breakage hits any released - version. + Docfix. Will merge to 'master'. -* gr/rebase-i-drop-warn (2015-06-01) 2 commits - - git rebase -i: warn about removed commits - - git-rebase -i: add command "drop" to remove a commit +* gp/status-rebase-i-info (2015-06-09) 5 commits + - SQUASH??? fix misindent + - status: add new tests for status during rebase -i + - status: give more information during rebase -i + - status: differentiate interactive from non-interactive rebases + - status: factor two rebase-related messages together - 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. + Teach "git status" to show a more detailed information regarding + the "rebase -i" session in progress. Expecting a reroll. -* jh/strbuf-read-use-read-in-full (2015-06-01) 1 commit - - strbuf_read(): skip unnecessary strbuf_grow() at eof +* jc/prompt-document-ps1-state-separator (2015-06-10) 1 commit + - git-prompt.sh: document GIT_PS1_STATESEPARATOR - Avoid one extra iteration and strbuf_grow() of 8kB in - strbuf_read(). + Docfix. - Looked reasonable; perhaps a log message clarification is needed. + Will merge to 'next'. - Expecting a reroll. +* jk/index-pack-reduce-recheck (2015-06-09) 1 commit + (merged to 'next' on 2015-06-16 at ff83705) + + index-pack: avoid excessive re-reading of pack directory -* jk/squelch-missing-link-warning-for-unreachable (2015-06-01) 3 commits - (merged to 'next' on 2015-06-01 at 9ddc5d1) - + suppress errors on missing UNINTERESTING links - + silence broken link warnings with revs->ignore_missing_links - + add quieter versions of parse_{tree,commit} + Disable "have we lost a race with competing repack?" check while + receiving a huge object transfer that runs index-pack. - Recent "git prune" traverses young unreachable objects to safekeep - old objects in the reachability chain from them, which causes - error messages that are unnecessarily alarming. + Will merge to 'master'. + + +* js/sleep-without-select (2015-06-05) 4 commits + (merged to 'next' on 2015-06-11 at 278edb1) + + lockfile: wait using sleep_millisec() instead of select() + + lockfile: convert retry timeout computations to millisecond + + help.c: wrap wait-only poll() invocation in sleep_millisec() + + lockfile: replace random() by rand() + + Portability fix. Will merge to 'master'. -* mh/reporting-broken-refs-from-for-each-ref (2015-06-08) 4 commits - - read_loose_refs(): treat NULL_SHA1 loose references as broken - - read_loose_refs(): simplify function logic - - for-each-ref: report broken references correctly - - t6301: new tests of for-each-ref error handling +* ld/p4-changes-block-size (2015-06-10) 4 commits + (merged to 'next' on 2015-06-16 at 09b7daa) + + git-p4: fixing --changes-block-size handling + + git-p4: add tests for non-numeric revision range + + git-p4: test with limited p4 server results + + git-p4: additional testing of --changes-block-size - "git for-each-ref" reported "missing object" for 0{40} when it - encounters a broken ref. The lack of object whose name is 0{40} is - not the problem; the ref being broken is. + More Perforce row number limit workaround for "git p4". - Will merge to 'next'. + Will merge to 'master'. -* tb/complete-sequencing (2015-06-01) 1 commit - (merged to 'next' on 2015-06-01 at b7604e8) - + completion: suggest sequencer commands for revert +* mh/fsck-reflog-entries (2015-06-08) 2 commits + (merged to 'next' on 2015-06-16 at 44e3202) + + fsck: report errors if reflog entries point at invalid objects + + fsck_handle_reflog_sha1(): new function - The bash completion script (in contrib/) learned a few options that - "git revert" takes. + "git fsck" used to ignore missing or invalid objects recorded in reflog. Will merge to 'master'. -* jc/apply-reject-noop-hunk (2015-06-01) 1 commit - - apply: reject a hunk that does not do anything +* mk/utf8-no-iconv-warn (2015-06-08) 1 commit + - utf8.c: print warning about disabled iconv - "git apply" cannot diagnose a patch corruption when the breakage is - to mark the length of the hunk shorter than it really is on the - hunk header line "@@ -l,k +m,n @@"; one special case it could is - when the hunk becomes no-op (e.g. k == n == 2 for two-line context - patch output), and it learned how to do so. + Warn when a reencoding is requested in a build without iconv + support, as the end user is likely to get an unexpected result. I + think the same level of safety should be added to a build with + iconv support when the specified encoding is not available, but the + patch does not go there. - Will merge to 'next'. + Expecting a reroll. -* es/configure-getdelim (2015-06-03) 2 commits - - configure: add getdelim() check - - config.mak.uname: Darwin: define HAVE_GETDELIM for modern OS X releases +* mr/rebase-i-customize-insn-sheet (2015-06-15) 1 commit + - git-rebase--interactive.sh: add config option for custom instruction format - Auto-detect availability of getdelim() that helps optimized version - of strbuf_getwholeline(). + "git rebase -i"'s list of todo is made configurable. Will merge to 'next'. -* es/osx-header-pollutes-mask-macro (2015-06-03) 2 commits - - ewah: use less generic macro name - - ewah/bitmap: silence warning about MASK macro redefinition +* nd/untracked-cache (2015-06-08) 1 commit + (merged to 'next' on 2015-06-16 at 5e7df1d) + + read-cache: fix untracked cache invalidation when split-index is used - Will merge to 'next'. + Hotfix for the 'untracked-cache' topic that is already in 'master'. + Will merge to 'master'. -* es/send-email-sendmail-alias (2015-06-01) 10 commits - - send-email: further warn about unsupported sendmail aliases features - - t9001: add sendmail aliases line continuation tests - - t9001: refactor sendmail aliases test infrastructure - - send-email: implement sendmail aliases line continuation support - - send-email: simplify sendmail aliases comment and blank line recognizer - - send-email: refactor sendmail aliases parser - - send-email: fix style: cuddle 'elsif' and 'else' with closing brace - - send-email: drop noise comments which merely repeat what code says - - send-email: visually distinguish sendmail aliases parser warnings - - send-email: further document missing sendmail aliases functionality - (this branch uses ah/send-email-sendmail-alias.) - "git send-email" learned to handle more forms of sendmail style - aliases file. +* pt/am-abort-fix (2015-06-08) 6 commits + (merged to 'next' on 2015-06-16 at 9cac1de) + + am --abort: keep unrelated commits on unborn branch + + am --abort: support aborting to unborn branch + + am --abort: revert changes introduced by failed 3way merge + + am --skip: support skipping while on unborn branch + + am -3: support 3way merge on unborn branch + + am --skip: revert changes introduced by failed 3way merge - Will merge to 'next'. + Various fixes around "git am" that applies a patch to a history + that is not there yet. + Will merge to 'master'. -* jc/do-not-feed-tags-to-clear-commit-marks (2015-06-01) 1 commit - - format-patch: do not feed tags to clear_commit_marks() - "git format-patch --ignore-if-upstream A..B" did not like to be fed - tags as boundary commits. +* pt/am-foreign (2015-06-15) 5 commits + - am: teach mercurial patch parser how to read from stdin + - am: use gmtime() to parse mercurial patch date + - t4150: test applying StGit series + - am: teach StGit patch parser how to read from stdin + - t4150: test applying StGit patch + + Various enhancements around "git am" reading patches generated by + foreign SCM. Will merge to 'next'. -* mg/index-read-error-messages (2015-06-01) 2 commits - - messages: uniform error messages for index write - - show-index: uniform error messages for index read +* pt/pull-builtin (2015-06-15) 19 commits + - pull: remove redirection to git-pull.sh + - pull --rebase: error on no merge candidate cases + - pull --rebase: exit early when the working directory is dirty + - pull: configure --rebase via branch..rebase or pull.rebase + - pull: teach git pull about --rebase + - pull: set reflog message + - pull: implement pulling into an unborn branch + - pull: fast-forward working tree if head is updated + - pull: check if in unresolved merge state + - pull: support pull.ff config + - pull: error on no merge candidates + - pull: pass git-fetch's options to git-fetch + - pull: pass git-merge's options to git-merge + - pull: pass verbosity, --progress flags to fetch and merge + - pull: implement fetch + merge + - pull: implement skeletal builtin pull + - argv-array: implement argv_array_pushv() + - parse-options-cb: implement parse_opt_passthru_argv() + - parse-options-cb: implement parse_opt_passthru() - The tip was RFC. - Expecting a reroll. + Reimplement 'git pull' in C. -* pt/pull-optparse (2015-06-02) 3 commits - - pull: use git-rev-parse --parseopt for option parsing - - pull: handle git-fetch's options as well - - Merge branch 'pt/pull-tests' into pt/pull-optparse - (this branch uses pt/pull-tests.) +* rl/send-email-aliases (2015-06-08) 5 commits + - send-email: refactor address list process + - send-email: allow multiple emails using --cc, --to and --bcc + - t9001-send-email: refactor header variable fields replacement + - send-email: allow aliases in patch header and command script outputs + - t9001-send-email: move script creation in a setup test - "git pull" has become more aware of the options meant for - underlying "git fetch" and then learned to use parse-options - parser. + "git send-email" now performs alias-expansion on names that are + given via --cccmd, etc. - Will merge to 'next'. + What's the doneness of this one? -* qn/blame-show-email (2015-06-01) 1 commit - - blame: add blame.showEmail configuration +* sg/commit-cleanup-scissors (2015-06-09) 1 commit + (merged to 'next' on 2015-06-16 at 988e23d) + + commit: cope with scissors lines in commit message - "git blame" learned blame.showEmail configuration variable. + "git commit --cleanup=scissors" was not careful enough to protect + against getting fooled by a line that looked like scissors. - Will merge to 'next'. + Will merge to 'master'. -* rl/am-3way-config (2015-06-04) 3 commits - - git-am: add am.threeWay config variable - - t4150-am: refactor am -3 tests - - git-am.sh: fix initialization of the threeway variable +* sg/completion-commit-cleanup (2015-06-08) 1 commit + (merged to 'next' on 2015-06-16 at a9d1c77) + + completion: teach 'scissors' mode to 'git commit --cleanup=' - "git am" learned am.threeWay configuration variable. + Will merge to 'master'. - Will merge to 'next'. +* wp/sha1-name-negative-match (2015-06-08) 2 commits + - sha1_name.c: introduce '^{/!-}' notation + - test for '!' handling in rev-parse's named commits -* sb/pack-protocol-mention-smart-http (2015-06-02) 1 commit - (merged to 'next' on 2015-06-04 at 8041cf6) - + Documentation/technical/pack-protocol: mention http as possible protocol + Introduce "branch^{/!-}" notation to name a commit + reachable from branch that does not match the given pattern. - Doc updates. + Expecting a reroll. - Will merge to 'master'. +* bc/object-id (2015-06-15) 8 commits + - remote.c: use struct object_id in ref_newer() + - transport-helper.c: use struct object_id in push_refs_with_export() + - connect.c: use struct object_id in get_remote_heads() + - remote-curl: use struct object_id in parse_fetch() + - fetch-pack: use struct object_id in add_sought_entry_mem() + - object_id: convert struct ref to use object_id. + - sha1_file: introduce has_object_file() helper + - refs: convert some internal functions to use object_id -* hv/submodule-config (2015-06-02) 4 commits - - do not die on error of parsing fetchrecursesubmodules option - - use new config API for worktree configurations of submodules - - extract functions for submodule config set and lookup - - implement submodule config cache for lookup of submodule names + (incomplete - the last two not queued yet) - The gitmodules API accessed from the C code learned to cache stuff - lazily. - What's the doneness of this one? +* jc/ll-merge-expose-path (2015-06-04) 1 commit + (merged to 'next' on 2015-06-11 at 5c5fe41) + + ll-merge: pass the original path to external drivers + Traditionally, external low-level 3-way merge drivers are expected + to produce their results based solely on the contents of the three + variants given in temporary files named by %O, %A and %B on their + command line. Additionally allow them to look at the final path + (given by %P). -* jc/diff-ws-error-highlight (2015-05-26) 4 commits - (merged to 'next' on 2015-06-01 at 6046560) - + diff.c: --ws-error-highlight= option - + diff.c: add emit_del_line() and emit_context_line() - + t4015: separate common setup and per-test expectation - + t4015: modernise style + Will merge to 'master'. - Allow whitespace breakages in deleted and context lines to be also - painted in the output. - Will merge to 'master'. +* jk/log-missing-default-HEAD (2015-06-03) 1 commit + - log: diagnose empty HEAD more clearly + "git init empty && git -C empty log" said "bad default revision 'HEAD'", + which was found to be a bit confusing to new users. -* jk/clone-dissociate (2015-05-27) 2 commits - (merged to 'next' on 2015-06-01 at 19e3ec3) - + clone: reorder --dissociate and --reference options - + clone: use OPT_STRING_LIST for --reference + What's the status of this one? - Code clean-up. - Will merge to 'master'. +* gr/rebase-i-drop-warn (2015-06-01) 2 commits + - 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. + What's the status of this one? -* jk/color-diff-plain-is-context (2015-05-27) 2 commits - (merged to 'next' on 2015-06-01 at bcd8f1d) - + diff.h: rename DIFF_PLAIN color slot to DIFF_CONTEXT - + diff: accept color.diff.context as a synonym for "plain" - "color.diff.plain" was a misnomer; give it 'color.diff.context' as - a more logical synonym. +* jh/strbuf-read-use-read-in-full (2015-06-01) 1 commit + - strbuf_read(): skip unnecessary strbuf_grow() at eof - Will merge to 'master'. + Avoid one extra iteration and strbuf_grow() of 8kB in + strbuf_read(). + Looked reasonable; perhaps a log message clarification is needed. -* jk/diagnose-config-mmap-failure (2015-05-28) 5 commits - (merged to 'next' on 2015-06-01 at ca750d5) - + xmmap(): drop "Out of memory?" - + config.c: rewrite ENODEV into EISDIR when mmap fails - + config.c: avoid xmmap error messages - + config.c: fix mmap leak when writing config - + read-cache.c: drop PROT_WRITE from mmap of index + Expecting a reroll. - The configuration reader/writer uses mmap(2) interface to access - the files; when we find a directory, it barfed with "Out of memory?". + +* mh/reporting-broken-refs-from-for-each-ref (2015-06-08) 4 commits + (merged to 'next' on 2015-06-16 at 31af2b8) + + read_loose_refs(): treat NULL_SHA1 loose references as broken + + read_loose_refs(): simplify function logic + + for-each-ref: report broken references correctly + + t6301: new tests of for-each-ref error handling + + "git for-each-ref" reported "missing object" for 0{40} when it + encounters a broken ref. The lack of object whose name is 0{40} is + not the problem; the ref being broken is. Will merge to 'master'. -* mh/verify-lock-error-report (2015-05-27) 5 commits - (merged to 'next' on 2015-06-01 at 7b450a7) - + ref_transaction_commit(): do not capitalize error messages - + verify_lock(): do not capitalize error messages - + verify_lock(): report errors via a strbuf - + verify_lock(): on errors, let the caller unlock the lock - + verify_lock(): return 0/-1 rather than struct ref_lock * +* jc/apply-reject-noop-hunk (2015-06-01) 1 commit + (merged to 'next' on 2015-06-11 at 8063665) + + apply: reject a hunk that does not do anything - Bring consistency to error reporting mechanism used in "refs" API. + "git apply" cannot diagnose a patch corruption when the breakage is + to mark the length of the hunk shorter than it really is on the + hunk header line "@@ -l,k +m,n @@"; one special case it could is + when the hunk becomes no-op (e.g. k == n == 2 for two-line context + patch output), and it learned how to do so. Will merge to 'master'. -* mt/p4-depotFile-at-version (2015-05-27) 1 commit - (merged to 'next' on 2015-06-01 at 33e8622) - + p4: retrieve the right revision of the file in UTF-16 codepath +* es/configure-getdelim (2015-06-03) 2 commits + (merged to 'next' on 2015-06-11 at cdead14) + + configure: add getdelim() check + + config.mak.uname: Darwin: define HAVE_GETDELIM for modern OS X releases + + Auto-detect availability of getdelim() that helps optimized version + of strbuf_getwholeline(). Will merge to 'master'. -* sb/glossary-submodule (2015-05-29) 1 commit - (merged to 'next' on 2015-06-01 at 84de87b) - + glossary: add "remote", "submodule", "superproject" +* es/osx-header-pollutes-mask-macro (2015-06-03) 2 commits + (merged to 'next' on 2015-06-11 at cd8c39e) + + ewah: use less generic macro name + + ewah/bitmap: silence warning about MASK macro redefinition Will merge to 'master'. -* sg/config-name-only (2015-05-28) 3 commits - - completion: use new 'git config' options to reliably list variable names - - SQUASH - - config: add options to list only variable names - - "git config --list" output was hard to parse when values consist of - multiple lines. Introduce a way to show only the keys. +* es/send-email-sendmail-alias (2015-06-01) 10 commits + (merged to 'next' on 2015-06-11 at b5e310e) + + send-email: further warn about unsupported sendmail aliases features + + t9001: add sendmail aliases line continuation tests + + t9001: refactor sendmail aliases test infrastructure + + send-email: implement sendmail aliases line continuation support + + send-email: simplify sendmail aliases comment and blank line recognizer + + send-email: refactor sendmail aliases parser + + send-email: fix style: cuddle 'elsif' and 'else' with closing brace + + send-email: drop noise comments which merely repeat what code says + + send-email: visually distinguish sendmail aliases parser warnings + + send-email: further document missing sendmail aliases functionality - Adding a single --name-only option may be a better way to go than - adding two new options. + "git send-email" learned to handle more forms of sendmail style + aliases file. - Expecting reroll. + Will merge to 'master'. -* sg/merge-summary-config (2015-05-28) 1 commit - (merged to 'next' on 2015-06-04 at 8c0946c) - + Documentation: include 'merge.branchdesc' for merge and config as well +* jc/do-not-feed-tags-to-clear-commit-marks (2015-06-01) 1 commit + (merged to 'next' on 2015-06-11 at 65b4308) + + format-patch: do not feed tags to clear_commit_marks() - Doc updates. + "git format-patch --ignore-if-upstream A..B" did not like to be fed + tags as boundary commits. Will merge to 'master'. -* jc/push-tags-also (2015-05-29) 1 commit - - push --tags: push tags *in addition to* other stuff +* mg/index-read-error-messages (2015-06-01) 2 commits + - messages: uniform error messages for index write + - show-index: uniform error messages for index read - "git fetch --tags" learned to fetch tags in addition to other stuff - a few years ago, but "git push --tags" didn't. Now it does. + The tip was RFC. + Expecting a reroll. -* jk/die-on-bogus-worktree-late (2015-05-29) 1 commit - (merged to 'next' on 2015-06-04 at fac7a83) - + setup_git_directory: delay core.bare/core.worktree errors +* pt/pull-optparse (2015-06-02) 3 commits + (merged to 'next' on 2015-06-11 at e252b4c) + + pull: use git-rev-parse --parseopt for option parsing + + pull: handle git-fetch's options as well + + Merge branch 'pt/pull-tests' into pt/pull-optparse - The setup code used to die when core.bare and core.worktree are set - inconsistently, even for commands that do not need working tree. + "git pull" has become more aware of the options meant for + underlying "git fetch" and then learned to use parse-options + parser. Will merge to 'master'. -* jk/make-fix-dependencies (2015-05-29) 3 commits - (merged to 'next' on 2015-06-04 at 28daf19) - + Makefile: silence perl/PM.stamp recipe - + Makefile: avoid timestamp updates to GIT-BUILD-OPTIONS - + Makefile: drop dependency between git-instaweb and gitweb +* qn/blame-show-email (2015-06-01) 1 commit + (merged to 'next' on 2015-06-11 at b4998e2) + + blame: add blame.showEmail configuration - Build clean-up. + "git blame" learned blame.showEmail configuration variable. Will merge to 'master'. -* ah/send-email-sendmail-alias (2015-05-27) 2 commits - (merged to 'next' on 2015-06-04 at 9d9bd68) - + t9001: write $HOME/, not ~/, to help shells without tilde expansion - + send-email: add sendmail email aliases format - (this branch is used by es/send-email-sendmail-alias.) +* rl/am-3way-config (2015-06-04) 3 commits + (merged to 'next' on 2015-06-11 at 9b9910d) + + git-am: add am.threeWay config variable + + t4150-am: refactor am -3 tests + + git-am.sh: fix initialization of the threeway variable - "git send-email" learned the alias file format used by the sendmail - program (in an abbreviated form). + "git am" learned am.threeWay configuration variable. Will merge to 'master'. -* jc/commit-slab (2015-05-22) 1 commit - - commit-slab: introduce slabname##_peek() function +* hv/submodule-config (2015-06-15) 4 commits + - do not die on error of parsing fetchrecursesubmodules option + - use new config API for worktree configurations of submodules + - extract functions for submodule config set and lookup + - implement submodule config API for lookup of .gitmodules values - Memory use reduction when commit-slab facility is used to annotate - sparsely (which is not recommended in the first place). + The gitmodules API accessed from the C code learned to cache stuff + lazily. + Looked reasonable from a cursory read. -* sb/submodule-doc-intro (2015-05-28) 1 commit - (merged to 'next' on 2015-06-01 at b6798de) - + submodule doc: reorder introductory paragraphs - Will merge to 'master'. +* sg/config-name-only (2015-05-28) 3 commits + - completion: use new 'git config' options to reliably list variable names + - SQUASH + - config: add options to list only variable names + "git config --list" output was hard to parse when values consist of + multiple lines. Introduce a way to show only the keys. -* pt/pull-tests (2015-05-29) 8 commits - (merged to 'next' on 2015-06-01 at c98370b) - + t5520: check reflog action in fast-forward merge - + t5521: test --dry-run does not make any changes - + t5520: test --rebase failure on unborn branch with index - + t5520: test --rebase with multiple branches - + t5520: test work tree fast-forward when fetch updates head - + t5520: test for failure if index has unresolved entries - + t5520: test no merge candidates cases - + t5520: prevent field splitting in content comparisons - (this branch is used by pt/pull-optparse.) + Adding a single --name-only option may be a better way to go than + adding two new options. - Add more test coverage to "git pull". + Expecting reroll. - Will merge to 'master'. + +* jc/push-tags-also (2015-05-29) 1 commit + - push --tags: push tags *in addition to* other stuff + + "git fetch --tags" learned to fetch tags in addition to other stuff + a few years ago, but "git push --tags" didn't. Now it does. + + +* jc/commit-slab (2015-05-22) 1 commit + - 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). * jc/clone-bundle (2015-04-30) 1 commit @@ -838,7 +920,7 @@ of the repositories listed at Still an early WIP -* ee/clean-remove-dirs (2015-06-09) 5 commits +* ee/clean-remove-dirs (2015-06-15) 5 commits - clean: improve performance when removing lots of directories - p7300: add performance tests for clean - t7300: add tests to document behavior of clean and nested git @@ -849,7 +931,7 @@ of the repositories listed at be touched?" check "git clean" does by checking if it has .git/HEAD using the submodule-related code with a more optimized check. - Haven't seen reviews on this updated round, and I haven't read it myself. + Looked reasonable from a cursory read. * jc/merge-drop-old-syntax (2015-04-29) 1 commit -- 2.11.4.GIT