]> git.ipfire.org Git - thirdparty/git.git/commitdiff
What's cooking (2014/12 #04)
authorJunio C Hamano <gitster@pobox.com>
Mon, 22 Dec 2014 23:11:57 +0000 (15:11 -0800)
committerJunio C Hamano <gitster@pobox.com>
Mon, 22 Dec 2014 23:11:57 +0000 (15:11 -0800)
whats-cooking.txt

index d87b7c87ae612dd6ba8407e666b78a2e2983cfc1..9a714144ae40d9371a9d054e1abb8c5413ed9edf 100644 (file)
@@ -1,19 +1,20 @@
 To: git@vger.kernel.org
 Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Dec 2014, #03; Mon, 15)
-X-master-at: 9abc44b681a669c67d071d858c8aad21f65a0956
-X-next-at: d6426a0ea3bc6be707b25a6817328703d4883659
+Subject: What's cooking in git.git (Dec 2014, #04; Mon, 22)
+X-master-at: bbcefffcea9789e4a1a2023a1c778e2c07db77a7
+X-next-at: 0ad48deaa29372e974d108b05da375b40a954ec2
 
-What's cooking in git.git (Dec 2014, #03; Mon, 15)
+What's cooking in git.git (Dec 2014, #04; Mon, 22)
 --------------------------------------------------
 
 Here are the topics that have been cooking.  Commits prefixed with
 '-' are only in 'pu' (proposed updates) while commits prefixed with
 '+' are in 'next'.
 
-The 'next' branch has been rewound and rebuilt on top of 2.2; I
-expect this to be a short and light cycle that would not add too
-many new things.
+Quite a few topics have been merged to 'master' as the third batch
+for this cycle, on top of the recent "case sensitive .Git" fix that
+has been publicized very widely.  The next release which is expected
+to be a small one is taking shape.
 
 You can find the changes described here in the integration branches
 of the repositories listed at
@@ -23,204 +24,447 @@ of the repositories listed at
 --------------------------------------------------
 [Graduated to "master"]
 
-* da/difftool-mergetool-simplify-reporting-status (2014-11-21) 5 commits
-  (merged to 'next' on 2014-12-04 at c3c329f)
- + mergetools: stop setting $status in merge_cmd()
- + mergetool: simplify conditionals
- + difftool--helper: add explicit exit statement
- + mergetool--lib: remove use of $status global
- + mergetool--lib: remove no-op assignment to $status from setup_user_tool
+* cc/interpret-trailers-more (2014-11-10) 4 commits
+  (merged to 'next' on 2014-12-15 at 77f6c6a)
+ + trailer: add test with an old style conflict block
+ + trailer: reuse ignore_non_trailer() to ignore conflict lines
+ + commit: make ignore_non_trailer() non static
+ + Merge branch 'jc/conflict-hint' into cc/interpret-trailers-more
+ (this branch uses jc/conflict-hint.)
+
+ "git interpret-trailers" learned to properly handle the
+ "Conflicts:" block at the end.
+
+
+* ch/new-gpg-drops-rfc-1991 (2014-12-12) 4 commits
+  (merged to 'next' on 2014-12-15 at 32d7d50)
+ + tests: squelch noise from GPG machinery set-up
+ + tests: replace binary GPG keyrings with ASCII-armored keys
+ + tests: skip RFC1991 tests for gnupg 2.1
+ + tests: create gpg homedir on the fly
+
+ Recent GPG changes the keyring format and drops support for RFC1991
+ formatted signatures, breaking our existing tests.
 
- Code simplification.
 
+* dm/compat-s-ifmt-for-zos (2014-12-04) 1 commit
+  (merged to 'next' on 2014-12-15 at 0eb2fe6)
+ + compat: convert modes to use portable file type values
 
-* jc/unpack-trees-plug-leak (2014-11-17) 1 commit
-  (merged to 'next' on 2014-12-04 at 9f1df30)
- + unpack_trees: plug leakage of o->result
+ Long overdue departure from the assumption that S_IFMT is shared by
+ everybody made in 2005.
 
 
-* jk/colors-fix (2014-11-20) 3 commits
-  (merged to 'next' on 2014-12-04 at 0d97d69)
- + t4026: test "normal" color
- + config: fix parsing of "git config --get-color some.key -1"
- + docs: describe ANSI 256-color mode
- (this branch is used by jk/colors.)
+* dw/shell-basename-dashdash-before-stripping-leading-dash-from-login (2014-11-25) 1 commit
+  (merged to 'next' on 2014-12-15 at 42937b7)
+ + git-sh-setup.sh: use dashdash with basename call
+
+
+* jc/conflict-hint (2014-10-28) 4 commits
+  (merged to 'next' on 2014-12-15 at b72475f)
+ + merge & sequencer: turn "Conflicts:" hint into a comment
+ + builtin/commit.c: extract ignore_non_trailer() helper function
+ + merge & sequencer: unify codepaths that write "Conflicts:" hint
+ + builtin/merge.c: drop a parameter that is never used
+ (this branch is used by cc/interpret-trailers-more.)
 
+ Unlike all the other hints given in the commit log editor, the list
+ of conflicted paths were appended at the end without commented out.
 
-* jk/no-perl-tests (2014-11-18) 2 commits
-  (merged to 'next' on 2014-12-04 at f166620)
- + t960[34]: mark cvsimport tests as requiring perl
- + t0090: mark add-interactive test with PERL prerequisite
 
- Some tests that depend on perl lacked PERL prerequisite to protect
- them, breaking build with NO_PERL configuration.
+* jc/exec-cmd-system-path-leak-fix (2014-11-30) 1 commit
+  (merged to 'next' on 2014-12-15 at f926ee5)
+ + system_path(): always return free'able memory to the caller
 
+ The function sometimes returned a non-freeable memory and some
+ other times returned a piece of memory that must be freed.
 
-* jk/pack-bitmap (2014-11-30) 1 commit
-  (merged to 'next' on 2014-12-04 at eb457ad)
- + pack-bitmap: do not use gcc packed attribute
 
+* jc/hook-cleanup (2014-12-01) 1 commit
+  (merged to 'next' on 2014-12-15 at f5759d0)
+ + run-command.c: retire unused run_hook_with_custom_index()
 
