What's cooking (2014/12 #04)
[alt-git.git] / whats-cooking.txt
blob9a714144ae40d9371a9d054e1abb8c5413ed9edf
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Dec 2014, #04; Mon, 22)
4 X-master-at: bbcefffcea9789e4a1a2023a1c778e2c07db77a7
5 X-next-at: 0ad48deaa29372e974d108b05da375b40a954ec2
7 What's cooking in git.git (Dec 2014, #04; Mon, 22)
8 --------------------------------------------------
10 Here are the topics that have been cooking.  Commits prefixed with
11 '-' are only in 'pu' (proposed updates) while commits prefixed with
12 '+' are in 'next'.
14 Quite a few topics have been merged to 'master' as the third batch
15 for this cycle, on top of the recent "case sensitive .Git" fix that
16 has been publicized very widely.  The next release which is expected
17 to be a small one is taking shape.
19 You can find the changes described here in the integration branches
20 of the repositories listed at
22     http://git-blame.blogspot.com/p/git-public-repositories.html
24 --------------------------------------------------
25 [Graduated to "master"]
27 * cc/interpret-trailers-more (2014-11-10) 4 commits
28   (merged to 'next' on 2014-12-15 at 77f6c6a)
29  + trailer: add test with an old style conflict block
30  + trailer: reuse ignore_non_trailer() to ignore conflict lines
31  + commit: make ignore_non_trailer() non static
32  + Merge branch 'jc/conflict-hint' into cc/interpret-trailers-more
33  (this branch uses jc/conflict-hint.)
35  "git interpret-trailers" learned to properly handle the
36  "Conflicts:" block at the end.
39 * ch/new-gpg-drops-rfc-1991 (2014-12-12) 4 commits
40   (merged to 'next' on 2014-12-15 at 32d7d50)
41  + tests: squelch noise from GPG machinery set-up
42  + tests: replace binary GPG keyrings with ASCII-armored keys
43  + tests: skip RFC1991 tests for gnupg 2.1
44  + tests: create gpg homedir on the fly
46  Recent GPG changes the keyring format and drops support for RFC1991
47  formatted signatures, breaking our existing tests.
50 * dm/compat-s-ifmt-for-zos (2014-12-04) 1 commit
51   (merged to 'next' on 2014-12-15 at 0eb2fe6)
52  + compat: convert modes to use portable file type values
54  Long overdue departure from the assumption that S_IFMT is shared by
55  everybody made in 2005.
58 * dw/shell-basename-dashdash-before-stripping-leading-dash-from-login (2014-11-25) 1 commit
59   (merged to 'next' on 2014-12-15 at 42937b7)
60  + git-sh-setup.sh: use dashdash with basename call
63 * jc/conflict-hint (2014-10-28) 4 commits
64   (merged to 'next' on 2014-12-15 at b72475f)
65  + merge & sequencer: turn "Conflicts:" hint into a comment
66  + builtin/commit.c: extract ignore_non_trailer() helper function
67  + merge & sequencer: unify codepaths that write "Conflicts:" hint
68  + builtin/merge.c: drop a parameter that is never used
69  (this branch is used by cc/interpret-trailers-more.)
71  Unlike all the other hints given in the commit log editor, the list
72  of conflicted paths were appended at the end without commented out.
75 * jc/exec-cmd-system-path-leak-fix (2014-11-30) 1 commit
76   (merged to 'next' on 2014-12-15 at f926ee5)
77  + system_path(): always return free'able memory to the caller
79  The function sometimes returned a non-freeable memory and some
80  other times returned a piece of memory that must be freed.
83 * jc/hook-cleanup (2014-12-01) 1 commit
84   (merged to 'next' on 2014-12-15 at f5759d0)
85  + run-command.c: retire unused run_hook_with_custom_index()
87  Remove unused code.
90 * jc/refer-to-t-readme-from-submitting-patches (2014-11-24) 2 commits
91   (merged to 'next' on 2014-12-15 at 0e88699)
92  + t/README: justify why "! grep foo" is sufficient
93  + SubmittingPatches: refer to t/README for tests
96 * jg/prompt-localize-temporary (2014-12-12) 1 commit
97   (merged to 'next' on 2014-12-15 at bb9cac9)
98  + git-prompt.sh: make $f local to __git_eread()
100  "git-prompt" (in contrib/) used a variable from the global scope,
101  possibly contaminating end-user's namespace.
104 * jk/always-allow-large-packets (2014-12-10) 1 commit
105   (merged to 'next' on 2014-12-15 at c3fb2c8)
106  + pkt-line: allow writing of LARGE_PACKET_MAX buffers
108  "git push" and "git fetch" did not communicate an overlong refname
109  correctly.
112 * jk/colors (2014-12-09) 6 commits
113   (merged to 'next' on 2014-12-15 at 20b045f)
114  + parse_color: drop COLOR_BACKGROUND macro
115  + diff-highlight: allow configurable colors
116  + parse_color: recognize "no$foo" to clear the $foo attribute
117  + parse_color: support 24-bit RGB values
118  + parse_color: refactor color storage
119  + Merge branch 'jn/parse-config-slot' into jk/colors
121  "diff-highlight" filter (in contrib/) allows its color output
122  to be customized via configuration variables.
125 * jk/commit-date-approxidate (2014-12-11) 2 commits
126   (merged to 'next' on 2014-12-15 at 047530e)
127  + commit: always populate GIT_AUTHOR_* variables
128  + commit: loosen ident checks when generating template
130  Recent update to "git commit" broke amending an existing commit
131  with bogus author/committer lines without a valid e-mail address.
134 * jk/credential-quit (2014-12-04) 2 commits
135   (merged to 'next' on 2014-12-15 at 4cfd999)
136  + prompt: respect GIT_TERMINAL_PROMPT to disable terminal prompts
137  + credential: let helpers tell us to quit
139  Credential helpers are asked in turn until one of them give
140  positive response, which is cumbersome to turn off when you need to
141  run Git in an automated setting.  The credential helper interface
142  learned to allow a helper to say "stop, don't ask other helpers."
143  Also GIT_TERMINAL_PROMPT environment can be set to false to disable
144  our built-in prompt mechanism for passwords.
147 * jk/for-each-reflog-ent-reverse (2014-12-05) 2 commits
148   (merged to 'next' on 2014-12-15 at de71f08)
149  + for_each_reflog_ent_reverse: turn leftover check into assertion
150  + for_each_reflog_ent_reverse: fix newlines on block boundaries
152  The code that reads the reflog from the newer to the older entries
153  did not handle an entry that crosses a boundary of block it uses to
154  read them correctly.
157 * jk/lock-ref-sha1-basic-return-errors (2014-11-20) 1 commit
158   (merged to 'next' on 2014-12-15 at c48b110)
159  + lock_ref_sha1_basic: do not die on locking errors
161  Correct an API anomaly.
164 * jk/read-packed-refs-without-path-max (2014-12-10) 3 commits
165   (merged to 'next' on 2014-12-15 at c6d6f56)
166  + read_packed_refs: use skip_prefix instead of static array
167  + read_packed_refs: pass strbuf to parse_ref_line
168  + read_packed_refs: use a strbuf for reading lines
170  Git did not correctly read an overlong refname from a packed refs
171  file.
174 * jk/test-asan (2014-12-11) 1 commit
175   (merged to 'next' on 2014-12-15 at d24cb92)
176  + t: support clang/gcc AddressSanitizer
179 * js/fsck-tag-validation (2014-12-09) 2 commits
180   (merged to 'next' on 2014-12-15 at 455f26c)
181  + index-pack: terminate object buffers with NUL
182  + fsck: properly bound "invalid tag name" error message
184  New tag object format validation added in 2.2 showed garbage
185  after a tagname it reported in its error message.
188 * js/push-to-deploy (2014-11-30) 2 commits
189   (merged to 'next' on 2014-12-15 at ef8c99f)
190  + t5516: more tests for receive.denyCurrentBranch=updateInstead
191  + receive-pack: add another option for receive.denyCurrentBranch
192  (this branch is used by jc/push-to-checkout.)
194  "git push" into a repository with a working tree normally refuses
195  to modify the branch that is checked out.  The command learned to
196  optionally do an equivalent of "git reset --hard" only when there
197  is no change to the working tree and the index instead, which would
198  be useful to "deploy" by pushing into a repository.
201 * js/t5000-dont-copy-bin-sh (2014-11-24) 1 commit
202   (merged to 'next' on 2014-12-15 at 65ffd05)
203  + t5000 on Windows: do not mistake "sh.exe" as "sh"
206 * js/test-hashmap-squelch-gcc (2014-12-09) 1 commit
207   (merged to 'next' on 2014-12-15 at a8da691)
208  + test-hashmap: squelch gcc compiler warning
211 * mg/add-ignore-errors (2014-11-21) 1 commit
212   (merged to 'next' on 2014-12-15 at 3834789)
213  + add: ignore only ignored files
215  "git add --ignore-errors ..." did not ignore an error to
216  give a file that did not exist.
219 * mg/branch-d-m-f (2014-12-09) 2 commits
220   (merged to 'next' on 2014-12-15 at 8366f2c)
221  + branch: allow -f with -m and -d
222  + t3200-branch: test -M
224  "git branch -d" (delete) and "git branch -m" (move) learned to
225  honor "-f" (force) flag; unlike many other subcommands, the way to
226  force these have been with separate "-D/-M" options, which was
227  inconsistent.
230 * mg/doc-check-ignore-tracked-are-not-ignored (2014-12-04) 1 commit
231   (merged to 'next' on 2014-12-15 at c50f748)
232  + check-ignore: clarify treatment of tracked files
235 * mh/find-uniq-abbrev (2014-11-26) 1 commit
236   (merged to 'next' on 2014-12-15 at e3b2b62)
237  + sha1_name: avoid unnecessary sha1 lookup in find_unique_abbrev
239  The code to abbreviate an object name to its short unique prefix
240  has been optimized when no abbreviation was requested.
243 * mh/simplify-repack-without-refs (2014-11-25) 7 commits
244   (merged to 'next' on 2014-12-15 at 351e03e)
245  + sort_string_list(): rename to string_list_sort()
246  + prune_remote(): iterate using for_each_string_list_item()
247  + prune_remote(): rename local variable
248  + repack_without_refs(): make the refnames argument a string_list
249  + prune_remote(): sort delete_refs_list references en masse
250  + prune_remote(): initialize both delete_refs lists in a single loop
251  + prune_remote(): exit early if there are no stale references
253  "git remote update --prune" to drop many refs has been optimized.
256 * nd/ls-tree-pathspec (2014-12-01) 5 commits
257   (merged to 'next' on 2014-12-15 at 8da6e09)
258  + t3102: style modernization
259  + t3102: document that ls-tree does not yet support negated pathspec
260  + ls-tree: disable negative pathspec because it's not supported
261  + ls-tree: remove path filtering logic in show_tree
262  + tree.c: update read_tree_recursive callback to pass strbuf as base
264  "git ls-tree" does not support path selection based on negative
265  pathspecs, but did not error out when negative pathspecs are given.
268 * nd/split-index (2014-12-11) 1 commit
269   (merged to 'next' on 2014-12-15 at ed6490c)
270  + index-format.txt: add a missing closing quote
272  A typofix to the documentation of a feature already in the release.
275 * ok/rebase-i-count-todo (2014-12-10) 1 commit
276   (merged to 'next' on 2014-12-15 at 4a1f7ed)
277  + Show number of TODO items for interactive rebase
280 * pb/am-message-id-footer (2014-11-25) 2 commits
281   (merged to 'next' on 2014-12-15 at b44b6bd)
282  + git-am: add --message-id/--no-message-id
283  + git-mailinfo: add --message-id
285  "git am" learned "--message-id" option to copy the message ID of
286  the incoming e-mail to the log message of resulting commit.
289 * pb/send-email-te (2014-11-25) 2 commits
290   (merged to 'next' on 2014-12-15 at 38c2810)
291  + git-send-email: add --transfer-encoding option
292  + git-send-email: delay creation of MIME headers
293  (this branch is used by jc/t9001-modernise.)
295  "git send-email" learned "--transfer-encoding" option to force
296  a non-fault Content-Transfer-Encoding header (e.g. base64).
299 * po/doc-assume-unchanged (2014-12-09) 2 commits
300   (merged to 'next' on 2014-12-15 at 646e77e)
301  + gitignore.txt: do not suggest assume-unchanged
302  + doc: make clear --assume-unchanged's user contract
304  Fixes long-standing misunderstanding of what assume-unchanged is
305  about.  Some text near what is removed by the bottom patch may also
306  have to be removed.
309 * ps/new-workdir-into-empty-directory (2014-12-03) 1 commit
310   (merged to 'next' on 2014-12-15 at 0787b56)
311  + git-new-workdir: don't fail if the target directory is empty
313  "git new-workdir" (in contrib/) can be used to populate an empty
314  and existing directory now.
317 * rj/no-xopen-source-for-cygwin (2014-11-24) 1 commit
318   (merged to 'next' on 2014-12-15 at 6e8e9ff)
319  + git-compat-util.h: don't define _XOPEN_SOURCE on cygwin
321  Avoid compilation warnings on recent gcc toolchain on Cygwin.
324 * rj/t0050-passes (2014-11-30) 1 commit
325   (merged to 'next' on 2014-12-15 at f56c339)
326  + t0050-*.sh: mark the rename (case change) test as passing
329 * rs/use-strbuf-complete-line (2014-12-12) 1 commit
330   (merged to 'next' on 2014-12-15 at d6426a0)
331  + use strbuf_complete_line() for adding a newline if needed
334 * rt/completion-tag (2014-12-04) 1 commit
335   (merged to 'next' on 2014-12-15 at b03ee39)
336  + completion: add git-tag options
339 * rt/for-each-ref-spell-tcl-as-Tcl (2014-11-30) 1 commit
340   (merged to 'next' on 2014-12-15 at c0fcefb)
341  + for-each-ref: correct spelling of Tcl in option description
344 * rw/apply-does-not-take-ignore-date (2014-12-09) 1 commit
345   (merged to 'next' on 2014-12-15 at ded2f99)
346  + git-am.txt: --ignore-date flag is not passed to git-apply
349 * sb/string-list (2014-12-04) 3 commits
350   (merged to 'next' on 2014-12-15 at 8bb8ddd)
351  + string_list: remove string_list_insert_at_index() from its API
352  + mailmap: use higher level string list functions
353  + string_list: document string_list_(insert,lookup)
355  API simplification.
358 * sv/doc-stripspace (2014-12-04) 1 commit
359   (merged to 'next' on 2014-12-15 at e86f8ba)
360  + Documentation/git-stripspace: add synopsis for --comment-lines
363 * tb/config-core-filemode-check-on-broken-fs (2014-11-21) 1 commit
364   (merged to 'next' on 2014-12-15 at 3e5490b)
365  + init-db: improve the filemode trustability check
367  Some filesystems assign filemodes in a strange way, fooling then
368  automatic "filemode trustability" check done during a new
369  repository creation.
372 * tb/t0027-eol-conversion (2014-12-05) 1 commit
373   (merged to 'next' on 2014-12-15 at ba24e75)
374  + t0027: check the eol conversion warnings
376 --------------------------------------------------
377 [New Topics]
379 * bb/update-unicode-table (2014-12-22) 5 commits
380  - update_unicode.sh: delete the command group
381  - update_unicode.sh: make the output structure visible
382  - update_unicode.sh: shorten uniset invocation path
383  - update_unicode.sh: set UNICODE_DIR only once
384  - update_unicode.sh: simplify output capture
386  Simplify the procedure to generate unicode table.
388  Will merge to 'next'.
391 * bc/fetch-thin-less-aggressive-in-normal-repository (2014-12-22) 3 commits
392  - pack-objects: use --objects-edge-aggressive only for shallow repos
393  - rev-list: add an option to mark fewer edges as uninteresting
394  - Documentation: add missing article in rev-list-options.txt
396  Earlier we made "rev-list --object-edge" more aggressively list the
397  objects at the edge commits, in order to reduce number of objects
398  fetched into a shallow repository, but the change affected cases
399  other than "fetching into a shallow repository" and made it
400  unusably slow (e.g. fetching into a normal repository should not
401  have to suffer the overhead from extra processing).  Limit it to a
402  more specific case by introducing --objects-edge-aggressive, a new
403  option to rev-list.
405  Seems to break t5500 when merged to 'pu'.
408 * es/squelch-openssl-warnings-on-macosx (2014-12-18) 1 commit
409  - git-compat-util: suppress unavoidable Apple-specific deprecation warnings
411  Squelch useless compiler warnings on Mac OS X.
413  Will merge to 'next'.
416 * jh/pre-push-sample-no-custom-ifs (2014-12-22) 1 commit
417  - pre-push.sample: remove unnecessary and misleading IFS=' '
419  The sample pre-push hook used customized IFS=' ' for no good reason.
421  Will merge to 'next'.
424 * mh/update-ref-verify (2014-12-11) 2 commits
425  - update-ref: fix "verify" command with missing <oldvalue>
426  - t1400: add some more tests of "update-ref --stdin"'s verify command
428  "git update-ref --stdin"'s verify command did not work well when
429  <oldvalue>, which is documented as optional, was missing.
431  Will merge to 'next'.
434 * sb/atomic-push (2014-12-22) 7 commits
435  - t5543-atomic-push.sh: add basic tests for atomic pushes
436  - push.c: add an --atomic argument
437  - receive-pack: move execute_commands_non_atomic before execute_commands
438  - receive-pack.c: receive-pack.c: use a single ref_transaction for atomic pushes
439  - send-pack.c: add --atomic command line argument
440  - send-pack: rename ref_update_to_be_sent to check_to_send_update
441  - receive-pack.c: add protocol support to negotiate atomic-push
442  (this branch uses mh/reflog-expire.)
444  "git push" has been taught a "--atomic" option that makes push to
445  update more than one ref an "all-or-none" affair.
447  Will merge to 'next'.
450 * sb/dco-indentation-fix (2014-12-22) 1 commit
451  - Documentation/SubmittingPatches: unify whitespace/tabs for the DCO
453  Will merge to 'next'.
456 * sb/t5400-remove-unused (2014-12-16) 1 commit
457  - t5400: remove dead code
459  Will merge to 'next'.
462 * tf/prompt-preserve-exit-status (2014-12-22) 1 commit
463  - git-prompt: preserve value of $? inside shell prompt
465  Using the exit status of the last command in the prompt, e.g.
466  PS1='$(__git_ps1) $? ', did not work well because the helper
467  function stomped on the exit status.
469  Will merge to 'next'.
471 --------------------------------------------------
472 [Stalled]
474 * pw/remote-set-url-fetch (2014-11-26) 1 commit
475  - remote: add --fetch and --both options to set-url
477  Expecting a reroll.
480 * ms/submodule-update-config-doc (2014-11-03) 1 commit
481  - submodule: clarify documentation for update subcommand
483  Needs a reroll ($gmane/259037).
486 * je/quiltimport-no-fuzz (2014-10-21) 2 commits
487  - git-quiltimport: flip the default not to allow fuzz
488  - git-quiltimport.sh: allow declining fuzz with --exact option
490  "quiltimport" drove "git apply" always with -C1 option to reduce
491  context of the patch in order to give more chance to somewhat stale
492  patches to apply.  Add an "--exact" option to disable, and also
493  "-C$n" option to customize this behaviour.  The top patch
494  optionally flips the default to "--exact".
496  Tired of waiting for an Ack; will discard.
499 * jc/push-cert-hmac-optim (2014-09-25) 2 commits
500  - receive-pack: truncate hmac early and convert only necessary bytes
501  - sha1_to_hex: split out "hex-format n bytes" helper and use it
503  This is "we could do this if we wanted to", not "we measured and it
504  improves performance critical codepath".
506  Will perhaps drop.
509 * mt/patch-id-stable (2014-06-10) 1 commit
510  - patch-id: change default to stable
512  Teaches "git patch-id" to compute the patch ID that does not change
513  when the files in a single patch is reordered. As this new algorithm
514  is backward incompatible, the last bit to flip it to be the default
515  is left out of 'master' for now.
517  Nobody seems to be jumping up & down requesting this last step,
518  which makes the result somewhat backward incompatible.
519  Will perhaps drop.
522 * tr/remerge-diff (2014-11-10) 9 commits
523  - t4213: avoid "|" in sed regexp
524  - log --remerge-diff: show what the conflict resolution changed
525  - name-hash: allow dir hashing even when !ignore_case
526  - merge-recursive: allow storing conflict hunks in index
527  - merge_diff_mode: fold all merge diff variants into an enum
528  - combine-diff: do not pass revs->dense_combined_merges redundantly
529  - merge-recursive: -Xindex-only to leave worktree unchanged
530  - merge-recursive: internal flag to avoid touching the worktree
531  - merge-recursive: remove dead conditional in update_stages()
533  "log -p" output learns a new way to let users inspect a merge
534  commit by showing the differences between the automerged result
535  with conflicts the person who recorded the merge would have seen
536  and the final conflict resolution that was recorded in the merge.
538  Waiting for a reroll ($gmane/256591).
541 * hv/submodule-config (2014-11-11) 4 commits
542  - do not die on error of parsing fetchrecursesubmodules option
543  - use new config API for worktree configurations of submodules
544  - extract functions for submodule config set and lookup
545  - implement submodule config cache for lookup of submodule names
547  Kicked back to 'pu' per request ($gmane/255610).
550 * ab/add-interactive-show-diff-func-name (2014-05-12) 2 commits
551  - SQUASH??? git-add--interactive: Preserve diff heading when splitting hunks
552  - git-add--interactive: Preserve diff heading when splitting hunks
554  Waiting for a reroll.
557 * jn/gitweb-utf8-in-links (2014-05-27) 1 commit
558  - gitweb: Harden UTF-8 handling in generated links
560  $gmane/250758?
563 * ss/userdiff-update-csharp-java (2014-06-02) 2 commits
564  - userdiff: support Java try keyword
565  - userdiff: support C# async methods and correct C# keywords
567  Reviews sent; waiting for a response.
570 * bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
571  - git-rebase: print name of rev when using shorthand
573  Teach "git rebase -" to report the concrete name of the branch
574  (i.e. the previous one).
576  But it stops short and does not do the same for "git rebase @{-1}".
577  Expecting a reroll.
580 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
581  - merge: drop unused arg from abort_commit method signature
582  - merge: make prepare_to_commit responsible for write_merge_state
583  - t7505: ensure cleanup after hook blocks merge
584  - t7505: add missing &&
586  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
587  run during "git merge".  The log message stresses too much on one
588  hook, prepare-commit-msg, but it would equally apply to other hooks
589  like post-merge, I think.
591  Waiting for a reroll.
594 * jc/graph-post-root-gap (2013-12-30) 3 commits
595  - WIP: document what we want at the end
596  - graph: remove unused code a bit
597  - graph: stuff the current commit into graph->columns[]
599  This was primarily a RFH ($gmane/239580).
602 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
603  - perf-lib: add test_perf_cleanup target
604  - perf-lib: split starting the test from the execution
606  Add test_perf_cleanup shell function to the perf suite, that allows
607  the script writers to define a test with a clean-up action.
609  Will hold.
612 * jc/show-branch (2014-03-24) 5 commits
613  - show-branch: use commit slab to represent bitflags of arbitrary width
614  - show-branch.c: remove "all_mask"
615  - show-branch.c: abstract out "flags" operation
616  - show-branch.c: lift all_mask/all_revs to a global static
617  - show-branch.c: update comment style
619  Waiting for the final step to lift the hard-limit before sending it out.
621 --------------------------------------------------
622 [Cooking]
624 * ye/http-accept-language (2014-12-22) 1 commit
625  - http: Add Accept-Language header if possible
627  An earlier iteration broke various people ($gmane/260903).  Please
628  retest and comment.
631 * jk/strbuf-doc-to-header (2014-12-12) 4 commits
632  - strbuf.h: reorganize api function grouping headers
633  - strbuf.h: format asciidoc code blocks as 4-space indent
634  - strbuf.h: drop asciidoc list formatting from API docs
635  - strbuf: migrate api-strbuf.txt documentation to strbuf.h
637  Resolve the "doc vs header" to favor the latter.
639  Expecting to be rerolled.
642 * mh/reflog-expire (2014-12-22) 24 commits
643  - refs.c: let fprintf handle the formatting
644  - refs.c: don't expose the internal struct ref_lock in the header file
645  - lock_any_ref_for_update(): inline function
646  - refs.c: remove unlock_ref/close_ref/commit_ref from the refs api
647  - reflog_expire(): new function in the reference API
648  - expire_reflog(): treat the policy callback data as opaque
649  - Move newlog and last_kept_sha1 to "struct expire_reflog_cb"
650  - expire_reflog(): move rewrite to flags argument
651  - expire_reflog(): move verbose to flags argument
652  - expire_reflog(): pass flags through to expire_reflog_ent()
653  - struct expire_reflog_cb: a new callback data type
654  - Rename expire_reflog_cb to expire_reflog_policy_cb
655  - expire_reflog(): move updateref to flags argument
656  - expire_reflog(): move dry_run to flags argument
657  - expire_reflog(): add a "flags" argument
658  - expire_reflog(): extract two policy-related functions
659  - Extract function should_expire_reflog_ent()
660  - expire_reflog(): use a lock_file for rewriting the reflog file
661  - expire_reflog(): return early if the reference has no reflog
662  - expire_reflog(): rename "ref" parameter to "refname"
663  - expire_reflog(): it's not an each_ref_fn anymore
664  - refs.c: add a function to append a reflog entry to a fd
665  - refs.c: make ref_transaction_delete a wrapper for ref_transaction_update
666  - refs.c: make ref_transaction_create a wrapper for ref_transaction_update
667  (this branch is used by sb/atomic-push.)
669  Restructure "reflog expire" to fit the reflogs better with the
670  recently updated ref API.
672  Looked reasonable (except that some shortlog entries stood out like
673  a sore thumb).
676 * po/doc-core-ignorestat (2014-12-12) 1 commit
677  - doc: core.ignoreStat clarify the --assume-unchanged effect
679  Expecting a reroll.
682 * jk/add-i-read-error (2014-12-15) 1 commit
683  - add--interactive: leave main loop on read error
685  "git add -i" did not notice when the interactive command input
686  stream went away and kept asking.
688  Will merge to 'next'.
691 * pd/completion-filenames-fix (2014-12-15) 1 commit
692  - Update documentation occurrences of filename .sh
694  The top-of-the-file instruction for completion scripts (in contrib/)
695  did not name the files correctly.
697  Will merge to 'next'.
700 * rd/send-email-2047-fix (2014-12-15) 2 commits
701  - send-email: handle adjacent RFC 2047-encoded words properly
702  - send-email: align RFC 2047 decoding more closely with the spec
704  "git send-email" did not handle RFC 2047 encoded headers quite
705  right.
707  Will merge to 'next'.
710 * jn/doc-api-errors (2014-12-04) 1 commit
711  - doc: document error handling functions and conventions
713  For discussion.
716 * jn/rerere-fail-on-auto-update-failure (2014-12-03) 2 commits
717  - SQUASH???
718  - rerere: error out on autoupdate failure
720  Will be rerolled as a part of a larger series.
723 * jc/push-to-checkout (2014-12-01) 2 commits
724  - receive-pack: support push-to-checkout hook
725  - receive-pack: refactor updateInstead codepath
727  Extending the js/push-to-deploy topic, the behaviour of "git push"
728  when updating the working tree and the index with an update to the
729  branch that is checked out can be tweaked by push-to-checkout hook.
731  Needs docs.
734 * lh/send-email-hide-x-mailer (2014-12-15) 2 commits
735  - test/send-email: --[no-]xmailer tests
736  - send-email: add --[no-]xmailer option
738  "git send-email" normally identifies itself via X-Mailer: header
739  in the message it sends out.  A new command line flag allows the
740  header to be squelched.
742  Will merge to 'next'.
745 * nd/list-files (2014-12-01) 19 commits
746  - list-files: -M aka diff-cached
747  - list-files -F: show submodules with the new indicator '&'
748  - list-files: add -F/--classify
749  - list-files: show directories as well as files
750  - list-files: do not show duplicate cached entries
751  - list-files: sort output and remove duplicates
752  - list-files: add -t back
753  - list-files: add -1 short for --no-column
754  - list-files: add -R/--recursive short for --max-depth=-1
755  - list-files: -u does not imply showing stages
756  - list-files: a user friendly version of ls-files and more
757  - ls-files: support --max-depth
758  - ls-files: add --column
759  - ls-files: add --color to highlight file names
760  - ls-files: buffer full item in strbuf before printing
761  - ls_colors.c: highlight submodules like directories
762  - ls_colors.c: add a function to color a file name
763  - ls_colors.c: parse color.ls.* from config file
764  - ls_colors.c: add $LS_COLORS parsing code
766  A new "git list-files" Porcelain command, "ls-files" with bells and
767  whistles.
770 * nd/multiple-work-trees (2014-12-01) 34 commits
771  - git-common-dir: make "modules/" per-working-directory directory
772  - checkout: do not fail if target is an empty directory
773  - t2025: add a test to make sure grafts is working from a linked checkout
774  - checkout: don't require a work tree when checking out into a new one
775  - git_path(): keep "info/sparse-checkout" per work-tree
776  - count-objects: report unused files in $GIT_DIR/worktrees/...
777  - gc: support prune --worktrees
778  - gc: factor out gc.pruneexpire parsing code
779  - gc: style change -- no SP before closing parenthesis
780  - checkout: clean up half-prepared directories in --to mode
781  - checkout: reject if the branch is already checked out elsewhere
782  - prune: strategies for linked checkouts
783  - checkout: support checking out into a new working directory
784  - use new wrapper write_file() for simple file writing
785  - wrapper.c: wrapper to open a file, fprintf then close
786  - setup.c: support multi-checkout repo setup
787  - setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
788  - setup.c: convert check_repository_format_gently to use strbuf
789  - setup.c: detect $GIT_COMMON_DIR in is_git_directory()
790  - setup.c: convert is_git_directory() to use strbuf
791  - git-stash: avoid hardcoding $GIT_DIR/logs/....
792  - *.sh: avoid hardcoding $GIT_DIR/hooks/...
793  - git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
794  - $GIT_COMMON_DIR: a new environment variable
795  - commit: use SEQ_DIR instead of hardcoding "sequencer"
796  - fast-import: use git_path() for accessing .git dir instead of get_git_dir()
797  - reflog: avoid constructing .lock path with git_path
798  - *.sh: respect $GIT_INDEX_FILE
799  - git_path(): be aware of file relocation in $GIT_DIR
800  - path.c: group git_path(), git_pathdup() and strbuf_git_path() together
801  - path.c: rename vsnpath() to do_git_path()
802  - git_snpath(): retire and replace with strbuf_git_path()
803  - path.c: make get_pathname() call sites return const char *
804  - path.c: make get_pathname() return strbuf instead of static buffer
806  A replacement for contrib/workdir/git-new-workdir that does not
807  rely on symbolic links and make sharing of objects and refs safer
808  by making the borrowee and borrowers aware of each other.
811 * sb/copy-fd-errno (2014-11-17) 1 commit
812  - copy.c: make copy_fd preserve meaningful errno
814  Will be rerolled as a part of a larger series.
817 * jc/t9001-modernise (2014-11-25) 5 commits
818  - t9001: style modernisation phase #5
819  - t9001: style modernisation phase #4
820  - t9001: style modernisation phase #3
821  - t9001: style modernisation phase #2
822  - t9001: style modernisation phase #1
825 * jk/approxidate-avoid-y-d-m-over-future-dates (2014-11-13) 2 commits
826   (merged to 'next' on 2014-12-15 at 397e986)
827  + approxidate: allow ISO-like dates far in the future
828  + pass TIME_DATE_NOW to approxidate future-check
830  Traditionally we tried to avoid interpreting date strings given by
831  the user as future dates, e.g. GIT_COMMITTER_DATE=2014-12-10 when
832  used early November 2014 was taken as "October 12, 2014" because it
833  is likely that a date in the future, December 10, is a mistake.
835  Loosen this and do not tiebreak by future-ness of the date when
837  (1) ISO-like format is used, and
838  (2) the string can make sense interpreted as both y-m-d and y-d-m.
840  Will cook in 'next'.
843 * br/imap-send-verbosity (2014-11-05) 1 commit
844   (merged to 'next' on 2014-12-15 at 504af0b)
845  + imap-send: use parse options API to determine verbosity
846  (this branch is used by br/imap-send-via-libcurl.)
848  Will cook in 'next'.
851 * br/imap-send-via-libcurl (2014-11-10) 1 commit
852   (merged to 'next' on 2014-12-15 at 90db637)
853  + git-imap-send: use libcurl for implementation
854  (this branch uses br/imap-send-verbosity.)
856  Newer libCurl knows how to talk IMAP; "git imap-send" has been
857  updated to use this instead of a hand-rolled OpenSSL calls.
859  Will cook in 'next'.
862 * nd/lockfile-absolute (2014-11-03) 1 commit
863   (merged to 'next' on 2014-12-15 at 34db9af)
864  + lockfile.c: store absolute path
866  The lockfile API can get confused which file to clean up when the
867  process moved the $cwd after creating a lockfile.
869  Will cook in 'next'.
872 * jc/merge-bases (2014-10-30) 2 commits
873   (merged to 'next' on 2014-12-15 at cac279e)
874  + get_merge_bases(): always clean-up object flags
875  + bisect: clean flags after checking merge bases
877  The get_merge_bases*() API was easy to misuse by careless
878  copy&paste coders, leaving object flags tainted in the commits that
879  needed to be traversed.
881  Will cook in 'next'.
884 * jc/strbuf-add-lines-avoid-sp-ht-sequence (2014-10-27) 1 commit
885   (merged to 'next' on 2014-12-15 at b499889)
886  + strbuf_add_commented_lines(): avoid SP-HT sequence in commented lines
888  The commented output used to blindly add a SP before the payload
889  line, resulting in "# \t<indented text>\n" when the payload began
890  with a HT.  Instead, produce "#\t<indented text>\n".
892  Will cook in 'next'.
895 * nd/untracked-cache (2014-12-15) 24 commits
896  - SQUASH???
897  - untracked cache: guard and disable on system changes
898  - mingw32: add uname()
899  - t7063: tests for untracked cache
900  - update-index: test the system before enabling untracked cache
901  - update-index: manually enable or disable untracked cache
902  - status: enable untracked cache
903  - untracked-cache: temporarily disable with $GIT_DISABLE_UNTRACKED_CACHE
904  - untracked cache: mark index dirty if untracked cache is updated
905  - untracked cache: print stats with $GIT_TRACE_UNTRACKED_STATS
906  - untracked cache: avoid racy timestamps
907  - read-cache.c: split racy stat test to a separate function
908  - untracked cache: invalidate at index addition or removal
909  - untracked cache: load from UNTR index extension
910  - untracked cache: save to an index extension
911  - ewah: add convenient wrapper ewah_serialize_strbuf()
912  - untracked cache: don't open non-existent .gitignore
913  - untracked cache: mark what dirs should be recursed/saved
914  - untracked cache: record/validate dir mtime and reuse cached output
915  - untracked cache: make a wrapper around {open,read,close}dir()
916  - untracked cache: invalidate dirs recursively if .gitignore changes
917  - untracked cache: initial untracked cache validation
918  - untracked cache: record .gitignore information and dir hierarchy
919  - dir.c: optionally compute sha-1 of a .gitignore file
921  Comments?
924 * jc/diff-b-m (2014-10-23) 1 commit
925   (merged to 'next' on 2014-12-15 at 59c6636)
926  + diff -B -M: fix output for "copy and then rewrite" case
928  Fix long-standing bug in "diff -B -M" output.
930  Will cook in 'next'.
933 * jc/checkout-local-track-report (2014-10-14) 1 commit
934   (merged to 'next' on 2014-12-15 at e91a7df)
935  + checkout: report upstream correctly even with loosely defined branch.*.merge
937  The report from "git checkout" on a branch that builds on another
938  local branch by setting its branch.*.merge to branch name (not a
939  full refname) incorrectly said that the upstream is gone.
941  Will cook in 'next'.
944 * jc/clone-borrow (2014-10-15) 1 commit
945   (merged to 'next' on 2014-12-15 at 08fdf77)
946  + clone: --dissociate option to mark that reference is only temporary
948  Allow "git clone --reference" to be used more safely.
950  Will cook in 'next'.
952 --------------------------------------------------
953 [Discarded]
955 * mb/enable-lib-terminal-test-on-newer-darwin (2014-11-14) 1 commit
956  . t/lib-terminal: allow TTY tests to run under recent Mac OS
958  We probably should drop this ($gmane/259609).
961 * zk/grep-color-words (2014-10-27) 2 commits
962  . Revert "grep: fix match highlighting for combined patterns with context lines"
963  . grep: fix match highlighting for combined patterns with context lines
965  rs/grep-color-words topic solves it in a different way.
967  Will discard.
970 * jn/dedup-doc-header (2014-12-10) 2 commits
971  . put string-list API documentation in one place
972  . put strbuf API documentation in one place
974  We would want to have an easy way for developers to learn about
975  APIs, and also a way to encourage them to keep the API
976  documentation up to date when they make changes.  Having header
977  comments and API documentation duplicated in two different places
978  risked them going out of sync.
980  The approach taken by jk/strbuf-doc-to-header is the other way
981  around, which people seem to prefer, so this is discarded.
984 * jt/timer-settime (2014-08-29) 6 commits
985  . use timer_settime() for new platforms
986  . autoconf: check for timer_settime()
987  . autoconf: check for struct itimerspec
988  . autoconf: check for struct sigevent
989  . autoconf: check for struct timespec
990  . autoconf: check for timer_t
992  Was wanting for a reroll.
995 * rs/ref-transaction-reflog (2014-11-03) 15 commits
996  . refs.c: allow deleting refs with a broken sha1
997  . refs.c: remove lock_any_ref_for_update
998  . refs.c: make unlock_ref/close_ref/commit_ref static
999  . refs.c: rename log_ref_setup to create_reflog
1000  . reflog.c: use a reflog transaction when writing during expire
1001  . refs.c: allow multiple reflog updates during a single transaction
1002  . refs.c: only write reflog update if msg is non-NULL
1003  . refs.c: add a flag to allow reflog updates to truncate the log
1004  . refs.c: add a transaction function to append a reflog entry
1005  . copy.c: make copy_fd preserve meaningful errno
1006  . refs.c: add a function to append a reflog entry to a fd
1007  . refs.c: add a new update_type field to ref_update
1008  . refs.c: rename the transaction functions
1009  . refs.c: make ref_transaction_delete a wrapper for ref_transaction_update
1010  . refs.c make ref_transaction_create a wrapper to ref_transaction_update
1011  (this branch is used by rs/ref-transaction-rename and rs/ref-transaction-send-pack.)
1013  Stefan Beller started working on reorganizing these three series,
1014  which unfortunately did not see much reviews.
1017 * rs/ref-transaction-rename (2014-11-07) 16 commits
1018  . refs.c: add an err argument to pack_refs
1019  . refs.c: make lock_packed_refs take an err argument
1020  . refs.c: make add_packed_ref return an error instead of calling die
1021  . refs.c: replace the onerr argument in update_ref with a strbuf err
1022  . refs.c: make the *_packed_refs functions static
1023  . refs.c: make repack_without_refs static
1024  . remote.c: use a transaction for deleting refs
1025  . refs.c: write updates to packed refs when a transaction has more than one ref
1026  . refs.c: move reflog updates into its own function
1027  . refs.c: rollback the lockfile before we die() in repack_without_refs
1028  . refs.c: update rename_ref to use a transaction
1029  . refs.c: add transaction support for renaming a reflog
1030  . refs.c: use a stringlist for repack_without_refs
1031  . refs.c: use packed refs when deleting refs during a transaction
1032  . refs.c: return error instead of dying when locking fails during transaction
1033  . refs.c: allow passing raw git_committer_info as email to _update_reflog
1034  (this branch is used by rs/ref-transaction-send-pack; uses rs/ref-transaction-reflog.)
1036  Stefan Beller started working on reorganizing these three series,
1037  which unfortunately did not see much reviews.
1040 * rs/ref-transaction-send-pack (2014-11-07) 7 commits
1041  . refs.c: add an err argument to create_symref
1042  . refs.c: add an err argument to create_reflog
1043  . t5543-atomic-push.sh: add basic tests for atomic pushes
1044  . push.c: add an --atomic-push argument
1045  . receive-pack.c: use a single transaction when atomic-push is negotiated
1046  . send-pack.c: add an --atomic-push command line argument
1047  . receive-pack.c: add protocol support to negotiate atomic-push
1048  (this branch uses rs/ref-transaction-reflog and rs/ref-transaction-rename.)
1050  Stefan Beller started working on reorganizing these three series,
1051  which unfortunately did not see much reviews.
1054 * sb/simplify-repack-without-refs (2014-11-20) 1 commit
1055  . refs.c: use a string_list for repack_without_refs
1058 * sb/log-ref-write-fd (2014-11-20) 1 commit
1059  . refs.c: add a function to append a reflog entry to a fd
1061  Will be rerolled as a part of a larger series.
1064 * sb/ref-transaction-unify-to-update (2014-11-20) 2 commits
1065  . refs.c: make ref_transaction_delete a wrapper for ref_transaction_update
1066  . refs.c: make ref_transaction_create a wrapper for ref_transaction_update
1067  (this branch is used by sb/ref-transaction-reflog.)
1069  Code simplification.
1071  Will be rerolled as a part of a larger series.
1073 * sb/write-sha1-update-reflog (2014-11-24) 1 commit
1074  . refs.c: move reflog updates into its own function
1076  Moves a part of function around to add a helper that still only has
1077  one caller.  Need to see how this helps in a bigger picture.
1080 * sb/ref-transaction-reflog (2014-12-03) 2 commits
1081  . refs.c: rename transaction.updates to transaction.ref_updates
1082  . refs.c: rename the transaction functions
1083  (this branch uses sb/ref-transaction-unify-to-update.)
1085  Will be rerolled as a part of a larger series.