What's cooking (2014/09 #01)
[alt-git.git] / whats-cooking.txt
blobfc47c632e849376697cf6fcf4f1b24b0b6137adb
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Sep 2014, #01; Tue, 2)
4 X-master-at: 85f083786fe37f280ca30fc0b74498b22b322c6d
5 X-next-at: 7c4bc81ba6302d4dd40821b46578580afbcdf4b5
7 What's cooking in git.git (Sep 2014, #01; Tue, 2)
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 first batch of topics have graduated to 'master'.
16 You can find the changes described here in the integration branches
17 of the repositories listed at
19     http://git-blame.blogspot.com/p/git-public-repositories.html
21 --------------------------------------------------
22 [Graduated to "master"]
24 * bc/archive-pax-header-mode (2014-08-04) 1 commit
25   (merged to 'next' on 2014-08-26 at 51fca1a)
26  + archive: honor tar.umask even for pax headers
28  Originally merged to 'next' on 2014-08-13
30  Implementations of "tar" that do not understand an extended pax
31  header would extract the contents of it in a regular file; make
32  sure the permission bits of this file follows the same tar.umask
33  configuration setting.
36 * jc/reopen-lock-file (2014-07-14) 1 commit
37   (merged to 'next' on 2014-08-26 at c5a5a12)
38  + lockfile: allow reopening a closed but still locked file
40  Originally merged to 'next' on 2014-07-21
42  Needed in the "commit -p" code path to update the cache tree in the
43  index (e.g. for dt/cache-tree-repair topic).
46 * jk/pretty-empty-format (2014-07-30) 3 commits
47   (merged to 'next' on 2014-08-26 at 1eb7cc3)
48  + pretty: make empty userformats truly empty
49  + pretty: treat "--format=" as an empty userformat
50  + revision: drop useless string offset when parsing "--pretty"
52  Originally merged to 'next' on 2014-08-13
54  "git log --pretty/format=" with an empty format string did not mean
55  the more obvious "No output whatsoever" but "Use default format",
56  which was counterintuitive.
59 * mm/config-edit-global (2014-07-25) 3 commits
60   (merged to 'next' on 2014-08-26 at 3a47fc5)
61  + commit: advertise config --global --edit on guessed identity
62  + home_config_paths(): let the caller ignore xdg path
63  + config --global --edit: create a template file if needed
65  Originally merged to 'next' on 2014-07-31
67  Start "git config --edit --global" from a skeletal per-user
68  configuration file contents, instead of a total blank, when the
69  user does not already have any.  This immediately reduces the need
70  for a later "Have you forgotten setting core.user?" and we can add
71  more to the template as we gain more experience.
74 * pr/remotes-in-hashmap (2014-07-30) 1 commit
75   (merged to 'next' on 2014-08-26 at 2052a31)
76  + use a hashmap to make remotes faster
78  Originally merged to 'next' on 2014-08-13
80  Optimize remotes configuration look-up in a repository with very
81  many remotes defined.
84 * rs/init-no-duplicate-real-path (2014-07-28) 1 commit
85   (merged to 'next' on 2014-08-26 at c66e1c4)
86  + init: avoid superfluous real_path() calls
88  Originally merged to 'next' on 2014-07-31
91 * rs/strbuf-getcwd (2014-08-26) 10 commits
92   (merged to 'next' on 2014-08-26 at 11be0d6)
93  + use strbuf_add_absolute_path() to add absolute paths
94  + abspath: convert absolute_path() to strbuf
95  + use xgetcwd() to set $GIT_DIR
96  + use xgetcwd() to get the current directory or die
97  + wrapper: add xgetcwd()
98  + abspath: convert real_path_internal() to strbuf
99  + abspath: use strbuf_getcwd() to remember original working directory
100  + setup: convert setup_git_directory_gently_1 et al. to strbuf
101  + unix-sockets: use strbuf_getcwd()
102  + strbuf: add strbuf_getcwd()
103  (this branch is tangled with nd/lock-paths-absolute.)
105  Originally merged to 'next' on 2014-08-18
107  Reduce the use of fixed sized buffer passed to getcwd() calls
108  by introducing xgetcwd() helper.
111 * ta/config-set (2014-07-29) 2 commits
112   (merged to 'next' on 2014-08-26 at 81395f9)
113  + test-config: add tests for the config_set API
114  + add `config_set` API for caching config-like files
115  (this branch is used by ta/config-set-1 and ta/config-set-2.)
117  Originally merged to 'next' on 2014-08-13
119  Add in-core caching layer to let us avoid reading the same
120  configuration files number of times.
123 * ta/pretty-parse-config (2014-08-04) 1 commit
124   (merged to 'next' on 2014-08-26 at 901e8c2)
125  + pretty.c: make git_pretty_formats_config return -1 on git_config_string failure
127  Originally merged to 'next' on 2014-08-13
129 --------------------------------------------------
130 [New Topics]
132 * bb/date-iso-strict (2014-08-29) 1 commit
133  - pretty: provide a strict ISO 8601 date format
136 * jk/commit-author-parsing (2014-08-29) 6 commits
137  - determine_author_info(): copy getenv output
138  - determine_author_info(): reuse parsing functions
139  - date: use strbufs in date-formatting functions
140  - record_author_date(): use find_commit_header()
141  - record_author_date(): fix memory leak on malformed commit
142  - commit: provide a function to find a header in a buffer
145 * jk/contrib-subtree-make-all (2014-08-18) 1 commit
146  - subtree: make "all" default target of Makefile
149 * jk/fast-export-anonymize (2014-08-28) 2 commits
150  - docs/fast-export: explain --anonymize more completely
151  - teach fast-export an --anonymize option
154 * jk/index-pack-threading-races (2014-08-29) 1 commit
155  - index-pack: fix race condition with duplicate bases
158 * jk/send-pack-many-refspecs (2014-08-26) 1 commit
159  - send-pack: take refspecs over stdin
162 * jp/index-with-corrupt-stages (2014-08-29) 2 commits
163  - read_index_unmerged(): remove unnecessary loop index adjustment
164  - read_index_from(): catch out of order entries when reading an index file
167 * jt/timer-settime (2014-08-29) 9 commits
168  - use timer_settime() for new platforms
169  - autoconf: check for timer_settime()
170  - autoconf: check for struct itimerspec
171  - autoconf: check for struct sigevent
172  - autoconf: check for struct timespec
173  - autoconf: check for timer_t
174  - autoconf: check for setitimer()
175  - autoconf: check for struct itimerval
176  - git-compat-util.h: add missing semicolon after struct itimerval
178  Need a rerolled one.
181 * mb/build-contrib-svn-fe (2014-08-28) 1 commit
182  - contrib/svn-fe: fix Makefile
185 * mb/fast-import-delete-root (2014-08-29) 2 commits
186  - fast-import: fix segfault in store_tree()
187  - t9300: test filedelete command
190 * mm/discourage-commit-a-to-finish-conflict-resolution (2014-08-28) 1 commit
191  - merge, pull: stop advising 'commit -a' in case of conflict
194 * sp/pack-protocol-doc-on-shallow (2014-08-28) 1 commit
195   (merged to 'next' on 2014-08-29 at b1ae451)
196  + Document LF appearing in shallow command during send-pack/receive-pack
198  Will merge to 'master'.
201 * ah/grammofix (2014-09-02) 1 commit
202  - grammofix in user-facing messages
205 * da/styles (2014-09-02) 1 commit
206  - stylefix: asterisks stick to the variable, not the type
209 * da/use-rev-parse-verify-quiet-in-stash (2014-09-02) 1 commit
210  - stash: prefer --quiet over shell redirection
213 * mk/reachable-protect-detached-head (2014-09-02) 2 commits
214  - SQUASH???
215  - reachable.c: add HEAD to reachability starting commits
218 * rs/furhter-uses-of-skip-prefix (2014-09-02) 2 commits
219  - pack-write: simplify index_pack_lockfile using skip_prefix() and xstrfmt()
220  - connect: simplify check_ref() using skip_prefix() and starts_with()
223 * rs/merge-tree-simplify (2014-09-02) 1 commit
224  - merge-tree: remove unused df_conflict arguments
227 * rs/simplify-config-include (2014-09-02) 1 commit
228  - config: simplify git_config_include()
231 * rs/simplify-http-walker (2014-09-02) 1 commit
232  - http-walker: simplify process_alternates_response() using strbuf
235 * tb/crlf-tests (2014-09-02) 3 commits
236  - MinGW: update tests to handle a native eol of crlf
237  - Makefile: propagate NATIVE_CRLF to C
238  - t0027: Tests for core.eol=native, eol=lf, eol=crlf
240 --------------------------------------------------
241 [Stalled]
243 * jk/pack-bitmap (2014-08-04) 1 commit
244  - pack-bitmap: do not use gcc packed attribute
246  Hold, waiting for Karsten's replacement.
249 * nd/multiple-work-trees (2014-07-29) 39 commits
250  . checkout --to: do not touch existing target directory
251  . checkout: prefix --to argument properly when cwd is moved
252  . environment.c: fix incorrect git_graft_file initialization
253  . checkout --to: fix dangling pointers in remove_junk()
254  . checkout: no auto-detach if the ref is already checked out
255  . prune --repos: fix uninitialized access
256  . checkout: no need to call check_linked_checkouts if head_ref is NULL
257  . gitrepository-layout.txt: s/ignored/ignored if/
258  . checkout: don't require a work tree when checking out into a new one
259  . git_path(): keep "info/sparse-checkout" per work-tree
260  . count-objects: report unused files in $GIT_DIR/repos/...
261  . gc: support prune --repos
262  . gc: factor out gc.pruneexpire parsing code
263  . gc: style change -- no SP before closing parenthesis
264  . prune: strategies for linked checkouts
265  . checkout: detach if the branch is already checked out elsewhere
266  . checkout: clean up half-prepared directories in --to mode
267  . checkout: support checking out into a new working directory
268  . use new wrapper write_file() for simple file writing
269  . wrapper.c: wrapper to open a file, fprintf then close
270  . setup.c: support multi-checkout repo setup
271  . setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
272  . setup.c: convert check_repository_format_gently to use strbuf
273  . setup.c: detect $GIT_COMMON_DIR in is_git_directory()
274  . setup.c: convert is_git_directory() to use strbuf
275  . git-stash: avoid hardcoding $GIT_DIR/logs/....
276  . *.sh: avoid hardcoding $GIT_DIR/hooks/...
277  . git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
278  . $GIT_COMMON_DIR: a new environment variable
279  . commit: use SEQ_DIR instead of hardcoding "sequencer"
280  . fast-import: use git_path() for accessing .git dir instead of get_git_dir()
281  . reflog: avoid constructing .lock path with git_path
282  . *.sh: respect $GIT_INDEX_FILE
283  . git_path(): be aware of file relocation in $GIT_DIR
284  . path.c: group git_path(), git_pathdup() and strbuf_git_path() together
285  . path.c: rename vsnpath() to do_git_path()
286  . git_snpath(): retire and replace with strbuf_git_path()
287  . path.c: make get_pathname() call sites return const char *
288  . path.c: make get_pathname() return strbuf instead of static buffer
290  A replacement for contrib/workdir/git-new-workdir that does not
291  rely on symbolic links and make sharing of objects and refs safer
292  by making the borrowee and borrowers aware of each other.
294  Reroll posted, but haven't picked up yet.  How would this interact
295  with rr/transaction series which is pretty much all about the refs?
298 * cb/mergetool-difftool (2014-07-21) 2 commits
299  - difftool: don't assume that default sh is sane
300  - mergetool: don't require a work tree for --tool-help
302  Update the way the "difftool --help" shows the help message that is
303  shared with the "mergetool" to reduce one shell dependency.
305  Will be rerolled.
308 * rr/mergetool-temporary-filename-tweak (2014-08-21) 1 commit
309  - Allow the user to change the temporary file name for mergetool
311  Needs rerolling (new paragraph in doc seems to be in a wrong place)
314 * jk/tag-contains (2014-06-30) 8 commits
315  . perf: add tests for tag --contains
316  . tag: use commit_contains
317  . commit: provide a fast multi-tip contains function
318  . string-list: add pos to iterator callback
319  . add functions for memory-efficient bitmaps
320  . paint_down_to_common: use prio_queue
321  . tag: factor out decision to stream tags
322  . tag: allow --sort with -n
324  Expecting a reroll.
327 * ab/add-interactive-show-diff-func-name (2014-05-12) 2 commits
328  - SQUASH??? git-add--interactive: Preserve diff heading when splitting hunks
329  - git-add--interactive: Preserve diff heading when splitting hunks
331  Waiting for a reroll.
334 * jn/gitweb-utf8-in-links (2014-05-27) 1 commit
335  - gitweb: Harden UTF-8 handling in generated links
337  $gmane/250758?
340 * rh/prompt-tests (2014-06-05) 11 commits
341  - t9904: new __git_ps1 tests for Zsh
342  - test-lib: make it possible to override how test code is eval'd
343  - lib-prompt-tests.sh: add variable for string that encodes percent in PS1
344  - lib-prompt-tests.sh: put all tests inside a function
345  - t9903: move prompt tests to a new lib-prompt-tests.sh file
346  - t9903: move PS1 color code variable definitions to lib-bash.sh
347  - t9903: include "Bash" in test names via new $shellname var
348  - t9903: run pc mode tests again with PS1 expansion disabled
349  - t9903: move test name prefix to a separate variable
350  - t9903: put the Bash pc mode prompt test cases in a function
351  - t9903: remove Zsh test from the suite of Bash prompt tests
353  Expecting a reroll to limit the damage to test_eval_; also reported
354  to be broken with older zsh that are still in the field ($gmane/251231).
357 * ss/userdiff-update-csharp-java (2014-06-02) 2 commits
358  - userdiff: support Java try keyword
359  - userdiff: support C# async methods and correct C# keywords
361  Reviews sent; waiting for a response.
364 * cc/interpret-trailers (2014-05-28) 11 commits
365  - Documentation: add documentation for 'git interpret-trailers'
366  - trailer: add tests for commands in config file
367  - trailer: execute command from 'trailer.<name>.command'
368  - trailer: add tests for "git interpret-trailers"
369  - trailer: add interpret-trailers command
370  - trailer: put all the processing together and print
371  - trailer: parse trailers from file or stdin
372  - trailer: process command line trailer arguments
373  - trailer: read and process config information
374  - trailer: process trailers from input message and arguments
375  - trailer: add data structures and basic functions
377  A new filter to programatically edit the tail end of the commit log
378  messages.
380  Reroll exists, but haven't had time to pick it up yet.
383 * mh/lockfile (2014-04-15) 25 commits
384  . trim_last_path_elm(): replace last_path_elm()
385  . resolve_symlink(): take a strbuf parameter
386  . resolve_symlink(): use a strbuf for internal scratch space
387  . change lock_file::filename into a strbuf
388  . commit_lock_file(): use a strbuf to manage temporary space
389  . try_merge_strategy(): use a statically-allocated lock_file object
390  . try_merge_strategy(): remove redundant lock_file allocation
391  . struct lock_file: declare some fields volatile
392  . lockfile: avoid transitory invalid states
393  . commit_lock_file(): die() if called for unlocked lockfile object
394  . commit_lock_file(): inline temporary variable
395  . remove_lock_file(): call rollback_lock_file()
396  . lock_file(): exit early if lockfile cannot be opened
397  . write_packed_entry_fn(): convert cb_data into a (const int *)
398  . prepare_index(): declare return value to be (const char *)
399  . delete_ref_loose(): don't muck around in the lock_file's filename
400  . cache.h: define constants LOCK_SUFFIX and LOCK_SUFFIX_LEN
401  . lockfile.c: document the various states of lock_file objects
402  . lock_file(): always add lock_file object to lock_file_list
403  . hold_lock_file_for_append(): release lock on errors
404  . lockfile: unlock file if lockfile permissions cannot be adjusted
405  . rollback_lock_file(): set fd to -1
406  . rollback_lock_file(): do not clear filename redundantly
407  . api-lockfile: expand the documentation
408  . unable_to_lock_die(): rename function from unable_to_lock_index_die()
410  Expecting a reroll.
413 * bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
414  - git-rebase: print name of rev when using shorthand
416  Teach "git rebase -" to report the concrete name of the branch
417  (i.e. the previous one).
419  But it stops short and does not do the same for "git rebase @{-1}".
420  Expecting a reroll.
423 * tr/merge-recursive-index-only (2014-02-05) 3 commits
424  - merge-recursive: -Xindex-only to leave worktree unchanged
425  - merge-recursive: internal flag to avoid touching the worktree
426  - merge-recursive: remove dead conditional in update_stages()
427  (this branch is used by tr/remerge-diff.)
430 * tr/remerge-diff (2014-02-26) 5 commits
431  . log --remerge-diff: show what the conflict resolution changed
432  . name-hash: allow dir hashing even when !ignore_case
433  . merge-recursive: allow storing conflict hunks in index
434  . revision: fold all merge diff variants into an enum merge_diff_mode
435  . combine-diff: do not pass revs->dense_combined_merges redundantly
436  (this branch uses tr/merge-recursive-index-only.)
438  "log -p" output learns a new way to let users inspect a merge
439  commit by showing the differences between the automerged result
440  with conflicts the person who recorded the merge would have seen
441  and the final conflict resolution that was recorded in the merge.
443  Needs to be rebased, now kb/fast-hashmap topic is in.
446 * jk/makefile (2014-02-05) 16 commits
447  . FIXUP
448  . move LESS/LV pager environment to Makefile
449  . Makefile: teach scripts to include make variables
450  . FIXUP
451  . Makefile: auto-build C strings from make variables
452  . Makefile: drop *_SQ variables
453  . FIXUP
454  . Makefile: add c-quote helper function
455  . Makefile: introduce sq function for shell-quoting
456  . Makefile: always create files via make-var
457  . Makefile: store GIT-* sentinel files in MAKE/
458  . Makefile: prefer printf to echo for GIT-*
459  . Makefile: use tempfile/mv strategy for GIT-*
460  . Makefile: introduce make-var helper function
461  . Makefile: fix git-instaweb dependency on gitweb
462  . Makefile: drop USE_GETTEXT_SCHEME from GIT-CFLAGS
464  Simplify the Makefile rules and macros that exist primarily for
465  quoting purposes, and make it easier to robustly express the
466  dependency rules.
468  Expecting a reroll.
471 * po/everyday-doc (2014-01-27) 1 commit
472  - Make 'git help everyday' work
474  This may make the said command to emit something, but the source is
475  not meant to be formatted into a manual pages to begin with, and
476  also its contents are a bit stale.  It may be a good first step in
477  the right direction, but needs more work to at least get the
478  mark-up right before public consumption.
480  Will hold.
483 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
484  - merge: drop unused arg from abort_commit method signature
485  - merge: make prepare_to_commit responsible for write_merge_state
486  - t7505: ensure cleanup after hook blocks merge
487  - t7505: add missing &&
489  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
490  run during "git merge".  The log message stresses too much on one
491  hook, prepare-commit-msg, but it would equally apply to other hooks
492  like post-merge, I think.
494  Waiting for a reroll.
497 * jc/graph-post-root-gap (2013-12-30) 3 commits
498  - WIP: document what we want at the end
499  - graph: remove unused code a bit
500  - graph: stuff the current commit into graph->columns[]
502  This was primarily a RFH ($gmane/239580).
505 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
506  - perf-lib: add test_perf_cleanup target
507  - perf-lib: split starting the test from the execution
509  Add test_perf_cleanup shell function to the perf suite, that allows
510  the script writers to define a test with a clean-up action.
512  Will hold.
515 * jc/show-branch (2014-03-24) 5 commits
516  - show-branch: use commit slab to represent bitflags of arbitrary width
517  - show-branch.c: remove "all_mask"
518  - show-branch.c: abstract out "flags" operation
519  - show-branch.c: lift all_mask/all_revs to a global static
520  - show-branch.c: update comment style
522  Waiting for the final step to lift the hard-limit before sending it out.
524 --------------------------------------------------
525 [Cooking]
527 * ta/config-add-to-empty-or-true-fix (2014-08-18) 1 commit
528   (merged to 'next' on 2014-08-29 at d219212)
529  + make config --add behave correctly for empty and NULL values
531  We may want to undo the "a^" bit along the lines of $gmane/255445
534 * et/spell-poll-infinite-with-minus-one-only (2014-08-22) 1 commit
535  - upload-pack: keep poll(2)'s timeout to -1
537  We used to pass -1000 to poll(2), expecting it to also mean "no
538  timeout", which should be spelled as -1.
540  Will merge to 'next'.
543 * jk/make-simplify-dependencies (2014-08-26) 3 commits
544  - Makefile: drop CHECK_HEADER_DEPENDENCIES code
545  - Makefile: use `find` to determine static header dependencies
546  - i18n: treat "make pot" as an explicitly-invoked target
548  Admit that keeping LIB_H up-to-date, only for those that do not use
549  the automatically generated dependencies, is a losing battle, and
550  make it conservative by making everything depend on anything.
552  Will merge to 'next'.
555 * jk/prompt-stash-could-be-packed (2014-08-25) 1 commit
556   (merged to 'next' on 2014-08-29 at 526e3bd)
557  + git-prompt: do not look for refs/stash in $GIT_DIR
559  The prompt script checked $GIT_DIR/ref/stash file to see if there
560  is a stash, which was a no-no.
562  Will merge to 'master'.
565 * jk/prune-top-level-refs-after-packing (2014-08-25) 1 commit
566  - pack-refs: prune top-level refs like "refs/foo"
568  After "pack-refs --prune" packed refs at the top-level, it failed
569  to prune them.
571  Will merge to 'next'.
574 * jk/fast-import-fixes (2014-08-25) 2 commits
575  - fast-import: fix buffer overflow in dump_tags
576  - fast-import: clean up pack_data pointer in end_packfile
578  With sufficiently long refnames, fast-import could have overflown
579  an on-stack buffer.
581  Will merge to 'next'.
584 * nd/fetch-pass-quiet-to-gc-child-process (2014-08-18) 2 commits
585  - fetch: silence git-gc if --quiet is given
586  - fetch: convert argv_gc_auto to struct argv_array
588  Progress output from "git gc --auto" was visible in "git fetch -q".
590  Will merge to 'next'.
593 * rs/list-optim (2014-08-25) 2 commits
594  - walker: avoid quadratic list insertion in mark_complete
595  - sha1_name: avoid quadratic list insertion in handle_one_ref
597  Fix a couple of "accumulate into a sorted list" to "accumulate and
598  then sort the list".
600  Will merge to 'next'.
603 * sb/mailsplit-dead-code-removal (2014-08-13) 1 commit
604   (merged to 'next' on 2014-08-29 at 4f9ca4f)
605  + mailsplit.c: remove dead code
607  Will merge to 'master'.
610 * tb/pretty-format-cd-date-format (2014-08-21) 1 commit
611   (merged to 'next' on 2014-08-29 at ab8ccd4)
612  + pretty: note that %cd respects the --date= option
614  Documentation update.
616  Will merge to 'master'.
619 * jk/name-decoration-alloc (2014-08-27) 3 commits
620  - log-tree: use FLEX_ARRAY in name_decoration
621  - log-tree: make name_decoration hash static
622  - log-tree: make add_name_decoration a public function
624  The API to allocate the structure to keep track of commit
625  decoration was cumbersome to use, inviting lazy code to
626  overallocate memory.
628  Will merge to 'next'.
631 * br/http-init-fix (2014-08-21) 2 commits
632  - http: style fixes for curl_multi_init error check
633  - http.c: die if curl_*_init fails
635  Will merge to 'next'.
638 * br/imap-send-simplify-tunnel-child-process (2014-09-02) 3 commits
639  - imap-send: simplify v_issue_imap_cmd() and get_cmd_result() using starts_with()
640  - imap-send.c: imap_folder -> imap_server_conf.folder
641  - git-imap-send: simplify tunnel construction
643  Will merge to 'next'.
646 * jc/config-mak-document-darwin-vs-macosx (2014-08-15) 1 commit
647   (merged to 'next' on 2014-08-29 at 55e28af)
648  + config.mak.uname: add hint on uname_R for MacOS X
649  (this branch uses km/no-apple-common-crypto-on-darwin-8-and-below.)
651  Will merge to 'master'.
654 * jn/unpack-trees-checkout-m-carry-deletion (2014-08-25) 3 commits
655  - checkout -m: attempt merge when deletion of path was staged
656  - unpack-trees: use 'cuddled' style for if-else cascade
657  - unpack-trees: simplify 'all other failures' case
659  Will merge to 'next'.
662 * km/no-apple-common-crypto-on-darwin-8-and-below (2014-08-15) 1 commit
663   (merged to 'next' on 2014-08-29 at 8abb416)
664  + config.mak.uname: set NO_APPLE_COMMON_CRYPTO on older systems
665  (this branch is used by jc/config-mak-document-darwin-vs-macosx.)
667  Build automation for older versions of MacOS X.
669  Will merge to 'master'.
672 * nd/large-blobs (2014-08-18) 5 commits
673  - diff: shortcut for diff'ing two binary SHA-1 objects
674  - diff --stat: mark any file larger than core.bigfilethreshold binary
675  - diff.c: allow to pass more flags to diff_populate_filespec
676  - sha1_file.c: do not die failing to malloc in unpack_compressed_entry
677  - wrapper.c: introduce gentle xmallocz that does not die()
679  Will merge to 'next'.
682 * nd/mv-code-cleaning (2014-08-11) 9 commits
683  - SQUASH???
684  - mv: no SP between function name and the first opening parenthese
685  - mv: combine two if(s)
686  - mv: unindent one level for directory move code
687  - mv: move index search code out
688  - mv: remove an "if" that's always true
689  - mv: split submodule move preparation code out
690  - mv: flatten error handling code block
691  - mv: mark strings for translations
693  SQUASH!!! Will merge to 'next'.
696 * nd/strbuf-utf8-replace (2014-08-11) 1 commit
697   (merged to 'next' on 2014-08-29 at 5d1ddf4)
698  + utf8.c: fix strbuf_utf8_replace() consuming data beyond input string
700  Will merge to 'master'.
703 * rs/clean-menu-item-defn (2014-08-18) 1 commit
704   (merged to 'next' on 2014-08-29 at 88c1a9d)
705  + clean: use f(void) instead of f() to declare a pointer to a function without arguments
707  Will merge to 'master'.
710 * rs/inline-compat-path-macros (2014-08-18) 1 commit
711   (merged to 'next' on 2014-08-29 at 5705ad5)
712  + turn path macros into inline function
714  Will merge to 'master'.
717 * rs/refresh-beyond-symlink (2014-08-10) 1 commit
718   (merged to 'next' on 2014-08-29 at 90a4a8b)
719  + read-cache: check for leading symlinks when refreshing index
721  "git add x" where x that used to be a directory has become a
722  symbolic link to a directory misbehaved.
724  Will merge to 'master'.
727 * sb/blame-msg-i18n (2014-08-12) 1 commit
728   (merged to 'next' on 2014-08-29 at 5b33466)
729  + builtin/blame.c: add translation to warning about failed revision walk
731  Will merge to 'master'.
734 * sb/plug-leaks (2014-08-10) 2 commits
735   (merged to 'next' on 2014-08-29 at e42f0b8)
736  + clone.c: don't leak memory in cmd_clone
737  + remote.c: don't leak the base branch name in format_tracking_info
739  Will merge to 'master'.
742 * sb/prepare-revision-walk-error-check (2014-08-12) 1 commit
743   (merged to 'next' on 2014-08-29 at fb82508)
744  + prepare_revision_walk(): check for return value in all places
746  Will merge to 'master'.
749 * so/rebase-doc (2014-08-12) 1 commit
750   (merged to 'next' on 2014-08-29 at 77cfce1)
751  + Documentation/git-rebase.txt: -f forces a rebase that would otherwise be a no-op
753  May need description on what makes various modes of operation to
754  decide that the request can become a "no-op".
756  Will merge to 'master'.
759 * sp/stream-clean-filter (2014-08-28) 6 commits
760  - convert: stream from fd to required clean filter to reduce used address space
761  - copy_fd(): do not close the input file descriptor
762  - mmap_limit: introduce GIT_MMAP_LIMIT to allow testing expected mmap size
763  - memory_limit: use git_env_ulong() to parse GIT_ALLOC_LIMIT
764  - config.c: add git_env_ulong() to parse environment variable
765  - convert: drop arguments other than 'path' from would_convert_to_git()
767  Rerolled.
770 * jc/push-cert (2014-08-25) 20 commits
771  - signed push: fortify against replay attacks
772  - signed-push: add "pushee" header to push certificate
773  - signed push: remove duplicated protocol info
774  - send-pack: send feature request on push-cert packet
775  - receive-pack: GPG-validate push certificates
776  - the beginning of the signed push
777  - pack-protocol doc: typofix for PKT-LINE
778  - gpg-interface: move parse_signature() to where it should be
779  - gpg-interface: move parse_gpg_output() to where it should be
780  - send-pack: clarify that cmds_sent is a boolean
781  - send-pack: refactor inspecting and resetting status and sending commands
782  - send-pack: rename "new_refs" to "need_pack_data"
783  - send-pack: factor out capability string generation
784  - send-pack: always send capabilities
785  - send-pack: refactor decision to send update per ref
786  - send-pack: move REF_STATUS_REJECT_NODELETE logic a bit higher
787  - receive-pack: factor out queueing of command
788  - receive-pack: do not reuse old_sha1[] for other things
789  - receive-pack: parse feature request a bit earlier
790  - receive-pack: do not overallocate command structure
792  Allow "git push" request to be signed, so that it can be verified
793  audited, using the GPG signature of the person who pushed, that the
794  tips of branches at a public repository really point the commits
795  the pusher wanted to, without having to "trust" the server.
797  The tip two feels still a bit slushy, but otherwise should be
798  reasonably solid to build upon.
801 * rs/child-process-init (2014-08-20) 4 commits
802  - run-command: inline prepare_run_command_v_opt()
803  - run-command: call run_command_v_opt_cd_env() instead of duplicating it
804  - run-command: introduce child_process_init()
805  - run-command: introduce CHILD_PROCESS_INIT
807  Will merge to 'next'.
810 * tf/imap-send-create (2014-08-25) 2 commits
811   (merged to 'next' on 2014-08-29 at 8390945)
812  + imap-send: create target mailbox if it is missing
813  + imap-send: clarify CRAM-MD5 vs LOGIN documentation
815  Will merge to 'master'.
818 * bc/imap-send-doc (2014-08-05) 1 commit
819   (merged to 'next' on 2014-08-29 at 2ea514b)
820  + imap-send doc: omit confusing "to use imap-send" modifier
822  Will merge to 'master'.
825 * jc/apply-ws-prefix (2014-08-07) 3 commits
826   (merged to 'next' on 2014-08-29 at 67967d3)
827  + apply: omit ws check for excluded paths
828  + apply: hoist use_patch() helper for path exclusion up
829  + apply: use the right attribute for paths in non-Git patches
831  Applying a patch not generated by Git in a subdirectory used to
832  check the whitespace breakage using the attributes for incorrect
833  paths. Also whitespace checks were performed even for paths
834  excluded via "git apply --exclude=<path>" mechanism.
836  Will merge to 'master'.
839 * jk/command-line-config-empty-string (2014-08-05) 1 commit
840   (merged to 'next' on 2014-08-29 at 74f04af)
841  + config: teach "git -c" to recognize an empty string
843  "git -c section.var command" and "git -c section.var= command"
844  should pass the configuration differently (the former should be
845  a boolean true, the latter should be an empty string).
847  Will merge to 'master'.
850 * la/init-doc (2014-08-08) 7 commits
851   (merged to 'next' on 2014-08-29 at 2cf846b)
852  + Documentation: git-init: flesh out example
853  + Documentation: git-init: template directory: reword and cross-reference
854  + Documentation: git-init: reword parenthetical statements
855  + Documentation: git-init: --separate-git-dir: clarify
856  + Documentation: git-init: template directory: reword
857  + Documentation: git-init: list items facelift
858  + Documentation: git-init: typographical fixes
860  Will merge to 'master'.
863 * lf/bundle-exclusion (2014-08-07) 1 commit
864   (merged to 'next' on 2014-08-29 at d84b102)
865  + bundle: fix exclusion of annotated tags
867  Will merge to 'master'.
870 * mm/log-branch-desc-plug-leak (2014-08-07) 1 commit
871   (merged to 'next' on 2014-08-29 at 3580add)
872  + builtin/log.c: fix minor memory leak
874  Will merge to 'master'.
877 * ta/config-set-1 (2014-08-07) 8 commits
878  - add tests for `git_config_get_string_const()`
879  - add a test for semantic errors in config files
880  - rewrite git_config() to use the config-set API
881  - config: add `git_die_config()` to the config-set API
882  - change `git_config()` return value to void
883  - add line number and file name info to `config_set`
884  - config.c: fix accuracy of line number in errors
885  - config.c: mark error and warnings strings for translation
886  (this branch is used by ta/config-set-2.)
888  Will merge to 'next'.
891 * ta/config-set-2 (2014-08-13) 15 commits
892  - builtin/apply.c: replace `git_config()` with `git_config_get_string_const()`
893  - merge-recursive.c: replace `git_config()` with `git_config_get_int()`
894  - ll-merge.c: refactor `read_merge_config()` to use `git_config_string()`
895  - fast-import.c: replace `git_config()` with `git_config_get_*()` family
896  - branch.c: replace `git_config()` with `git_config_get_string()
897  - alias.c: replace `git_config()` with `git_config_get_string()`
898  - imap-send.c: replace `git_config()` with `git_config_get_*()` family
899  - pager.c: replace `git_config()` with `git_config_get_value()`
900  - builtin/gc.c: replace `git_config()` with `git_config_get_*()` family
901  - rerere.c: replace `git_config()` with `git_config_get_*()` family
902  - fetchpack.c: replace `git_config()` with `git_config_get_*()` family
903  - archive.c: replace `git_config()` with `git_config_get_bool()` family
904  - read-cache.c: replace `git_config()` with `git_config_get_*()` family
905  - http-backend.c: replace `git_config()` with `git_config_get_bool()` family
906  - daemon.c: replace `git_config()` with `git_config_get_bool()` family
907  (this branch uses ta/config-set-1.)
909  Will merge to 'next'.
912 * jk/stash-list-p (2014-08-07) 1 commit
913   (merged to 'next' on 2014-08-29 at db94527)
914  + stash: default listing to working-tree diff
916  Teach "git stash list -p" to show the difference between the base
917  commit version and the working tree version, which is in line with
918  what "git show" gives.
920  Will merge to 'master'.
923 * rs/ref-transaction-multi (2014-08-27) 6 commits
924  - ### rs/ref-transaction-multi
925  - refs.c: make the *_packed_refs functions static
926  - refs.c: make repack_without_refs static
927  - remote.c: use a transaction for deleting refs
928  - refs.c: write updates to packed refs when a transaction has more than one ref
929  - refs.c: move reflog updates into its own function
930  (this branch uses rs/ref-transaction, rs/ref-transaction-1, rs/ref-transaction-reflog and rs/ref-transaction-rename.)
932  Follow-up on rs/ref-transaction series to use the packed-ref to
933  achieve atomicity when multiple refs are involved.
935  No more nitpicks and better design suggestions?
938 * rs/ref-transaction-rename (2014-08-27) 6 commits
939  - ### rs/ref-transaction-rename
940  - refs.c: rollback the lockfile before we die() in repack_without_refs
941  - refs.c: update rename_ref to use a transaction
942  - refs.c: use packed refs when deleting refs during a transaction
943  - refs.c: return error instead of dying when locking fails during transaction
944  - refs.c: allow passing raw git_committer_info as email to _update_reflog
945  (this branch is used by rs/ref-transaction-multi; uses rs/ref-transaction, rs/ref-transaction-1 and rs/ref-transaction-reflog.)
947  Follow-up on rs/ref-transaction series to make renaming a ref
948  transactional (i.e. "delete old and create new" should not leave
949  an in-between state behind when it fails).
951  No more nitpicks and better design suggestions?
954 * rs/ref-transaction-reflog (2014-08-27) 16 commits
955  - ### rs/ref-transaction-reflog
956  - refs.c: allow deleting refs with a broken sha1
957  - refs.c: remove lock_any_ref_for_update
958  - refs.c: make unlock_ref/close_ref/commit_ref static
959  - refs.c: rename log_ref_setup to create_reflog
960  - reflog.c: use a reflog transaction when writing during expire
961  - refs.c: allow multiple reflog updates during a single transaction
962  - refs.c: only write reflog update if msg is non-NULL
963  - refs.c: add a flag to allow reflog updates to truncate the log
964  - refs.c: add a transaction function to append a reflog entry
965  - lockfile.c: make hold_lock_file_for_append preserve meaningful errno
966  - refs.c: add a function to append a reflog entry to a fd
967  - refs.c: add a new update_type field to ref_update
968  - refs.c: rename the transaction functions
969  - refs.c: make ref_transaction_delete a wrapper for ref_transaction_update
970  - refs.c: make ref_transaction_create a wrapper to ref_transaction_update
971  (this branch is used by rs/ref-transaction-multi and rs/ref-transaction-rename; uses rs/ref-transaction and rs/ref-transaction-1.)
973  Cover updates to reflog with the same transaction mechanism as used
974  for reflog manipulations.
976  No more nitpicks and better design suggestions?
979 * jc/not-mingw-cygwin (2014-07-21) 2 commits
980   (merged to 'next' on 2014-08-29 at 0d00bb7)
981  + test prerequisites: enumerate with commas
982  + test prerequisites: eradicate NOT_FOO
984  We have been using NOT_{MINGW,CYGWIN} test prerequisites long
985  before Peff invented support for negated prerequisites e.g. !MINGW
986  and we still add more uses of the former.  Convert them to the
987  latter to avoid confusion.
989  Will merge to 'master'.
992 * rs/ref-transaction-1 (2014-08-27) 20 commits
993  - refs.c: make delete_ref use a transaction
994  - refs.c: make prune_ref use a transaction to delete the ref
995  - refs.c: remove lock_ref_sha1
996  - refs.c: remove the update_ref_write function
997  - refs.c: remove the update_ref_lock function
998  - refs.c: make lock_ref_sha1 static
999  - walker.c: use ref transaction for ref updates
1000  - fast-import.c: use a ref transaction when dumping tags
1001  - receive-pack.c: use a reference transaction for updating the refs
1002  - refs.c: change update_ref to use a transaction
1003  - branch.c: use ref transaction for all ref updates
1004  - fast-import.c: change update_branch to use ref transactions
1005  - sequencer.c: use ref transactions for all ref updates
1006  - commit.c: use ref transactions for updates
1007  - replace.c: use the ref transaction functions for updates
1008  - tag.c: use ref transactions when doing updates
1009  - refs.c: add transaction.status and track OPEN/CLOSED
1010  - refs.c: make ref_transaction_begin take an err argument
1011  - refs.c: update ref_transaction_delete to check for error and return status
1012  - refs.c: change ref_transaction_create to do error checking and return status
1013  (this branch is used by rs/ref-transaction, rs/ref-transaction-multi, rs/ref-transaction-reflog and rs/ref-transaction-rename.)
1015  The second batch of the transactional ref update series.
1016  A hopefully final reroll exists but haven't picked it up yet.
1019 * dt/cache-tree-repair (2014-09-02) 5 commits
1020  - cache-tree: propagate invalidation up when punting
1021   (merged to 'next' on 2014-08-26 at 6faccdb)
1022  + cache-tree: Write updated cache-tree after commit
1023  + cache-tree: subdirectory tests
1024  + test-dump-cache-tree: invalid trees are not errors
1025  + cache-tree: create/update cache-tree on checkout
1027  Originally merged to 'next' on 2014-07-21
1029  Add a few more places in "commit" and "checkout" that make sure
1030  that the cache-tree is fully populated in the index.
1032  The tip one is a proposed fix for $gmane/256285, but it is not
1033  quite right yet.
1036 * hv/submodule-config (2014-06-30) 4 commits
1037  - do not die on error of parsing fetchrecursesubmodules option
1038  - use new config API for worktree configurations of submodules
1039  - extract functions for submodule config set and lookup
1040  - implement submodule config cache for lookup of submodule names
1042  Kicked back to 'pu'.
1045 * rs/ref-transaction (2014-08-27) 14 commits
1046  - ### rs/ref-transaction
1047  - refs.c: fix handling of badly named refs
1048  - refs.c: make write_ref_sha1 static
1049  - fetch.c: change s_update_ref to use a ref transaction
1050  - refs.c: propagate any errno==ENOTDIR from _commit back to the callers
1051  - refs.c: pass a skip list to name_conflict_fn
1052  - refs.c: call lock_ref_sha1_basic directly from commit
1053  - refs.c: move the check for valid refname to lock_ref_sha1_basic
1054  - refs.c: pass NULL as *flags to read_ref_full
1055  - refs.c: pass the ref log message to _create/delete/update instead of _commit
1056  - refs.c: add an err argument to delete_ref_loose
1057  - wrapper.c: add a new function unlink_or_msg
1058  - wrapper.c: simplify warn_if_unremovable
1059  - ### rs/ref-transaction-1
1060  (this branch is used by rs/ref-transaction-multi, rs/ref-transaction-reflog and rs/ref-transaction-rename; uses rs/ref-transaction-1.)
1063 * jc/test-lazy-prereq (2014-06-13) 1 commit
1064  - tests: drop GIT_*_TIMING_TESTS environment variable support
1066  Test-script clean-up.
1068  Will hold.
1071 * mt/patch-id-stable (2014-06-10) 1 commit
1072  - patch-id: change default to stable
1074  Teaches "git patch-id" to compute the patch ID that does not change
1075  when the files in a single patch is reordered. As this new algorithm
1076  is backward incompatible, the last bit to flip it to be the default
1077  is left out of 'master' for now.
1079  Will hold.