-* jk/push-simple (2014-11-30) 1 commit
-  (merged to 'next' on 2014-12-04 at 00785c7)
- + push: truly use "simple" as default, not "upstream"
+ Remove unused code.
 
- Git 2.0 was supposed to make the "simple" mode for the default of
- "git push", but it didn't.
 
+* jc/refer-to-t-readme-from-submitting-patches (2014-11-24) 2 commits
+  (merged to 'next' on 2014-12-15 at 0e88699)
+ + t/README: justify why "! grep foo" is sufficient
+ + SubmittingPatches: refer to t/README for tests
 
-* jk/rebuild-perl-scripts-with-no-perl-seting-change (2014-11-18) 3 commits
-  (merged to 'next' on 2014-12-04 at 27382d3)
- + Makefile: have python scripts depend on NO_PYTHON setting
- + Makefile: simplify by using SCRIPT_{PERL,SH}_GEN macros
- + Makefile: have perl scripts depend on NO_PERL setting
 
- The build procedure did not bother fixing perl and python scripts
- when NO_PERL and NO_PYTHON build-time configuration changed.
+* jg/prompt-localize-temporary (2014-12-12) 1 commit
+  (merged to 'next' on 2014-12-15 at bb9cac9)
+ + git-prompt.sh: make $f local to __git_eread()
 
+ "git-prompt" (in contrib/) used a variable from the global scope,
+ possibly contaminating end-user's namespace.
 
-* mh/config-copy-string-from-git-path (2014-11-17) 1 commit
-  (merged to 'next' on 2014-12-04 at 9c9518b)
- + cmd_config(): make a copy of path obtained from git_path()
 
+* jk/always-allow-large-packets (2014-12-10) 1 commit
+  (merged to 'next' on 2014-12-15 at c3fb2c8)
+ + pkt-line: allow writing of LARGE_PACKET_MAX buffers
 
-* po/everyday-doc (2014-11-17) 1 commit
-  (merged to 'next' on 2014-12-04 at 39d31fb)
- + Documentation: change "gitlink" typo in git-push
+ "git push" and "git fetch" did not communicate an overlong refname
+ correctly.
 
 
-* rt/push-recurse-submodule-usage-string (2014-11-18) 1 commit
-  (merged to 'next' on 2014-12-04 at c43e23c)
- + builtin/push.c: fix description of --recurse-submodules option
+* jk/colors (2014-12-09) 6 commits
+  (merged to 'next' on 2014-12-15 at 20b045f)
+ + parse_color: drop COLOR_BACKGROUND macro
+ + diff-highlight: allow configurable colors
+ + parse_color: recognize "no$foo" to clear the $foo attribute
+ + parse_color: support 24-bit RGB values
+ + parse_color: refactor color storage
+ + Merge branch 'jn/parse-config-slot' into jk/colors
 
+ "diff-highlight" filter (in contrib/) allows its color output
+ to be customized via configuration variables.
 
-* sv/typofix-apply-error-message (2014-11-17) 1 commit
-  (merged to 'next' on 2014-12-04 at de7547a)
- + apply: fix typo in an error message
 
---------------------------------------------------
-[New Topics]
+* jk/commit-date-approxidate (2014-12-11) 2 commits
+  (merged to 'next' on 2014-12-15 at 047530e)
+ + commit: always populate GIT_AUTHOR_* variables
+ + commit: loosen ident checks when generating template
+
+ Recent update to "git commit" broke amending an existing commit
+ with bogus author/committer lines without a valid e-mail address.
+
+
+* jk/credential-quit (2014-12-04) 2 commits
+  (merged to 'next' on 2014-12-15 at 4cfd999)
+ + prompt: respect GIT_TERMINAL_PROMPT to disable terminal prompts
+ + credential: let helpers tell us to quit
+
+ Credential helpers are asked in turn until one of them give
+ positive response, which is cumbersome to turn off when you need to
+ run Git in an automated setting.  The credential helper interface
+ learned to allow a helper to say "stop, don't ask other helpers."
+ Also GIT_TERMINAL_PROMPT environment can be set to false to disable
+ our built-in prompt mechanism for passwords.
+
+
+* jk/for-each-reflog-ent-reverse (2014-12-05) 2 commits
+  (merged to 'next' on 2014-12-15 at de71f08)
+ + for_each_reflog_ent_reverse: turn leftover check into assertion
+ + for_each_reflog_ent_reverse: fix newlines on block boundaries
+
+ The code that reads the reflog from the newer to the older entries
+ did not handle an entry that crosses a boundary of block it uses to
+ read them correctly.
+
+
+* jk/lock-ref-sha1-basic-return-errors (2014-11-20) 1 commit
+  (merged to 'next' on 2014-12-15 at c48b110)
+ + lock_ref_sha1_basic: do not die on locking errors
+
+ Correct an API anomaly.
+
+
+* jk/read-packed-refs-without-path-max (2014-12-10) 3 commits
+  (merged to 'next' on 2014-12-15 at c6d6f56)
+ + read_packed_refs: use skip_prefix instead of static array
+ + read_packed_refs: pass strbuf to parse_ref_line
+ + read_packed_refs: use a strbuf for reading lines
+
+ Git did not correctly read an overlong refname from a packed refs
+ file.
+
 
 * jk/test-asan (2014-12-11) 1 commit
   (merged to 'next' on 2014-12-15 at d24cb92)
  + t: support clang/gcc AddressSanitizer
 
- Will merge to 'master'.
 
