What's cooking (2014/09 #02)
[alt-git.git] / whats-cooking.txt
blobb8ddb638d5348e3f0caa295f996d3635e31f1f0b
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Sep 2014, #02; Tue, 9)
4 X-master-at: 0c72b98f31bf6eabd75be565a08ffcf0d8e74b1f
5 X-next-at: 90a3d47e489b9d2109b72bab5f08275f9af8a3ad
7 What's cooking in git.git (Sep 2014, #02; Tue, 9)
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 The second batch of topics have graduated to 'master'.  There are
15 too many topics waiting to be in 'next' but without comments and
16 reviews on the list, which is somewhat disturbing.
18 You can find the changes described here in the integration branches
19 of the repositories listed at
21     http://git-blame.blogspot.com/p/git-public-repositories.html
23 --------------------------------------------------
24 [Graduated to "master"]
26 * bc/imap-send-doc (2014-08-05) 1 commit
27   (merged to 'next' on 2014-08-29 at 2ea514b)
28  + imap-send doc: omit confusing "to use imap-send" modifier
31 * jc/apply-ws-prefix (2014-08-07) 3 commits
32   (merged to 'next' on 2014-08-29 at 67967d3)
33  + apply: omit ws check for excluded paths
34  + apply: hoist use_patch() helper for path exclusion up
35  + apply: use the right attribute for paths in non-Git patches
37  Applying a patch not generated by Git in a subdirectory used to
38  check the whitespace breakage using the attributes for incorrect
39  paths. Also whitespace checks were performed even for paths
40  excluded via "git apply --exclude=<path>" mechanism.
43 * jc/config-mak-document-darwin-vs-macosx (2014-08-15) 1 commit
44   (merged to 'next' on 2014-08-29 at 55e28af)
45  + config.mak.uname: add hint on uname_R for MacOS X
46  (this branch uses km/no-apple-common-crypto-on-darwin-8-and-below.)
49 * jc/not-mingw-cygwin (2014-07-21) 2 commits
50   (merged to 'next' on 2014-08-29 at 0d00bb7)
51  + test prerequisites: enumerate with commas
52  + test prerequisites: eradicate NOT_FOO
54  We have been using NOT_{MINGW,CYGWIN} test prerequisites long
55  before Peff invented support for negated prerequisites e.g. !MINGW
56  and we still add more uses of the former.  Convert them to the
57  latter to avoid confusion.
60 * jk/command-line-config-empty-string (2014-08-05) 1 commit
61   (merged to 'next' on 2014-08-29 at 74f04af)
62  + config: teach "git -c" to recognize an empty string
64  "git -c section.var command" and "git -c section.var= command"
65  should pass the configuration differently (the former should be
66  a boolean true, the latter should be an empty string).
69 * jk/prompt-stash-could-be-packed (2014-08-25) 1 commit
70   (merged to 'next' on 2014-08-29 at 526e3bd)
71  + git-prompt: do not look for refs/stash in $GIT_DIR
73  The prompt script checked $GIT_DIR/ref/stash file to see if there
74  is a stash, which was a no-no.
77 * jk/stash-list-p (2014-08-07) 1 commit
78   (merged to 'next' on 2014-08-29 at db94527)
79  + stash: default listing to working-tree diff
81  Teach "git stash list -p" to show the difference between the base
82  commit version and the working tree version, which is in line with
83  what "git show" gives.
86 * km/no-apple-common-crypto-on-darwin-8-and-below (2014-08-15) 1 commit
87   (merged to 'next' on 2014-08-29 at 8abb416)
88  + config.mak.uname: set NO_APPLE_COMMON_CRYPTO on older systems
89  (this branch is used by jc/config-mak-document-darwin-vs-macosx.)
91  Build automation for older versions of MacOS X.
94 * la/init-doc (2014-08-08) 7 commits
95   (merged to 'next' on 2014-08-29 at 2cf846b)
96  + Documentation: git-init: flesh out example
97  + Documentation: git-init: template directory: reword and cross-reference
98  + Documentation: git-init: reword parenthetical statements
99  + Documentation: git-init: --separate-git-dir: clarify
100  + Documentation: git-init: template directory: reword
101  + Documentation: git-init: list items facelift
102  + Documentation: git-init: typographical fixes
105 * lf/bundle-exclusion (2014-08-07) 1 commit
106   (merged to 'next' on 2014-08-29 at d84b102)
107  + bundle: fix exclusion of annotated tags
109  "git bundle create" with date-range specification were meant to
110  exclude tags outside the range, but it didn't.
113 * mm/log-branch-desc-plug-leak (2014-08-07) 1 commit
114   (merged to 'next' on 2014-08-29 at 3580add)
115  + builtin/log.c: fix minor memory leak
118 * nd/strbuf-utf8-replace (2014-08-11) 1 commit
119   (merged to 'next' on 2014-08-29 at 5d1ddf4)
120  + utf8.c: fix strbuf_utf8_replace() consuming data beyond input string
123 * rs/clean-menu-item-defn (2014-08-18) 1 commit
124   (merged to 'next' on 2014-08-29 at 88c1a9d)
125  + clean: use f(void) instead of f() to declare a pointer to a function without arguments
128 * rs/inline-compat-path-macros (2014-08-18) 1 commit
129   (merged to 'next' on 2014-08-29 at 5705ad5)
130  + turn path macros into inline function
133 * rs/refresh-beyond-symlink (2014-08-10) 1 commit
134   (merged to 'next' on 2014-08-29 at 90a4a8b)
135  + read-cache: check for leading symlinks when refreshing index
137  "git add x" where x that used to be a directory has become a
138  symbolic link to a directory misbehaved.
141 * sb/blame-msg-i18n (2014-08-12) 1 commit
142   (merged to 'next' on 2014-08-29 at 5b33466)
143  + builtin/blame.c: add translation to warning about failed revision walk
146 * sb/mailsplit-dead-code-removal (2014-08-13) 1 commit
147   (merged to 'next' on 2014-08-29 at 4f9ca4f)
148  + mailsplit.c: remove dead code
151 * sb/plug-leaks (2014-08-10) 2 commits
152   (merged to 'next' on 2014-08-29 at e42f0b8)
153  + clone.c: don't leak memory in cmd_clone
154  + remote.c: don't leak the base branch name in format_tracking_info
157 * sb/prepare-revision-walk-error-check (2014-08-12) 1 commit
158   (merged to 'next' on 2014-08-29 at fb82508)
159  + prepare_revision_walk(): check for return value in all places
162 * so/rebase-doc (2014-08-12) 1 commit
163   (merged to 'next' on 2014-08-29 at 77cfce1)
164  + Documentation/git-rebase.txt: -f forces a rebase that would otherwise be a no-op
166  May need further updates to the description to explain what makes
167  various modes of operation to decide that the request can become a
168  "no-op".
171 * sp/pack-protocol-doc-on-shallow (2014-08-28) 1 commit
172   (merged to 'next' on 2014-08-29 at b1ae451)
173  + Document LF appearing in shallow command during send-pack/receive-pack
176 * tb/pretty-format-cd-date-format (2014-08-21) 1 commit
177   (merged to 'next' on 2014-08-29 at ab8ccd4)
178  + pretty: note that %cd respects the --date= option
180  Documentation update.
183 * tf/imap-send-create (2014-08-25) 2 commits
184   (merged to 'next' on 2014-08-29 at 8390945)
185  + imap-send: create target mailbox if it is missing
186  + imap-send: clarify CRAM-MD5 vs LOGIN documentation
189 --------------------------------------------------
190 [New Topics]
192 * as/calloc-takes-nmemb-then-size (2014-09-03) 1 commit
193  - calloc() and xcalloc() takes nmemb and then size
195  Code clean-up.
197  Will merge to 'next'.
200 * tb/complete-diff-ignore-blank-lines (2014-09-03) 1 commit
201  - completion: Add --ignore-blank-lines for diff
203  Will merge to 'next'.
206 * jc/parseopt-verify-short-name (2014-09-04) 1 commit
207  - parse-options: detect attempt to add a duplicate short option name
209  Add checks for a common programming mistake to assign the same
210  short option name to two separate options to help developers.
212  Will merge to 'next'.
215 * rs/more-uses-of-skip-prefix (2014-09-02) 2 commits
216  - pack-write: simplify index_pack_lockfile using skip_prefix() and xstrfmt()
217  - connect: simplify check_ref() using skip_prefix() and starts_with()
219  Code clean-up.
221  Will merge to 'next'.
224 * kb/perf-trace (2014-09-08) 1 commit
225  - trace: correct trace_strbuf() parameter type for !HAVE_VARIADIC_MACROS
227  Compilation fix for some compilers.
229  Will merge to 'next'.
232 * rs/export-strbuf-addchars (2014-09-08) 2 commits
233  - strbuf: use strbuf_addchars() for adding a char multiple times
234  - strbuf: export strbuf_addchars()
236  Code clean-up.
238  Will merge to 'next'.
240 --------------------------------------------------
241 [Stalled]
243 * hv/submodule-config (2014-06-30) 4 commits
244  - do not die on error of parsing fetchrecursesubmodules option
245  - use new config API for worktree configurations of submodules
246  - extract functions for submodule config set and lookup
247  - implement submodule config cache for lookup of submodule names
249  Kicked back to 'pu' per request ($gmane/255610).
252 * jt/timer-settime (2014-08-29) 9 commits
253  - use timer_settime() for new platforms
254  - autoconf: check for timer_settime()
255  - autoconf: check for struct itimerspec
256  - autoconf: check for struct sigevent
257  - autoconf: check for struct timespec
258  - autoconf: check for timer_t
259  - autoconf: check for setitimer()
260  - autoconf: check for struct itimerval
261  - git-compat-util.h: add missing semicolon after struct itimerval
263  Reviewed, discussed and wanting for a reroll.
266 * jk/pack-bitmap (2014-08-04) 1 commit
267  - pack-bitmap: do not use gcc packed attribute
269  Hold, waiting for Karsten's replacement.
272 * cb/mergetool-difftool (2014-07-21) 2 commits
273  - difftool: don't assume that default sh is sane
274  - mergetool: don't require a work tree for --tool-help
276  Update the way the "difftool --help" shows the help message that is
277  shared with the "mergetool" to reduce one shell dependency.
279  Will be rerolled.
282 * rr/mergetool-temporary-filename-tweak (2014-08-21) 1 commit
283  - Allow the user to change the temporary file name for mergetool
285  Needs rerolling (new paragraph in doc seems to be in a wrong place)
288 * jk/tag-contains (2014-06-30) 8 commits
289  . perf: add tests for tag --contains
290  . tag: use commit_contains
291  . commit: provide a fast multi-tip contains function
292  . string-list: add pos to iterator callback
293  . add functions for memory-efficient bitmaps
294  . paint_down_to_common: use prio_queue
295  . tag: factor out decision to stream tags
296  . tag: allow --sort with -n
298  Expecting a reroll.
301 * ab/add-interactive-show-diff-func-name (2014-05-12) 2 commits
302  - SQUASH??? git-add--interactive: Preserve diff heading when splitting hunks
303  - git-add--interactive: Preserve diff heading when splitting hunks
305  Waiting for a reroll.
308 * jn/gitweb-utf8-in-links (2014-05-27) 1 commit
309  - gitweb: Harden UTF-8 handling in generated links
311  $gmane/250758?
314 * rh/prompt-tests (2014-06-05) 11 commits
315  - t9904: new __git_ps1 tests for Zsh
316  - test-lib: make it possible to override how test code is eval'd
317  - lib-prompt-tests.sh: add variable for string that encodes percent in PS1
318  - lib-prompt-tests.sh: put all tests inside a function
319  - t9903: move prompt tests to a new lib-prompt-tests.sh file
320  - t9903: move PS1 color code variable definitions to lib-bash.sh
321  - t9903: include "Bash" in test names via new $shellname var
322  - t9903: run pc mode tests again with PS1 expansion disabled
323  - t9903: move test name prefix to a separate variable
324  - t9903: put the Bash pc mode prompt test cases in a function
325  - t9903: remove Zsh test from the suite of Bash prompt tests
327  Expecting a reroll to limit the damage to test_eval_; also reported
328  to be broken with older zsh that are still in the field ($gmane/251231).
331 * ss/userdiff-update-csharp-java (2014-06-02) 2 commits
332  - userdiff: support Java try keyword
333  - userdiff: support C# async methods and correct C# keywords
335  Reviews sent; waiting for a response.
338 * bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
339  - git-rebase: print name of rev when using shorthand
341  Teach "git rebase -" to report the concrete name of the branch
342  (i.e. the previous one).
344  But it stops short and does not do the same for "git rebase @{-1}".
345  Expecting a reroll.
348 * jk/makefile (2014-02-05) 16 commits
349  . FIXUP
350  . move LESS/LV pager environment to Makefile
351  . Makefile: teach scripts to include make variables
352  . FIXUP
353  . Makefile: auto-build C strings from make variables
354  . Makefile: drop *_SQ variables
355  . FIXUP
356  . Makefile: add c-quote helper function
357  . Makefile: introduce sq function for shell-quoting
358  . Makefile: always create files via make-var
359  . Makefile: store GIT-* sentinel files in MAKE/
360  . Makefile: prefer printf to echo for GIT-*
361  . Makefile: use tempfile/mv strategy for GIT-*
362  . Makefile: introduce make-var helper function
363  . Makefile: fix git-instaweb dependency on gitweb
364  . Makefile: drop USE_GETTEXT_SCHEME from GIT-CFLAGS
366  Simplify the Makefile rules and macros that exist primarily for
367  quoting purposes, and make it easier to robustly express the
368  dependency rules.
370  Expecting a reroll.
373 * po/everyday-doc (2014-01-27) 1 commit
374  - Make 'git help everyday' work
376  This may make the said command to emit something, but the source is
377  not meant to be formatted into a manual pages to begin with, and
378  also its contents are a bit stale.  It may be a good first step in
379  the right direction, but needs more work to at least get the
380  mark-up right before public consumption.
382  Waiting for a reroll (thread ending at $gmane/254746)
385 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
386  - merge: drop unused arg from abort_commit method signature
387  - merge: make prepare_to_commit responsible for write_merge_state
388  - t7505: ensure cleanup after hook blocks merge
389  - t7505: add missing &&
391  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
392  run during "git merge".  The log message stresses too much on one
393  hook, prepare-commit-msg, but it would equally apply to other hooks
394  like post-merge, I think.
396  Waiting for a reroll.
399 * jc/graph-post-root-gap (2013-12-30) 3 commits
400  - WIP: document what we want at the end
401  - graph: remove unused code a bit
402  - graph: stuff the current commit into graph->columns[]
404  This was primarily a RFH ($gmane/239580).
407 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
408  - perf-lib: add test_perf_cleanup target
409  - perf-lib: split starting the test from the execution
411  Add test_perf_cleanup shell function to the perf suite, that allows
412  the script writers to define a test with a clean-up action.
414  Will hold.
417 * jc/show-branch (2014-03-24) 5 commits
418  - show-branch: use commit slab to represent bitflags of arbitrary width
419  - show-branch.c: remove "all_mask"
420  - show-branch.c: abstract out "flags" operation
421  - show-branch.c: lift all_mask/all_revs to a global static
422  - show-branch.c: update comment style
424  Waiting for the final step to lift the hard-limit before sending it out.
426 --------------------------------------------------
427 [Cooking]
429 * tr/remerge-diff (2014-09-08) 8 commits
430  - log --remerge-diff: show what the conflict resolution changed
431  - name-hash: allow dir hashing even when !ignore_case
432  - merge-recursive: allow storing conflict hunks in index
433  - merge_diff_mode: fold all merge diff variants into an enum
434  - combine-diff: do not pass revs->dense_combined_merges redundantly
435  - merge-recursive: -Xindex-only to leave worktree unchanged
436  - merge-recursive: internal flag to avoid touching the worktree
437  - merge-recursive: remove dead conditional in update_stages()
439  "log -p" output learns a new way to let users inspect a merge
440  commit by showing the differences between the automerged result
441  with conflicts the person who recorded the merge would have seen
442  and the final conflict resolution that was recorded in the merge.
444  Review comments sent.
448 * mh/lockfile (2014-09-08) 33 commits
449  - lockfile.c: store absolute path
450  - Extract a function commit_lock_file_to()
451  - trim_last_path_elm(): replace last_path_elm()
452  - resolve_symlink(): take a strbuf parameter
453  - resolve_symlink(): use a strbuf for internal scratch space
454  - Change lock_file::filename into a strbuf
455  - commit_lock_file(): use a strbuf to manage temporary space
456  - try_merge_strategy(): use a statically-allocated lock_file object
457  - try_merge_strategy(): remove redundant lock_file allocation
458  - struct lock_file: declare some fields volatile
459  - lockfile: avoid transitory invalid states
460  - git_config_set_multivar_in_file(): avoid call to rollback_lock_file()
461  - dump_marks(): remove a redundant call to rollback_lock_file()
462  - api-lockfile: document edge cases
463  - commit_lock_file(): rollback lock file on failure to rename
464  - commit_lock_file(): if close fails, roll back
465  - commit_lock_file(): die() if called for unlocked lockfile object
466  - commit_lock_file(): inline temporary variable
467  - remove_lock_file(): call rollback_lock_file()
468  - lock_file(): exit early if lockfile cannot be opened
469  - write_packed_entry_fn(): convert cb_data into a (const int *)
470  - prepare_index(): declare return value to be (const char *)
471  - delete_ref_loose(): don't muck around in the lock_file's filename
472  - cache.h: define constants LOCK_SUFFIX and LOCK_SUFFIX_LEN
473  - lockfile.c: document the various states of lock_file objects
474  - lock_file(): always add lock_file object to lock_file_list
475  - hold_lock_file_for_append(): release lock on errors
476  - lockfile: unlock file if lockfile permissions cannot be adjusted
477  - rollback_lock_file(): set fd to -1
478  - rollback_lock_file(): exit early if lock is not active
479  - rollback_lock_file(): do not clear filename redundantly
480  - api-lockfile: expand the documentation
481  - unable_to_lock_die(): rename function from unable_to_lock_index_die()
483  Rerolled but not reviewed yet.
486 * nd/multiple-work-trees (2014-09-03) 32 commits
487  . t2025: add a test to make sure grafts is working from a linked checkout
488  . checkout: don't require a work tree when checking out into a new one
489  . git_path(): keep "info/sparse-checkout" per work-tree
490  . count-objects: report unused files in $GIT_DIR/repos/...
491  . gc: support prune --repos
492  . gc: factor out gc.pruneexpire parsing code
493  . gc: style change -- no SP before closing parenthesis
494  . prune: strategies for linked checkouts
495  . checkout: reject if the branch is already checked out elsewhere
496  . checkout: clean up half-prepared directories in --to mode
497  . checkout: support checking out into a new working directory
498  . use new wrapper write_file() for simple file writing
499  . wrapper.c: wrapper to open a file, fprintf then close
500  . setup.c: support multi-checkout repo setup
501  . setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
502  . setup.c: convert check_repository_format_gently to use strbuf
503  . setup.c: detect $GIT_COMMON_DIR in is_git_directory()
504  . setup.c: convert is_git_directory() to use strbuf
505  . git-stash: avoid hardcoding $GIT_DIR/logs/....
506  . *.sh: avoid hardcoding $GIT_DIR/hooks/...
507  . git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
508  . $GIT_COMMON_DIR: a new environment variable
509  . commit: use SEQ_DIR instead of hardcoding "sequencer"
510  . fast-import: use git_path() for accessing .git dir instead of get_git_dir()
511  . reflog: avoid constructing .lock path with git_path
512  . *.sh: respect $GIT_INDEX_FILE
513  . git_path(): be aware of file relocation in $GIT_DIR
514  . path.c: group git_path(), git_pathdup() and strbuf_git_path() together
515  . path.c: rename vsnpath() to do_git_path()
516  . git_snpath(): retire and replace with strbuf_git_path()
517  . path.c: make get_pathname() call sites return const char *
518  . path.c: make get_pathname() return strbuf instead of static buffer
520  A replacement for contrib/workdir/git-new-workdir that does not
521  rely on symbolic links and make sharing of objects and refs safer
522  by making the borrowee and borrowers aware of each other.
525 * cc/interpret-trailers (2014-05-28) 11 commits
526  - Documentation: add documentation for 'git interpret-trailers'
527  - trailer: add tests for commands in config file
528  - trailer: execute command from 'trailer.<name>.command'
529  - trailer: add tests for "git interpret-trailers"
530  - trailer: add interpret-trailers command
531  - trailer: put all the processing together and print
532  - trailer: parse trailers from file or stdin
533  - trailer: process command line trailer arguments
534  - trailer: read and process config information
535  - trailer: process trailers from input message and arguments
536  - trailer: add data structures and basic functions
538  A new filter to programatically edit the tail end of the commit log
539  messages.
541  Comments & reviews?
544 * bb/date-iso-strict (2014-08-29) 1 commit
545  - pretty: provide a strict ISO 8601 date format
547  "log --date=iso" uses a slight variant of ISO 8601 format that is
548  made more human readable.  A new "--date=iso-strict" option gives
549  datetime output that is more strictly conformant.
551  Will merge to 'next'.
554 * jk/commit-author-parsing (2014-08-29) 6 commits
555  - determine_author_info(): copy getenv output
556  - determine_author_info(): reuse parsing functions
557  - date: use strbufs in date-formatting functions
558  - record_author_date(): use find_commit_header()
559  - record_author_date(): fix memory leak on malformed commit
560  - commit: provide a function to find a header in a buffer
562  Code clean-up.
564  Will merge to 'next'.
567 * jk/contrib-subtree-make-all (2014-08-18) 1 commit
568   (merged to 'next' on 2014-09-03 at 919d889)
569  + subtree: make "all" default target of Makefile
571  Will merge to 'master'.
574 * jk/fast-export-anonymize (2014-08-28) 2 commits
575  - docs/fast-export: explain --anonymize more completely
576  - teach fast-export an --anonymize option
578  Sometimes users want to report a bug they experience on their
579  repository, but they are not at liberty to share the contents of
580  the repository.  "fast-export" was taught an "--anonymize" option
581  to replace blob contents, names of people and paths and log
582  messages with bland and simple strings to help them.
584  Will merge to 'next'.
587 * jk/index-pack-threading-races (2014-08-29) 1 commit
588  - index-pack: fix race condition with duplicate bases
590  When receiving an invalid pack stream that records the same object
591  twice, multiple threads got confused due to a race.  We should
592  reject or correct such a stream upon receiving, but that will be a
593  larger change.
595  Will merge to 'next'.
598 * jk/send-pack-many-refspecs (2014-08-26) 1 commit
599  - send-pack: take refspecs over stdin
601  The number of refs that can be pushed at once over smart HTTP was
602  limited by the command line length.  The limitation has been lifted
603  by passing these refs from the standard input of send-pack.
605  Will merge to 'next'.
608 * jp/index-with-corrupt-stages (2014-08-29) 2 commits
609  - read_index_unmerged(): remove unnecessary loop index adjustment
610  - read_index_from(): catch out of order entries when reading an index file
612  A broken reimplementation of Git could write an invalid index that
613  records both stage #0 and higher stage entries for the same path.
614  Notice and reject such an index, as there is no sensible fallback
615  (we do not know if the broken tool wanted to resolve and forgot to
616  remove higher stage entries, or if it wanted to unresolve and
617  forgot to remove the stage#0 entry).
619  Will merge to 'next'.
622 * mb/build-contrib-svn-fe (2014-08-28) 1 commit
623  - contrib/svn-fe: fix Makefile
625  Will merge to 'next'.
628 * mb/fast-import-delete-root (2014-08-29) 2 commits
629  - fast-import: fix segfault in store_tree()
630  - t9300: test filedelete command
632  An attempt to remove the entire tree in the "git fast-import" input
633  stream caused it to misbehave.
635  Will merge to 'next'.
638 * mm/discourage-commit-a-to-finish-conflict-resolution (2014-08-28) 1 commit
639   (merged to 'next' on 2014-09-03 at e3f872f)
640  + merge, pull: stop advising 'commit -a' in case of conflict
642  Will merge to 'master'.
645 * ah/grammofix (2014-09-02) 1 commit
646  - grammofix in user-facing messages
648  Will merge to 'next'.
651 * da/styles (2014-09-02) 1 commit
652  - stylefix: asterisks stick to the variable, not the type
654  Will merge to 'next'.
657 * da/use-rev-parse-verify-quiet-in-stash (2014-09-09) 1 commit
658  - stash: prefer --quiet over shell redirection of the standard error stream
660  Will merge to 'next'.
663 * mk/reachable-protect-detached-head (2014-09-03) 1 commit
664  - reachable.c: add HEAD to reachability starting commits
666  Will merge to 'next'.
669 * rs/merge-tree-simplify (2014-09-02) 1 commit
670  - merge-tree: remove unused df_conflict arguments
672  Code clean-up.
674  Will merge to 'next'.
677 * rs/simplify-config-include (2014-09-02) 1 commit
678  - config: simplify git_config_include()
680  Code clean-up.
682  Will merge to 'next'.
685 * rs/simplify-http-walker (2014-09-02) 1 commit
686  - http-walker: simplify process_alternates_response() using strbuf
688  Code clean-up.
690  Will merge to 'next'.
693 * tb/crlf-tests (2014-09-02) 3 commits
694  - MinGW: update tests to handle a native eol of crlf
695  - Makefile: propagate NATIVE_CRLF to C
696  - t0027: Tests for core.eol=native, eol=lf, eol=crlf
698  Will merge to 'next'.
701 * ta/config-add-to-empty-or-true-fix (2014-08-18) 1 commit
702   (merged to 'next' on 2014-08-29 at d219212)
703  + make config --add behave correctly for empty and NULL values
705  We may want to undo the "a^" bit along the lines of $gmane/255445
708 * et/spell-poll-infinite-with-minus-one-only (2014-08-22) 1 commit
709   (merged to 'next' on 2014-09-03 at 5be5957)
710  + upload-pack: keep poll(2)'s timeout to -1
712  We used to pass -1000 to poll(2), expecting it to also mean "no
713  timeout", which should be spelled as -1.
715  Will merge to 'master'.
718 * jk/make-simplify-dependencies (2014-08-26) 3 commits
719   (merged to 'next' on 2014-09-03 at 820a600)
720  + Makefile: drop CHECK_HEADER_DEPENDENCIES code
721  + Makefile: use `find` to determine static header dependencies
722  + i18n: treat "make pot" as an explicitly-invoked target
724  Admit that keeping LIB_H up-to-date, only for those that do not use
725  the automatically generated dependencies, is a losing battle, and
726  make it conservative by making everything depend on anything.
728  Will merge to 'master'.
731 * jk/prune-top-level-refs-after-packing (2014-08-25) 1 commit
732   (merged to 'next' on 2014-09-04 at bfe3873)
733  + pack-refs: prune top-level refs like "refs/foo"
735  After "pack-refs --prune" packed refs at the top-level, it failed
736  to prune them.
738  Will merge to 'master'.
741 * jk/fast-import-fixes (2014-08-25) 2 commits
742   (merged to 'next' on 2014-09-04 at 74838e5)
743  + fast-import: fix buffer overflow in dump_tags
744  + fast-import: clean up pack_data pointer in end_packfile
746  With sufficiently long refnames, fast-import could have overflown
747  an on-stack buffer.
749  Will merge to 'master'.
752 * nd/fetch-pass-quiet-to-gc-child-process (2014-08-18) 2 commits
753   (merged to 'next' on 2014-09-04 at 028cd42)
754  + fetch: silence git-gc if --quiet is given
755  + fetch: convert argv_gc_auto to struct argv_array
757  Progress output from "git gc --auto" was visible in "git fetch -q".
759  Will merge to 'master'.
762 * rs/list-optim (2014-08-25) 2 commits
763   (merged to 'next' on 2014-09-04 at eecaf99)
764  + walker: avoid quadratic list insertion in mark_complete
765  + sha1_name: avoid quadratic list insertion in handle_one_ref
767  Fix a couple of "accumulate into a sorted list" to "accumulate and
768  then sort the list".
770  Will merge to 'master'.
773 * jk/name-decoration-alloc (2014-08-27) 3 commits
774   (merged to 'next' on 2014-09-04 at 05f0d29)
775  + log-tree: use FLEX_ARRAY in name_decoration
776  + log-tree: make name_decoration hash static
777  + log-tree: make add_name_decoration a public function
779  The API to allocate the structure to keep track of commit
780  decoration was cumbersome to use, inviting lazy code to
781  overallocate memory.
783  Will merge to 'master'.
786 * br/http-init-fix (2014-08-21) 2 commits
787   (merged to 'next' on 2014-09-03 at 6d42f5e)
788  + http: style fixes for curl_multi_init error check
789  + http.c: die if curl_*_init fails
791  Code clean-up.
793  Will merge to 'master'.
796 * br/imap-send-simplify-tunnel-child-process (2014-09-02) 3 commits
797   (merged to 'next' on 2014-09-04 at a182987)
798  + imap-send: simplify v_issue_imap_cmd() and get_cmd_result() using starts_with()
799  + imap-send.c: imap_folder -> imap_server_conf.folder
800  + git-imap-send: simplify tunnel construction
802  Code clean-up.
804  Will merge to 'master'.
807 * jn/unpack-trees-checkout-m-carry-deletion (2014-08-25) 3 commits
808   (merged to 'next' on 2014-09-04 at e15803a)
809  + checkout -m: attempt merge when deletion of path was staged
810  + unpack-trees: use 'cuddled' style for if-else cascade
811  + unpack-trees: simplify 'all other failures' case
813  "git checkout -m" did not switch to another branch while carrying
814  the local changes forward when a path was deleted from the index.
816  Will merge to 'master'.
819 * nd/large-blobs (2014-08-18) 5 commits
820   (merged to 'next' on 2014-09-04 at 16d7c62)
821  + diff: shortcut for diff'ing two binary SHA-1 objects
822  + diff --stat: mark any file larger than core.bigfilethreshold binary
823  + diff.c: allow to pass more flags to diff_populate_filespec
824  + sha1_file.c: do not die failing to malloc in unpack_compressed_entry
825  + wrapper.c: introduce gentle xmallocz that does not die()
827  Teach a few codepaths to punt (instead of dying) when large blobs
828  that would not fit in core are involved in the operation.
830  Will merge to 'master'.
833 * nd/mv-code-cleaning (2014-09-03) 8 commits
834   (merged to 'next' on 2014-09-03 at 4315447)
835  + mv: no SP between function name and the first opening parenthese
836  + mv: combine two if(s)
837  + mv: unindent one level for directory move code
838  + mv: move index search code out
839  + mv: remove an "if" that's always true
840  + mv: split submodule move preparation code out
841  + mv: flatten error handling code block
842  + mv: mark strings for translations
844  Code clean-up.
846  Will merge to 'master'.
849 * sp/stream-clean-filter (2014-08-28) 6 commits
850  - convert: stream from fd to required clean filter to reduce used address space
851  - copy_fd(): do not close the input file descriptor
852  - mmap_limit: introduce GIT_MMAP_LIMIT to allow testing expected mmap size
853  - memory_limit: use git_env_ulong() to parse GIT_ALLOC_LIMIT
854  - config.c: add git_env_ulong() to parse environment variable
855  - convert: drop arguments other than 'path' from would_convert_to_git()
857  Rerolled.  Comments & reviews?
860 * jc/push-cert (2014-09-08) 22 commits
861  - signed push: allow stale nonce in stateless mode
862  - signed push: fortify against replay attacks
863  - signed push: add "pushee" header to push certificate
864  - signed push: remove duplicated protocol info
865  - send-pack: send feature request on push-cert packet
866  - receive-pack: GPG-validate push certificates
867  - push: the beginning of "git push --signed"
868  - pack-protocol doc: typofix for PKT-LINE
869  - gpg-interface: move parse_signature() to where it should be
870  - gpg-interface: move parse_gpg_output() to where it should be
871  - send-pack: clarify that cmds_sent is a boolean
872  - send-pack: refactor inspecting and resetting status and sending commands
873  - send-pack: rename "new_refs" to "need_pack_data"
874  - receive-pack: factor out capability string generation
875  - send-pack: factor out capability string generation
876  - send-pack: always send capabilities
877  - send-pack: refactor decision to send update per ref
878  - send-pack: move REF_STATUS_REJECT_NODELETE logic a bit higher
879  - receive-pack: factor out queueing of command
880  - receive-pack: do not reuse old_sha1[] for other things
881  - receive-pack: parse feature request a bit earlier
882  - receive-pack: do not overallocate command structure
884  Allow "git push" request to be signed, so that it can be verified
885  audited, using the GPG signature of the person who pushed, that the
886  tips of branches at a public repository really point the commits
887  the pusher wanted to, without having to "trust" the server.
889  Hopefully a final reroll.  Comments & reviews?
892 * rs/child-process-init (2014-08-20) 4 commits
893   (merged to 'next' on 2014-09-03 at c17c06c)
894  + run-command: inline prepare_run_command_v_opt()
895  + run-command: call run_command_v_opt_cd_env() instead of duplicating it
896  + run-command: introduce child_process_init()
897  + run-command: introduce CHILD_PROCESS_INIT
899  Code clean-up.
901  Will merge to 'master'.
904 * ta/config-set-1 (2014-08-07) 8 commits
905   (merged to 'next' on 2014-09-03 at 184b2ef)
906  + add tests for `git_config_get_string_const()`
907  + add a test for semantic errors in config files
908  + rewrite git_config() to use the config-set API
909  + config: add `git_die_config()` to the config-set API
910  + change `git_config()` return value to void
911  + add line number and file name info to `config_set`
912  + config.c: fix accuracy of line number in errors
913  + config.c: mark error and warnings strings for translation
914  (this branch is used by ta/config-set-2.)
916  Use the new caching config-set API in git_config() calls.
918  Will merge to 'master'.
921 * ta/config-set-2 (2014-08-13) 15 commits
922   (merged to 'next' on 2014-09-03 at f2eff02)
923  + builtin/apply.c: replace `git_config()` with `git_config_get_string_const()`
924  + merge-recursive.c: replace `git_config()` with `git_config_get_int()`
925  + ll-merge.c: refactor `read_merge_config()` to use `git_config_string()`
926  + fast-import.c: replace `git_config()` with `git_config_get_*()` family
927  + branch.c: replace `git_config()` with `git_config_get_string()
928  + alias.c: replace `git_config()` with `git_config_get_string()`
929  + imap-send.c: replace `git_config()` with `git_config_get_*()` family
930  + pager.c: replace `git_config()` with `git_config_get_value()`
931  + builtin/gc.c: replace `git_config()` with `git_config_get_*()` family
932  + rerere.c: replace `git_config()` with `git_config_get_*()` family
933  + fetchpack.c: replace `git_config()` with `git_config_get_*()` family
934  + archive.c: replace `git_config()` with `git_config_get_bool()` family
935  + read-cache.c: replace `git_config()` with `git_config_get_*()` family
936  + http-backend.c: replace `git_config()` with `git_config_get_bool()` family
937  + daemon.c: replace `git_config()` with `git_config_get_bool()` family
938  (this branch uses ta/config-set-1.)
940  Update git_config() users with callback functions for a very narrow
941  scope with calls to config-set API that lets us query a single
942  variable.
944  Will merge to 'master'.
947 * rs/ref-transaction-multi (2014-09-03) 7 commits
948  - ### rs/ref-transaction-multi
949  - refs.c: make the *_packed_refs functions static
950  - refs.c: make repack_without_refs static
951  - remote.c: use a transaction for deleting refs
952  - refs.c: write updates to packed refs when a transaction has more than one ref
953  - refs.c: move reflog updates into its own function
954  - ### rs/ref-transaction-rename
955  (this branch uses rs/ref-transaction, rs/ref-transaction-1, rs/ref-transaction-reflog and rs/ref-transaction-rename.)
957  Follow-up on rs/ref-transaction series to use the packed-ref to
958  achieve atomicity when multiple refs are involved.
960  Comments & reviews?
963 * rs/ref-transaction-rename (2014-09-03) 6 commits
964  - refs.c: rollback the lockfile before we die() in repack_without_refs
965  - refs.c: update rename_ref to use a transaction
966  - refs.c: use packed refs when deleting refs during a transaction
967  - refs.c: return error instead of dying when locking fails during transaction
968  - refs.c: allow passing raw git_committer_info as email to _update_reflog
969  - ### rs/ref-transaction-reflog
970  (this branch is used by rs/ref-transaction-multi; uses rs/ref-transaction, rs/ref-transaction-1 and rs/ref-transaction-reflog.)
972  Follow-up on rs/ref-transaction series to make renaming a ref
973  transactional (i.e. "delete old and create new" should not leave
974  an in-between state behind when it fails).
976  Comments & reviews?
979 * rs/ref-transaction-reflog (2014-09-03) 16 commits
980  - refs.c: allow deleting refs with a broken sha1
981  - refs.c: remove lock_any_ref_for_update
982  - refs.c: make unlock_ref/close_ref/commit_ref static
983  - refs.c: rename log_ref_setup to create_reflog
984  - reflog.c: use a reflog transaction when writing during expire
985  - refs.c: allow multiple reflog updates during a single transaction
986  - refs.c: only write reflog update if msg is non-NULL
987  - refs.c: add a flag to allow reflog updates to truncate the log
988  - refs.c: add a transaction function to append a reflog entry
989  - lockfile.c: make hold_lock_file_for_append preserve meaningful errno
990  - refs.c: add a function to append a reflog entry to a fd
991  - refs.c: add a new update_type field to ref_update
992  - refs.c: rename the transaction functions
993  - refs.c: make ref_transaction_delete a wrapper for ref_transaction_update
994  - refs.c: make ref_transaction_create a wrapper to ref_transaction_update
995  - ### rs/ref-transaction
996  (this branch is used by rs/ref-transaction-multi and rs/ref-transaction-rename; uses rs/ref-transaction and rs/ref-transaction-1.)
998  Cover updates to reflog with the same transaction mechanism as used
999  for reflog manipulations.
1001  Comments & reviews?
1002  Otherwise will merge to 'next'.
1006 * rs/ref-transaction (2014-09-03) 13 commits
1007  - refs.c: fix handling of badly named refs
1008  - refs.c: make write_ref_sha1 static
1009  - fetch.c: change s_update_ref to use a ref transaction
1010  - refs.c: propagate any errno==ENOTDIR from _commit back to the callers
1011  - refs.c: pass a skip list to name_conflict_fn
1012  - refs.c: call lock_ref_sha1_basic directly from commit
1013  - refs.c: move the check for valid refname to lock_ref_sha1_basic
1014  - refs.c: pass NULL as *flags to read_ref_full
1015  - refs.c: pass the ref log message to _create/delete/update instead of _commit
1016  - refs.c: add an err argument to delete_ref_loose
1017  - wrapper.c: add a new function unlink_or_msg
1018  - wrapper.c: simplify warn_if_unremovable
1019  - ### rs/ref-transaction-1
1020  (this branch is used by rs/ref-transaction-multi, rs/ref-transaction-reflog and rs/ref-transaction-rename; uses rs/ref-transaction-1.)
1022  Comments & reviews?
1023  Otherwise will merge to 'next'.
1026 * rs/ref-transaction-1 (2014-09-03) 22 commits
1027   (merged to 'next' on 2014-09-03 at 68e20b8)
1028  + update-ref --stdin: pass transaction around explicitly
1029  + update-ref --stdin: narrow scope of err strbuf
1030  + refs.c: make delete_ref use a transaction
1031  + refs.c: make prune_ref use a transaction to delete the ref
1032  + refs.c: remove lock_ref_sha1
1033  + refs.c: remove the update_ref_write function
1034  + refs.c: remove the update_ref_lock function
1035  + refs.c: make lock_ref_sha1 static
1036  + walker.c: use ref transaction for ref updates
1037  + fast-import.c: use a ref transaction when dumping tags
1038  + receive-pack.c: use a reference transaction for updating the refs
1039  + refs.c: change update_ref to use a transaction
1040  + branch.c: use ref transaction for all ref updates
1041  + fast-import.c: change update_branch to use ref transactions
1042  + sequencer.c: use ref transactions for all ref updates
1043  + commit.c: use ref transactions for updates
1044  + replace.c: use the ref transaction functions for updates
1045  + tag.c: use ref transactions when doing updates
1046  + refs.c: add transaction.status and track OPEN/CLOSED
1047  + refs.c: make ref_transaction_begin take an err argument
1048  + refs.c: update ref_transaction_delete to check for error and return status
1049  + refs.c: change ref_transaction_create to do error checking and return status
1050  (this branch is used by rs/ref-transaction, rs/ref-transaction-multi, rs/ref-transaction-reflog and rs/ref-transaction-rename.)
1052  The second batch of the transactional ref update series.
1054  Will merge to 'master'.
1057 * dt/cache-tree-repair (2014-09-03) 5 commits
1058   (merged to 'next' on 2014-09-03 at 1c8ff65)
1059  + cache-tree: do not try to use an invalidated subtree info to build a tree
1060   (merged to 'next' on 2014-08-26 at 6faccdb)
1061  + cache-tree: Write updated cache-tree after commit
1062  + cache-tree: subdirectory tests
1063  + test-dump-cache-tree: invalid trees are not errors
1064  + cache-tree: create/update cache-tree on checkout
1066  Add a few more places in "commit" and "checkout" that make sure
1067  that the cache-tree is fully populated in the index.
1069  Will merge to 'master'.
1072 * jc/test-lazy-prereq (2014-06-13) 1 commit
1073  - tests: drop GIT_*_TIMING_TESTS environment variable support
1075  Test-script clean-up.
1077  Comments & reviews?
1078  Otherwise will merge to 'next'.
1081 * mt/patch-id-stable (2014-06-10) 1 commit
1082  - patch-id: change default to stable
1084  Teaches "git patch-id" to compute the patch ID that does not change
1085  when the files in a single patch is reordered. As this new algorithm
1086  is backward incompatible, the last bit to flip it to be the default
1087  is left out of 'master' for now.
1089  Nobody seems to be jumping up & down requesting this last step.
1090  Perhaps will drop.
1093 --------------------------------------------------
1094 [Discarded]
1096 * tr/merge-recursive-index-only (2014-02-05) 3 commits
1097  - merge-recursive: -Xindex-only to leave worktree unchanged
1098  - merge-recursive: internal flag to avoid touching the worktree
1099  - merge-recursive: remove dead conditional in update_stages()
1101  Now part of tr/remerge-diff.