+* js/fsck-tag-validation (2014-12-09) 2 commits
+  (merged to 'next' on 2014-12-15 at 455f26c)
+ + index-pack: terminate object buffers with NUL
+ + fsck: properly bound "invalid tag name" error message
+
+ New tag object format validation added in 2.2 showed garbage
+ after a tagname it reported in its error message.
+
+
+* js/push-to-deploy (2014-11-30) 2 commits
+  (merged to 'next' on 2014-12-15 at ef8c99f)
+ + t5516: more tests for receive.denyCurrentBranch=updateInstead
+ + receive-pack: add another option for receive.denyCurrentBranch
+ (this branch is used by jc/push-to-checkout.)
+
+ "git push" into a repository with a working tree normally refuses
+ to modify the branch that is checked out.  The command learned to
+ optionally do an equivalent of "git reset --hard" only when there
+ is no change to the working tree and the index instead, which would
+ be useful to "deploy" by pushing into a repository.
+
+
+* js/t5000-dont-copy-bin-sh (2014-11-24) 1 commit
+  (merged to 'next' on 2014-12-15 at 65ffd05)
+ + t5000 on Windows: do not mistake "sh.exe" as "sh"
+
+
+* js/test-hashmap-squelch-gcc (2014-12-09) 1 commit
+  (merged to 'next' on 2014-12-15 at a8da691)
+ + test-hashmap: squelch gcc compiler warning
+
+
+* mg/add-ignore-errors (2014-11-21) 1 commit
+  (merged to 'next' on 2014-12-15 at 3834789)
+ + add: ignore only ignored files
+
+ "git add --ignore-errors ..." did not ignore an error to
+ give a file that did not exist.
+
+
+* mg/branch-d-m-f (2014-12-09) 2 commits
+  (merged to 'next' on 2014-12-15 at 8366f2c)
+ + branch: allow -f with -m and -d
+ + t3200-branch: test -M
+
+ "git branch -d" (delete) and "git branch -m" (move) learned to
+ honor "-f" (force) flag; unlike many other subcommands, the way to
+ force these have been with separate "-D/-M" options, which was
+ inconsistent.
+
+
+* mg/doc-check-ignore-tracked-are-not-ignored (2014-12-04) 1 commit
+  (merged to 'next' on 2014-12-15 at c50f748)
+ + check-ignore: clarify treatment of tracked files
+
+
+* mh/find-uniq-abbrev (2014-11-26) 1 commit
+  (merged to 'next' on 2014-12-15 at e3b2b62)
+ + sha1_name: avoid unnecessary sha1 lookup in find_unique_abbrev
+
+ The code to abbreviate an object name to its short unique prefix
+ has been optimized when no abbreviation was requested.
+
+
+* mh/simplify-repack-without-refs (2014-11-25) 7 commits
+  (merged to 'next' on 2014-12-15 at 351e03e)
+ + sort_string_list(): rename to string_list_sort()
+ + prune_remote(): iterate using for_each_string_list_item()
+ + prune_remote(): rename local variable
+ + repack_without_refs(): make the refnames argument a string_list
+ + prune_remote(): sort delete_refs_list references en masse
+ + prune_remote(): initialize both delete_refs lists in a single loop
+ + prune_remote(): exit early if there are no stale references
+
+ "git remote update --prune" to drop many refs has been optimized.
+
+
+* nd/ls-tree-pathspec (2014-12-01) 5 commits
+  (merged to 'next' on 2014-12-15 at 8da6e09)
+ + t3102: style modernization
+ + t3102: document that ls-tree does not yet support negated pathspec
+ + ls-tree: disable negative pathspec because it's not supported
+ + ls-tree: remove path filtering logic in show_tree
+ + tree.c: update read_tree_recursive callback to pass strbuf as base
+
+ "git ls-tree" does not support path selection based on negative
+ pathspecs, but did not error out when negative pathspecs are given.
+
+
+* nd/split-index (2014-12-11) 1 commit
+  (merged to 'next' on 2014-12-15 at ed6490c)
+ + index-format.txt: add a missing closing quote
+
+ A typofix to the documentation of a feature already in the release.
+
+
+* ok/rebase-i-count-todo (2014-12-10) 1 commit
+  (merged to 'next' on 2014-12-15 at 4a1f7ed)
+ + Show number of TODO items for interactive rebase
+
+
+* pb/am-message-id-footer (2014-11-25) 2 commits
+  (merged to 'next' on 2014-12-15 at b44b6bd)
+ + git-am: add --message-id/--no-message-id
+ + git-mailinfo: add --message-id
+
+ "git am" learned "--message-id" option to copy the message ID of
+ the incoming e-mail to the log message of resulting commit.
+
+
+* pb/send-email-te (2014-11-25) 2 commits
+  (merged to 'next' on 2014-12-15 at 38c2810)
+ + git-send-email: add --transfer-encoding option
+ + git-send-email: delay creation of MIME headers
+ (this branch is used by jc/t9001-modernise.)
+
+ "git send-email" learned "--transfer-encoding" option to force
+ a non-fault Content-Transfer-Encoding header (e.g. base64).
+
+
+* po/doc-assume-unchanged (2014-12-09) 2 commits
+  (merged to 'next' on 2014-12-15 at 646e77e)
+ + gitignore.txt: do not suggest assume-unchanged
+ + doc: make clear --assume-unchanged's user contract
+
+ Fixes long-standing misunderstanding of what assume-unchanged is
+ about.  Some text near what is removed by the bottom patch may also
+ have to be removed.
+
+
+* ps/new-workdir-into-empty-directory (2014-12-03) 1 commit
+  (merged to 'next' on 2014-12-15 at 0787b56)
+ + git-new-workdir: don't fail if the target directory is empty
+
+ "git new-workdir" (in contrib/) can be used to populate an empty
+ and existing directory now.
+
+
+* rj/no-xopen-source-for-cygwin (2014-11-24) 1 commit
+  (merged to 'next' on 2014-12-15 at 6e8e9ff)
+ + git-compat-util.h: don't define _XOPEN_SOURCE on cygwin
+
+ Avoid compilation warnings on recent gcc toolchain on Cygwin.
+
+
+* rj/t0050-passes (2014-11-30) 1 commit
+  (merged to 'next' on 2014-12-15 at f56c339)
+ + t0050-*.sh: mark the rename (case change) test as passing
+
+
+* rs/use-strbuf-complete-line (2014-12-12) 1 commit
+  (merged to 'next' on 2014-12-15 at d6426a0)
+ + use strbuf_complete_line() for adding a newline if needed
+
+
+* rt/completion-tag (2014-12-04) 1 commit
+  (merged to 'next' on 2014-12-15 at b03ee39)
+ + completion: add git-tag options
+
+
+* rt/for-each-ref-spell-tcl-as-Tcl (2014-11-30) 1 commit
+  (merged to 'next' on 2014-12-15 at c0fcefb)
+ + for-each-ref: correct spelling of Tcl in option description
+
+
+* rw/apply-does-not-take-ignore-date (2014-12-09) 1 commit
+  (merged to 'next' on 2014-12-15 at ded2f99)
+ + git-am.txt: --ignore-date flag is not passed to git-apply
+
+
+* sb/string-list (2014-12-04) 3 commits
+  (merged to 'next' on 2014-12-15 at 8bb8ddd)
+ + string_list: remove string_list_insert_at_index() from its API
+ + mailmap: use higher level string list functions
+ + string_list: document string_list_(insert,lookup)
+
+ API simplification.
+
+
+* sv/doc-stripspace (2014-12-04) 1 commit
+  (merged to 'next' on 2014-12-15 at e86f8ba)
+ + Documentation/git-stripspace: add synopsis for --comment-lines
 
-* nd/split-index (2014-12-11) 1 commit
-  (merged to 'next' on 2014-12-15 at ed6490c)
- + index-format.txt: add a missing closing quote
 
- A typofix to the documentation of a feature already in the release.
+* tb/config-core-filemode-check-on-broken-fs (2014-11-21) 1 commit
+  (merged to 'next' on 2014-12-15 at 3e5490b)
+ + init-db: improve the filemode trustability check
 
- Will merge to 'master'.
+ Some filesystems assign filemodes in a strange way, fooling then
+ automatic "filemode trustability" check done during a new
+ repository creation.
 
 
-* ch/new-gpg-drops-rfc-1991 (2014-12-12) 4 commits
-  (merged to 'next' on 2014-12-15 at 32d7d50)
- + tests: squelch noise from GPG machinery set-up
- + tests: replace binary GPG keyrings with ASCII-armored keys
- + tests: skip RFC1991 tests for gnupg 2.1
- + tests: create gpg homedir on the fly
+* tb/t0027-eol-conversion (2014-12-05) 1 commit
+  (merged to 'next' on 2014-12-15 at ba24e75)
+ + t0027: check the eol conversion warnings
 
- Recent GPG changes the keyring format and drops support for RFC1991
- formatted signatures, breaking our existing tests.
+--------------------------------------------------
+[New Topics]
 
- Will merge to 'master'.
+* bb/update-unicode-table (2014-12-22) 5 commits
+ - update_unicode.sh: delete the command group
+ - update_unicode.sh: make the output structure visible
+ - update_unicode.sh: shorten uniset invocation path
+ - update_unicode.sh: set UNICODE_DIR only once
+ - update_unicode.sh: simplify output capture
 
+ Simplify the procedure to generate unicode table.
 
-* jg/prompt-localize-temporary (2014-12-12) 1 commit
-  (merged to 'next' on 2014-12-15 at bb9cac9)
- + git-prompt.sh: make $f local to __git_eread()
+ Will merge to 'next'.
 
- "git-prompt" (in contrib/) used a variable from the global scope,
- possibly contaminating end-user's namespace.
 
- Will merge to 'master'.
+* bc/fetch-thin-less-aggressive-in-normal-repository (2014-12-22) 3 commits
+ - pack-objects: use --objects-edge-aggressive only for shallow repos
+ - rev-list: add an option to mark fewer edges as uninteresting
+ - Documentation: add missing article in rev-list-options.txt
 
+ Earlier we made "rev-list --object-edge" more aggressively list the
+ objects at the edge commits, in order to reduce number of objects
+ fetched into a shallow repository, but the change affected cases
+ other than "fetching into a shallow repository" and made it
+ unusably slow (e.g. fetching into a normal repository should not
+ have to suffer the overhead from extra processing).  Limit it to a
+ more specific case by introducing --objects-edge-aggressive, a new
+ option to rev-list.
 
-* jk/strbuf-doc-to-header (2014-12-12) 4 commits
- - strbuf.h: reorganize api function grouping headers
- - strbuf.h: format asciidoc code blocks as 4-space indent
- - strbuf.h: drop asciidoc list formatting from API docs
- - strbuf: migrate api-strbuf.txt documentation to strbuf.h
+ Seems to break t5500 when merged to 'pu'.
 
- Resolve the "doc vs header" to favor the latter.
 
- Expecting to be rerolled.
+* es/squelch-openssl-warnings-on-macosx (2014-12-18) 1 commit
+ - git-compat-util: suppress unavoidable Apple-specific deprecation warnings
 
+ Squelch useless compiler warnings on Mac OS X.
 
-* mh/reflog-expire (2014-12-12) 24 commits
- - refs.c: let fprintf handle the formatting
- - refs.c: don't expose the internal struct ref_lock in the header file
- - lock_any_ref_for_update(): inline function
- - refs.c: remove unlock_ref/close_ref/commit_ref from the refs api
- - reflog_expire(): new function in the reference API
- - expire_reflog(): treat the policy callback data as opaque
- - Move newlog and last_kept_sha1 to "struct expire_reflog_cb"
- - expire_reflog(): move rewrite to flags argument
- - expire_reflog(): move verbose to flags argument
- - expire_reflog(): pass flags through to expire_reflog_ent()
- - struct expire_reflog_cb: a new callback data type
- - Rename expire_reflog_cb to expire_reflog_policy_cb
- - expire_reflog(): move updateref to flags argument
- - expire_reflog(): move dry_run to flags argument
- - expire_reflog(): add a "flags" argument
- - expire_reflog(): extract two policy-related functions
- - Extract function should_expire_reflog_ent()
- - expire_reflog(): use a lock_file for rewriting the reflog file
- - expire_reflog(): return early if the reference has no reflog
- - expire_reflog(): rename "ref" parameter to "refname"
- - expire_reflog(): it's not an each_ref_fn anymore
- - refs.c: add a function to append a reflog entry to a fd
- - refs.c: make ref_transaction_delete a wrapper for ref_transaction_update
- - refs.c: make ref_transaction_create a wrapper for ref_transaction_update
+ Will merge to 'next'.
 
- Restructure "reflog expire" to fit the reflogs better with the
- recently updated ref API.
 
- Looked reasonable (except that ome shortlog entries stood out like
- a sore thumb).
+* jh/pre-push-sample-no-custom-ifs (2014-12-22) 1 commit
+ - pre-push.sample: remove unnecessary and misleading IFS=' '
 
+ The sample pre-push hook used customized IFS=' ' for no good reason.
 
-* po/doc-core-ignorestat (2014-12-12) 1 commit
- - doc: core.ignoreStat clarify the --assume-unchanged effect
+ Will merge to 'next'.
 
- Expecting a reroll.
 
+* mh/update-ref-verify (2014-12-11) 2 commits
+ - update-ref: fix "verify" command with missing <oldvalue>
+ - t1400: add some more tests of "update-ref --stdin"'s verify command
 
-* rs/use-strbuf-complete-line (2014-12-12) 1 commit
-  (merged to 'next' on 2014-12-15 at d6426a0)
- + use strbuf_complete_line() for adding a newline if needed
+ "git update-ref --stdin"'s verify command did not work well when
+ <oldvalue>, which is documented as optional, was missing.
 
- Will merge to 'master'.
+ Will merge to 'next'.
 
 
-* jk/add-i-read-error (2014-12-15) 1 commit
- - add--interactive: leave main loop on read error
+* sb/atomic-push (2014-12-22) 7 commits
+ - t5543-atomic-push.sh: add basic tests for atomic pushes
+ - push.c: add an --atomic argument
+ - receive-pack: move execute_commands_non_atomic before execute_commands
+ - receive-pack.c: receive-pack.c: use a single ref_transaction for atomic pushes
+ - send-pack.c: add --atomic command line argument
+ - send-pack: rename ref_update_to_be_sent to check_to_send_update
+ - receive-pack.c: add protocol support to negotiate atomic-push
+ (this branch uses mh/reflog-expire.)
 
- "git add -i" did not notice when the interactive command input
stream went away and kept asking.
+ "git push" has been taught a "--atomic" option that makes push to
update more than one ref an "all-or-none" affair.
 
  Will merge to 'next'.
 
 
-* pd/completion-filenames-fix (2014-12-15) 1 commit
- - Update documentation occurrences of filename .sh
+* sb/dco-indentation-fix (2014-12-22) 1 commit
+ - Documentation/SubmittingPatches: unify whitespace/tabs for the DCO
 
- The top-of-the-file instruction for completion scripts (in contrib/)
- did not name the files correctly.
+ Will merge to 'next'.
+
+
+* sb/t5400-remove-unused (2014-12-16) 1 commit
+ - t5400: remove dead code
 
  Will merge to 'next'.
 
 
-* rd/send-email-2047-fix (2014-12-15) 2 commits
- - send-email: handle adjacent RFC 2047-encoded words properly
- - send-email: align RFC 2047 decoding more closely with the spec
+* tf/prompt-preserve-exit-status (2014-12-22) 1 commit
+ - git-prompt: preserve value of $? inside shell prompt
 
- "git send-email" did not handle RFC 2047 encoded headers quite
- right.
+ Using the exit status of the last command in the prompt, e.g.
+ PS1='$(__git_ps1) $? ', did not work well because the helper
+ function stomped on the exit status.
 
  Will merge to 'next'.
 
@@ -233,13 +477,6 @@ of the repositories listed at
  Expecting a reroll.
 
 
-* ye/http-accept-language (2014-12-03) 2 commits
- . SQUASH???
- . http: send Accept-Language header if possible
-
- Breaks various people ($gmane/260903).
-
-
 * ms/submodule-update-config-doc (2014-11-03) 1 commit
  - submodule: clarify documentation for update subcommand
 
@@ -384,177 +621,96 @@ of the repositories listed at
 --------------------------------------------------
 [Cooking]
 
-* dm/compat-s-ifmt-for-zos (2014-12-04) 1 commit
-  (merged to 'next' on 2014-12-15 at 0eb2fe6)
- + compat: convert modes to use portable file type values
-
- Long overdue departure from the assumption that S_IFMT is shared by
- everybody made in 2005.
-
- Will merge to 'master'.
-
-
-* jk/credential-quit (2014-12-04) 2 commits
-  (merged to 'next' on 2014-12-15 at 4cfd999)
- + prompt: respect GIT_TERMINAL_PROMPT to disable terminal prompts
- + credential: let helpers tell us to quit
-
- Credential helpers are asked in turn until one of them give
- positive response, which is cumbersome to turn off when you need to
- run Git in an automated setting.  The credential helper interface
- learned to allow a helper to say "stop, don't ask other helpers."
- Also GIT_TERMINAL_PROMPT environment can be set to false to disable
- our built-in prompt mechanism for passwords.
-
- Will merge to 'master'.
-
-
-* mg/branch-d-m-f (2014-12-09) 2 commits
-  (merged to 'next' on 2014-12-15 at 8366f2c)
- + branch: allow -f with -m and -d
- + t3200-branch: test -M
-
- "git branch -d" (delete) and "git branch -m" (move) learned to
- honor "-f" (force) flag; unlike many other subcommands, the way to
- force these have been with separate "-D/-M" options, which was
- inconsistent.
-
- Will merge to 'master'.
-
+* ye/http-accept-language (2014-12-22) 1 commit
+ - http: Add Accept-Language header if possible
 
-* mg/doc-check-ignore-tracked-are-not-ignored (2014-12-04) 1 commit
-  (merged to 'next' on 2014-12-15 at c50f748)
- + check-ignore: clarify treatment of tracked files
-
- Will merge to 'master'.
-
-
-* rt/completion-tag (2014-12-04) 1 commit
-  (merged to 'next' on 2014-12-15 at b03ee39)
- + completion: add git-tag options
-
- Will merge to 'master'.
-
-
-* jk/for-each-reflog-ent-reverse (2014-12-05) 2 commits
-  (merged to 'next' on 2014-12-15 at de71f08)
- + for_each_reflog_ent_reverse: turn leftover check into assertion
- + for_each_reflog_ent_reverse: fix newlines on block boundaries
-
- The code that reads the reflog from the newer to the older entries
- did not handle an entry that crosses a boundary of block it uses to
- read them correctly.
-
- Will merge to 'master'.
-
-
-* po/doc-assume-unchanged (2014-12-09) 2 commits
-  (merged to 'next' on 2014-12-15 at 646e77e)
- + gitignore.txt: do not suggest assume-unchanged
- + doc: make clear --assume-unchanged's user contract
-
- Fixes long-standing misunderstanding of what assume-unchanged is
- about.  Some text near what is removed by the bottom patch may also
- have to be removed.
-
- Will merge to 'master'.
-
-
-* tb/t0027-eol-conversion (2014-12-05) 1 commit
-  (merged to 'next' on 2014-12-15 at ba24e75)
- + t0027: check the eol conversion warnings
-
- Will merge to 'master'.
-
-
-* jk/always-allow-large-packets (2014-12-10) 1 commit
-  (merged to 'next' on 2014-12-15 at c3fb2c8)
- + pkt-line: allow writing of LARGE_PACKET_MAX buffers
-
- "git push" and "git fetch" did not communicate an overlong refname
- correctly.
-
- Will merge to 'master'.
-
-
-* jk/commit-date-approxidate (2014-12-11) 2 commits
-  (merged to 'next' on 2014-12-15 at 047530e)
- + commit: always populate GIT_AUTHOR_* variables
- + commit: loosen ident checks when generating template
-
- Recent update to "git commit" broke amending an existing commit
- with bogus author/committer lines without a valid e-mail address.
-
- Will merge to 'master'.
-
-
-* jk/read-packed-refs-without-path-max (2014-12-10) 3 commits
-  (merged to 'next' on 2014-12-15 at c6d6f56)
- + read_packed_refs: use skip_prefix instead of static array
- + read_packed_refs: pass strbuf to parse_ref_line
- + read_packed_refs: use a strbuf for reading lines
+ An earlier iteration broke various people ($gmane/260903).  Please
+ retest and comment.
 
- Git did not correctly read an overlong refname from a packed refs
- file.
 
- Will merge to 'master'.
+* jk/strbuf-doc-to-header (2014-12-12) 4 commits
+ - strbuf.h: reorganize api function grouping headers
+ - strbuf.h: format asciidoc code blocks as 4-space indent
+ - strbuf.h: drop asciidoc list formatting from API docs
+ - strbuf: migrate api-strbuf.txt documentation to strbuf.h
 
+ Resolve the "doc vs header" to favor the latter.
 
-* jn/doc-api-errors (2014-12-04) 1 commit
- - doc: document error handling functions and conventions
+ Expecting to be rerolled.
 
- For discussion.
 
+* mh/reflog-expire (2014-12-22) 24 commits
+ - refs.c: let fprintf handle the formatting
+ - refs.c: don't expose the internal struct ref_lock in the header file
+ - lock_any_ref_for_update(): inline function
+ - refs.c: remove unlock_ref/close_ref/commit_ref from the refs api
+ - reflog_expire(): new function in the reference API
+ - expire_reflog(): treat the policy callback data as opaque
+ - Move newlog and last_kept_sha1 to "struct expire_reflog_cb"
+ - expire_reflog(): move rewrite to flags argument
+ - expire_reflog(): move verbose to flags argument
+ - expire_reflog(): pass flags through to expire_reflog_ent()
+ - struct expire_reflog_cb: a new callback data type
+ - Rename expire_reflog_cb to expire_reflog_policy_cb
+ - expire_reflog(): move updateref to flags argument
+ - expire_reflog(): move dry_run to flags argument
+ - expire_reflog(): add a "flags" argument
+ - expire_reflog(): extract two policy-related functions
+ - Extract function should_expire_reflog_ent()
+ - expire_reflog(): use a lock_file for rewriting the reflog file
+ - expire_reflog(): return early if the reference has no reflog
+ - expire_reflog(): rename "ref" parameter to "refname"
+ - expire_reflog(): it's not an each_ref_fn anymore
+ - refs.c: add a function to append a reflog entry to a fd
+ - refs.c: make ref_transaction_delete a wrapper for ref_transaction_update
+ - refs.c: make ref_transaction_create a wrapper for ref_transaction_update
+ (this branch is used by sb/atomic-push.)
 
-* js/fsck-tag-validation (2014-12-09) 2 commits
-  (merged to 'next' on 2014-12-15 at 455f26c)
- + index-pack: terminate object buffers with NUL
- + fsck: properly bound "invalid tag name" error message
+ Restructure "reflog expire" to fit the reflogs better with the
+ recently updated ref API.
 
New tag object format validation added in 2.2 showed garbage
- after a tagname it reported in its error message.
Looked reasonable (except that some shortlog entries stood out like
+ a sore thumb).
 
- Will merge to 'master'.
 
+* po/doc-core-ignorestat (2014-12-12) 1 commit
+ - doc: core.ignoreStat clarify the --assume-unchanged effect
 
-* js/test-hashmap-squelch-gcc (2014-12-09) 1 commit
-  (merged to 'next' on 2014-12-15 at a8da691)
- + test-hashmap: squelch gcc compiler warning
+ Expecting a reroll.
 
- Will merge to 'master'.
 
+* jk/add-i-read-error (2014-12-15) 1 commit
+ - add--interactive: leave main loop on read error
 
-* ok/rebase-i-count-todo (2014-12-10) 1 commit
-  (merged to 'next' on 2014-12-15 at 4a1f7ed)
- + Show number of TODO items for interactive rebase
+ "git add -i" did not notice when the interactive command input
+ stream went away and kept asking.
 
- Will merge to 'master'.
+ Will merge to 'next'.
 
 
-* rw/apply-does-not-take-ignore-date (2014-12-09) 1 commit
-  (merged to 'next' on 2014-12-15 at ded2f99)
- + git-am.txt: --ignore-date flag is not passed to git-apply
+* pd/completion-filenames-fix (2014-12-15) 1 commit
+ - Update documentation occurrences of filename .sh
 
- Will merge to 'master'.
+ The top-of-the-file instruction for completion scripts (in contrib/)
+ did not name the files correctly.
 
+ Will merge to 'next'.
 
-* jc/exec-cmd-system-path-leak-fix (2014-11-30) 1 commit
-  (merged to 'next' on 2014-12-15 at f926ee5)
- + system_path(): always return free'able memory to the caller
 
- The function sometimes returned a non-freeable memory and some
- other times returned a piece of memory that must be freed.
+* rd/send-email-2047-fix (2014-12-15) 2 commits
+ - send-email: handle adjacent RFC 2047-encoded words properly
+ - send-email: align RFC 2047 decoding more closely with the spec
 
- Will merge to 'master'.
+ "git send-email" did not handle RFC 2047 encoded headers quite
+ right.
 
+ Will merge to 'next'.
 
-* jc/hook-cleanup (2014-12-01) 1 commit
-  (merged to 'next' on 2014-12-15 at f5759d0)
- + run-command.c: retire unused run_hook_with_custom_index()
 
- Remove unused code.
+* jn/doc-api-errors (2014-12-04) 1 commit
+ - doc: document error handling functions and conventions
 
Will merge to 'master'.
For discussion.
 
 
 * jn/rerere-fail-on-auto-update-failure (2014-12-03) 2 commits
@@ -564,25 +720,9 @@ of the repositories listed at
  Will be rerolled as a part of a larger series.
 
 
-* js/push-to-deploy (2014-11-30) 2 commits
-  (merged to 'next' on 2014-12-15 at ef8c99f)
- + t5516: more tests for receive.denyCurrentBranch=updateInstead
- + receive-pack: add another option for receive.denyCurrentBranch
- (this branch is used by jc/push-to-checkout.)
-
- "git push" into a repository with a working tree normally refuses
- to modify the branch that is checked out.  The command learned to
- optionally do an equivalent of "git reset --hard" only when there
- is no change to the working tree and the index instead, which would
- be useful to "deploy" by pushing into a repository.
-
- Will merge to 'master'.
-
-
 * jc/push-to-checkout (2014-12-01) 2 commits
  - receive-pack: support push-to-checkout hook
  - receive-pack: refactor updateInstead codepath
- (this branch uses js/push-to-deploy.)
 
  Extending the js/push-to-deploy topic, the behaviour of "git push"
  when updating the working tree and the index with an update to the
@@ -591,17 +731,15 @@ of the repositories listed at
  Needs docs.
 
 
-* lh/send-email-hide-x-mailer (2014-12-11) 4 commits
- - SQUASH???
+* lh/send-email-hide-x-mailer (2014-12-15) 2 commits
  - test/send-email: --[no-]xmailer tests
- - SQUASH???
  - send-email: add --[no-]xmailer option
 
  "git send-email" normally identifies itself via X-Mailer: header
  in the message it sends out.  A new command line flag allows the
  header to be squelched.
 
- Will merge to 'next' after squashing the fixups.
+ Will merge to 'next'.
 
 
 * nd/list-files (2014-12-01) 19 commits
@@ -629,42 +767,6 @@ of the repositories listed at
  whistles.
 
 
-* nd/ls-tree-pathspec (2014-12-01) 5 commits
-  (merged to 'next' on 2014-12-15 at 8da6e09)
- + t3102: style modernization
- + t3102: document that ls-tree does not yet support negated pathspec
- + ls-tree: disable negative pathspec because it's not supported
- + ls-tree: remove path filtering logic in show_tree
- + tree.c: update read_tree_recursive callback to pass strbuf as base
-
- "git ls-tree" does not support path selection based on negative
- pathspecs, but did not error out when negative pathspecs are given.
-
- Will merge to 'master'.
-
-
-* rj/t0050-passes (2014-11-30) 1 commit
-  (merged to 'next' on 2014-12-15 at f56c339)
- + t0050-*.sh: mark the rename (case change) test as passing
-
- Will merge to 'master'.
-
-
-* rt/for-each-ref-spell-tcl-as-Tcl (2014-11-30) 1 commit
-  (merged to 'next' on 2014-12-15 at c0fcefb)
- + for-each-ref: correct spelling of Tcl in option description
-
- Will merge to 'master'.
-
-
-* sb/ref-transaction-reflog (2014-12-03) 2 commits
- . refs.c: rename transaction.updates to transaction.ref_updates
- . refs.c: rename the transaction functions
- (this branch uses sb/ref-transaction-unify-to-update.)
-
- Will be rerolled as a part of a larger series.
-
-
 * nd/multiple-work-trees (2014-12-01) 34 commits
  - git-common-dir: make "modules/" per-working-directory directory
  - checkout: do not fail if target is an empty directory
@@ -706,178 +808,18 @@ of the repositories listed at
  by making the borrowee and borrowers aware of each other.
 
 
-* jk/colors (2014-12-09) 6 commits
-  (merged to 'next' on 2014-12-15 at 20b045f)
- + parse_color: drop COLOR_BACKGROUND macro
- + diff-highlight: allow configurable colors
- + parse_color: recognize "no$foo" to clear the $foo attribute
- + parse_color: support 24-bit RGB values
- + parse_color: refactor color storage
- + Merge branch 'jn/parse-config-slot' into jk/colors
-
- "diff-highlight" filter (in contrib/) allows its color output
- to be customized via configuration variables.
-
- Will merge to 'master'.
-
-
-* jk/lock-ref-sha1-basic-return-errors (2014-11-20) 1 commit
-  (merged to 'next' on 2014-12-15 at c48b110)
- + lock_ref_sha1_basic: do not die on locking errors
-
- Correct an API anomaly.
-
- Will merge to 'master'.
-
-
-* ps/new-workdir-into-empty-directory (2014-12-03) 1 commit
-  (merged to 'next' on 2014-12-15 at 0787b56)
- + git-new-workdir: don't fail if the target directory is empty
-
- "git new-workdir" (in contrib/) can be used to populate an empty
- and existing directory now.
-
- Will merge to 'master'.
-
-
 * sb/copy-fd-errno (2014-11-17) 1 commit
  - copy.c: make copy_fd preserve meaningful errno
 
  Will be rerolled as a part of a larger series.
 
 
-* sv/doc-stripspace (2014-12-04) 1 commit
-  (merged to 'next' on 2014-12-15 at e86f8ba)
- + Documentation/git-stripspace: add synopsis for --comment-lines
-
- Will merge to 'master'.
-
-
-* dw/shell-basename-dashdash-before-stripping-leading-dash-from-login (2014-11-25) 1 commit
-  (merged to 'next' on 2014-12-15 at 42937b7)
- + git-sh-setup.sh: use dashdash with basename call
-
- Will merge to 'master'.
-
-
-* jc/refer-to-t-readme-from-submitting-patches (2014-11-24) 2 commits
-  (merged to 'next' on 2014-12-15 at 0e88699)
- + t/README: justify why "! grep foo" is sufficient
- + SubmittingPatches: refer to t/README for tests
-
- Will merge to 'master'.
-
-
 * jc/t9001-modernise (2014-11-25) 5 commits
  - t9001: style modernisation phase #5
  - t9001: style modernisation phase #4
  - t9001: style modernisation phase #3
  - t9001: style modernisation phase #2
  - t9001: style modernisation phase #1
- (this branch uses pb/send-email-te.)
-
-
-* js/t5000-dont-copy-bin-sh (2014-11-24) 1 commit
-  (merged to 'next' on 2014-12-15 at 65ffd05)
- + t5000 on Windows: do not mistake "sh.exe" as "sh"
-
- Will merge to 'master'.
-
-
-* mg/add-ignore-errors (2014-11-21) 1 commit
-  (merged to 'next' on 2014-12-15 at 3834789)
- + add: ignore only ignored files
-
- "git add --ignore-errors ..." did not ignore an error to
- give a file that did not exist.
-
- Will merge to 'master'.
-
-
-* mh/find-uniq-abbrev (2014-11-26) 1 commit
-  (merged to 'next' on 2014-12-15 at e3b2b62)
- + sha1_name: avoid unnecessary sha1 lookup in find_unique_abbrev
-
- The code to abbreviate an object name to its short unique prefix
- has been optimized when no abbreviation was requested.
-
- Will merge to 'master'.
-
-
-* mh/simplify-repack-without-refs (2014-11-25) 7 commits
-  (merged to 'next' on 2014-12-15 at 351e03e)
- + sort_string_list(): rename to string_list_sort()
- + prune_remote(): iterate using for_each_string_list_item()
- + prune_remote(): rename local variable
- + repack_without_refs(): make the refnames argument a string_list
- + prune_remote(): sort delete_refs_list references en masse
- + prune_remote(): initialize both delete_refs lists in a single loop
- + prune_remote(): exit early if there are no stale references
-
- "git remote update --prune" to drop many refs has been optimized.
-
- Will merge to 'master'.
-
-
-* pb/am-message-id-footer (2014-11-25) 2 commits
-  (merged to 'next' on 2014-12-15 at b44b6bd)
- + git-am: add --message-id/--no-message-id
- + git-mailinfo: add --message-id
-
- "git am" learned "--message-id" option to copy the message ID of
- the incoming e-mail to the log message of resulting commit.
-
- Will merge to 'master'.
-
-
-* pb/send-email-te (2014-11-25) 2 commits
-  (merged to 'next' on 2014-12-15 at 38c2810)
- + git-send-email: add --transfer-encoding option
- + git-send-email: delay creation of MIME headers
- (this branch is used by jc/t9001-modernise.)
-
- "git send-email" learned "--transfer-encoding" option to force
- a non-fault Content-Transfer-Encoding header (e.g. base64).
-
- Will merge to 'master'.
-
-
-* rj/no-xopen-source-for-cygwin (2014-11-24) 1 commit
-  (merged to 'next' on 2014-12-15 at 6e8e9ff)
- + git-compat-util.h: don't define _XOPEN_SOURCE on cygwin
-
- Avoid compilation warnings on recent gcc toolchain on Cygwin.
-
- Will merge to 'master'.
-
-
-* sb/string-list (2014-12-04) 3 commits
-  (merged to 'next' on 2014-12-15 at 8bb8ddd)
- + string_list: remove string_list_insert_at_index() from its API
- + mailmap: use higher level string list functions
- + string_list: document string_list_(insert,lookup)
-
- API simplification.
-
- Will merge to 'master'.
-
-
-* sb/write-sha1-update-reflog (2014-11-24) 1 commit
- . refs.c: move reflog updates into its own function
-
- Moves a part of function around to add a helper that still only has
- one caller.  Need to see how this helps in a bigger picture.
-
-
-* tb/config-core-filemode-check-on-broken-fs (2014-11-21) 1 commit
-  (merged to 'next' on 2014-12-15 at 3e5490b)
- + init-db: improve the filemode trustability check
-
- Some filesystems assign filemodes in a strange way, fooling then
- automatic "filemode trustability" check done during a new
- repository creation.
-
- Will merge to 'master'.
 
 
 * jk/approxidate-avoid-y-d-m-over-future-dates (2014-11-13) 2 commits
@@ -917,20 +859,6 @@ of the repositories listed at
  Will cook in 'next'.
 
 
-* cc/interpret-trailers-more (2014-11-10) 4 commits
-  (merged to 'next' on 2014-12-15 at 77f6c6a)
- + trailer: add test with an old style conflict block
- + trailer: reuse ignore_non_trailer() to ignore conflict lines
- + commit: make ignore_non_trailer() non static
- + Merge branch 'jc/conflict-hint' into cc/interpret-trailers-more
- (this branch uses jc/conflict-hint.)
-
- "git interpret-trailers" learned to properly handle the
- "Conflicts:" block at the end.
-
- Will merge to 'master'.
-
-
 * nd/lockfile-absolute (2014-11-03) 1 commit
   (merged to 'next' on 2014-12-15 at 34db9af)
  + lockfile.c: store absolute path
@@ -993,20 +921,6 @@ of the repositories listed at
  Comments?
 
 
-* jc/conflict-hint (2014-10-28) 4 commits
-  (merged to 'next' on 2014-12-15 at b72475f)
- + merge & sequencer: turn "Conflicts:" hint into a comment
- + builtin/commit.c: extract ignore_non_trailer() helper function
- + merge & sequencer: unify codepaths that write "Conflicts:" hint
- + builtin/merge.c: drop a parameter that is never used
- (this branch is used by cc/interpret-trailers-more.)
-
- Unlike all the other hints given in the commit log editor, the list
- of conflicted paths were appended at the end without commented out.
-
- Will cook in 'next'.
-
-
 * jc/diff-b-m (2014-10-23) 1 commit
   (merged to 'next' on 2014-12-15 at 59c6636)
  + diff -B -M: fix output for "copy and then rewrite" case
@@ -1155,3 +1069,17 @@ of the repositories listed at
  Code simplification.
 
  Will be rerolled as a part of a larger series.
+
+* sb/write-sha1-update-reflog (2014-11-24) 1 commit
+ . refs.c: move reflog updates into its own function
+
+ Moves a part of function around to add a helper that still only has
+ one caller.  Need to see how this helps in a bigger picture.
+
+
+* sb/ref-transaction-reflog (2014-12-03) 2 commits
+ . refs.c: rename transaction.updates to transaction.ref_updates
+ . refs.c: rename the transaction functions
+ (this branch uses sb/ref-transaction-unify-to-update.)
+
+ Will be rerolled as a part of a larger series.