What's cooking (2014/06 #06)
[git.git] / whats-cooking.txt
blob43938236f8a06ac173e4f12e4abab20ba8d1f8be
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Jun 2014, #06; Thu, 26)
4 X-master-at: ea0e524ebd60f87546a9998e447d307d3f51a3e3
5 X-next-at: 2fd69c3c8efbb671c0151b34525ef25f1f782297
7 What's cooking in git.git (Jun 2014, #06; Thu, 26)
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 Fixes accumulated on the 'master' front made into 2.0.1.  The topics
15 in flight continue to separate into two distinct layers (i.e.
16 stalled-and-need-to-be-rerolld vs sure-to-graduate-soon).
18 Four mingw series are still in limbo--are they in good enough shape
19 for Windows folks who wanted to upstream them?
21 You can find the changes described here in the integration branches
22 of the repositories listed at
24     http://git-blame.blogspot.com/p/git-public-repositories.html
26 --------------------------------------------------
27 [Graduated to "master"]
29 * ep/avoid-test-a-o (2014-06-19) 20 commits
30   (merged to 'next' on 2014-06-20 at c47322b)
31  + git-submodule.sh: avoid "echo" path-like values
32  + git-submodule.sh: avoid "test <cond> -a/-o <cond>"
33  + t/test-lib-functions.sh: avoid "test <cond> -a/-o <cond>"
34  + t/t9814-git-p4-rename.sh: avoid "test <cond> -a/-o <cond>"
35  + t/t5538-push-shallow.sh: avoid "test <cond> -a/-o <cond>"
36  + t/t5403-post-checkout-hook.sh: avoid "test <cond> -a/-o <cond>"
37  + t/t5000-tar-tree.sh: avoid "test <cond> -a/-o <cond>"
38  + t/t4102-apply-rename.sh: avoid "test <cond> -a/-o <cond>"
39  + t/t0026-eol-config.sh: avoid "test <cond> -a/-o <cond>"
40  + t/t0025-crlf-auto.sh: avoid "test <cond> -a/-o <cond>"
41  + t/lib-httpd.sh: avoid "test <cond> -a/-o <cond>"
42  + git-rebase--interactive.sh: avoid "test <cond> -a/-o <cond>"
43  + git-mergetool.sh: avoid "test <cond> -a/-o <cond>"
44  + git-bisect.sh: avoid "test <cond> -a/-o <cond>"
45  + contrib/examples/git-resolve.sh: avoid "test <cond> -a/-o <cond>"
46  + contrib/examples/git-repack.sh: avoid "test <cond> -a/-o <cond>"
47  + contrib/examples/git-merge.sh: avoid "test <cond> -a/-o <cond>"
48  + contrib/examples/git-commit.sh: avoid "test <cond> -a/-o <cond>"
49  + contrib/examples/git-clone.sh: avoid "test <cond> -a/-o <cond>"
50  + check_bindir: avoid "test <cond> -a/-o <cond>"
52  Update tests and scripts to avoid "test ... -a ...", which is often
53  more error-prone than "test ... && test ...".
55  Squashed misconversion fix-up into git-submodule.sh updates.
58 * fr/sequencer-fail-with-not-one-upon-no-ff (2014-06-09) 1 commit
59   (merged to 'next' on 2014-06-16 at 29734cc)
60  + sequencer: signal failed ff as an aborted, not a conflicted merge
63 * jk/repack-pack-keep-objects (2014-06-10) 3 commits
64   (merged to 'next' on 2014-06-16 at 89716c9)
65  + repack: s/write_bitmap/&s/ in code
66  + repack: respect pack.writebitmaps
67  + repack: do not accidentally pack kept objects by default
68  (this branch is used by jk/repack-pack-writebitmaps-config.)
70  Recent updates to "git repack" started to duplicate objects that
71  are in packfiles marked with .keep flag into the new packfile by
72  mistake.
75 * jk/repack-pack-writebitmaps-config (2014-06-12) 4 commits
76   (merged to 'next' on 2014-06-16 at 777005d)
77  + t7700: drop explicit --no-pack-kept-objects from .keep test
78  + repack: introduce repack.writeBitmaps config option
79  + repack: simplify handling of --write-bitmap-index
80  + pack-objects: stop respecting pack.writebitmaps
81  (this branch uses jk/repack-pack-keep-objects.)
84 * jm/dedup-name-compare (2014-06-20) 2 commits
85  + cleanup duplicate name_compare() functions
86  + name-hash.c: replace cache_name_compare() with memcmp(3)
89 * mc/doc-submodule-sync-recurse (2014-06-13) 1 commit
90   (merged to 'next' on 2014-06-20 at 04815e3)
91  + submodule: document "sync --recursive"
94 * mc/git-p4-prepare-p4-only (2014-06-13) 1 commit
95   (merged to 'next' on 2014-06-16 at 3c05e19)
96  + git-p4: fix submit in non --prepare-p4-only mode
99 * nd/init-restore-env (2014-06-10) 1 commit
100   (merged to 'next' on 2014-06-16 at ecbbfca)
101  + git potty: restore environments after alias expansion
104 * pb/trim-trailing-spaces (2014-06-13) 1 commit
105   (merged to 'next' on 2014-06-20 at 6985153)
106  + t0008: do not depend on 'echo' handling backslashes specially
109 * rs/blame-refactor (2014-06-13) 2 commits
110   (merged to 'next' on 2014-06-20 at ddaa722)
111  + blame: simplify prepare_lines()
112  + blame: factor out get_next_line()
115 * sp/complete-ext-alias (2014-06-13) 1 commit
116   (merged to 'next' on 2014-06-16 at 399679e)
117  + completion: handle '!f() { ... }; f' and "!sh -c '...' -" aliases
120 * tb/unicode-7.0-display-width (2014-06-18) 1 commit
121   (merged to 'next' on 2014-06-20 at 111b246)
122  + Update of unicode_width.h to Unicode Version 7.0
125 * ye/doc-http-proto (2014-06-16) 1 commit
126   (merged to 'next' on 2014-06-20 at 24f347d)
127  + http-protocol.txt: Basic Auth is defined in RFC 2617, not RFC 2616
129 --------------------------------------------------
130 [New Topics]
132 * jc/fix-clone-single-starting-at-a-tag (2014-06-23) 1 commit
133  - builtin/clone.c: detect a clone starting at a tag correctly
135  Will merge to 'next'.
137 --------------------------------------------------
138 [Stalled]
140 * cc/replace-graft (2014-06-09) 5 commits
141  - DONTMERGE: wise to wait for peff's commit->buffer length series
142  - contrib: add convert-grafts-to-replace-refs.sh
143  - Documentation: replace: add --graft option
144  - replace: add test for --graft
145  - replace: add --graft option
147  "git replace" learned a "--graft" option to rewrite parents of a
148  commit.
150  Expecting a reroll on top of jk/commit-buffer-length.
153 * ab/add-interactive-show-diff-func-name (2014-05-12) 2 commits
154  - SQUASH??? git-add--interactive: Preserve diff heading when splitting hunks
155  - git-add--interactive: Preserve diff heading when splitting hunks
157  Waiting for a reroll.
160 * jn/gitweb-utf8-in-links (2014-05-27) 1 commit
161  - gitweb: Harden UTF-8 handling in generated links
163  $gmane/250758?
166 * rh/prompt-tests (2014-06-05) 11 commits
167  - t9904: new __git_ps1 tests for Zsh
168  - test-lib: make it possible to override how test code is eval'd
169  - lib-prompt-tests.sh: add variable for string that encodes percent in PS1
170  - lib-prompt-tests.sh: put all tests inside a function
171  - t9903: move prompt tests to a new lib-prompt-tests.sh file
172  - t9903: move PS1 color code variable definitions to lib-bash.sh
173  - t9903: include "Bash" in test names via new $shellname var
174  - t9903: run pc mode tests again with PS1 expansion disabled
175  - t9903: move test name prefix to a separate variable
176  - t9903: put the Bash pc mode prompt test cases in a function
177  - t9903: remove Zsh test from the suite of Bash prompt tests
179  Expecting a reroll to limit the damage to test_eval_; also reported
180  to be broken with older zsh that are still in the field ($gmane/251231).
183 * ss/userdiff-update-csharp-java (2014-06-02) 2 commits
184  - userdiff: support Java try keyword
185  - userdiff: support C# async methods and correct C# keywords
187  Reviews sent; waiting for a response.
190 * cc/interpret-trailers (2014-05-28) 11 commits
191  - Documentation: add documentation for 'git interpret-trailers'
192  - trailer: add tests for commands in config file
193  - trailer: execute command from 'trailer.<name>.command'
194  - trailer: add tests for "git interpret-trailers"
195  - trailer: add interpret-trailers command
196  - trailer: put all the processing together and print
197  - trailer: parse trailers from file or stdin
198  - trailer: process command line trailer arguments
199  - trailer: read and process config information
200  - trailer: process trailers from input message and arguments
201  - trailer: add data structures and basic functions
203  A new filter to programatically edit the tail end of the commit log
204  messages.
206  What is the status of this one?  I think I saw reviews by Michael
207  but after that I do not recall seeing any updates.
210 * mh/lockfile (2014-04-15) 25 commits
211  - trim_last_path_elm(): replace last_path_elm()
212  - resolve_symlink(): take a strbuf parameter
213  - resolve_symlink(): use a strbuf for internal scratch space
214  - change lock_file::filename into a strbuf
215  - commit_lock_file(): use a strbuf to manage temporary space
216  - try_merge_strategy(): use a statically-allocated lock_file object
217  - try_merge_strategy(): remove redundant lock_file allocation
218  - struct lock_file: declare some fields volatile
219  - lockfile: avoid transitory invalid states
220  - commit_lock_file(): die() if called for unlocked lockfile object
221  - commit_lock_file(): inline temporary variable
222  - remove_lock_file(): call rollback_lock_file()
223  - lock_file(): exit early if lockfile cannot be opened
224  - write_packed_entry_fn(): convert cb_data into a (const int *)
225  - prepare_index(): declare return value to be (const char *)
226  - delete_ref_loose(): don't muck around in the lock_file's filename
227  - cache.h: define constants LOCK_SUFFIX and LOCK_SUFFIX_LEN
228  - lockfile.c: document the various states of lock_file objects
229  - lock_file(): always add lock_file object to lock_file_list
230  - hold_lock_file_for_append(): release lock on errors
231  - lockfile: unlock file if lockfile permissions cannot be adjusted
232  - rollback_lock_file(): set fd to -1
233  - rollback_lock_file(): do not clear filename redundantly
234  - api-lockfile: expand the documentation
235  - unable_to_lock_die(): rename function from unable_to_lock_index_die()
237  Refactor and fix corner-case bugs in the lockfile API, all looked
238  sensible.
240  Expecting a reroll.
243 * bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
244  - git-rebase: print name of rev when using shorthand
246  Teach "git rebase -" to report the concrete name of the branch
247  (i.e. the previous one).
249  But it stops short and does not do the same for "git rebase @{-1}".
250  Expecting a reroll.
253 * tr/merge-recursive-index-only (2014-02-05) 3 commits
254  - merge-recursive: -Xindex-only to leave worktree unchanged
255  - merge-recursive: internal flag to avoid touching the worktree
256  - merge-recursive: remove dead conditional in update_stages()
257  (this branch is used by tr/remerge-diff.)
260 * tr/remerge-diff (2014-02-26) 5 commits
261  . log --remerge-diff: show what the conflict resolution changed
262  . name-hash: allow dir hashing even when !ignore_case
263  . merge-recursive: allow storing conflict hunks in index
264  . revision: fold all merge diff variants into an enum merge_diff_mode
265  . combine-diff: do not pass revs->dense_combined_merges redundantly
266  (this branch uses tr/merge-recursive-index-only.)
268  "log -p" output learns a new way to let users inspect a merge
269  commit by showing the differences between the automerged result
270  with conflicts the person who recorded the merge would have seen
271  and the final conflict resolution that was recorded in the merge.
273  Needs to be rebased, now kb/fast-hashmap topic is in.
276 * jk/makefile (2014-02-05) 16 commits
277  . FIXUP
278  . move LESS/LV pager environment to Makefile
279  . Makefile: teach scripts to include make variables
280  . FIXUP
281  . Makefile: auto-build C strings from make variables
282  . Makefile: drop *_SQ variables
283  . FIXUP
284  . Makefile: add c-quote helper function
285  . Makefile: introduce sq function for shell-quoting
286  . Makefile: always create files via make-var
287  . Makefile: store GIT-* sentinel files in MAKE/
288  . Makefile: prefer printf to echo for GIT-*
289  . Makefile: use tempfile/mv strategy for GIT-*
290  . Makefile: introduce make-var helper function
291  . Makefile: fix git-instaweb dependency on gitweb
292  . Makefile: drop USE_GETTEXT_SCHEME from GIT-CFLAGS
294  Simplify the Makefile rules and macros that exist primarily for
295  quoting purposes, and make it easier to robustly express the
296  dependency rules.
298  Expecting a reroll.
301 * po/everyday-doc (2014-01-27) 1 commit
302  - Make 'git help everyday' work
304  This may make the said command to emit something, but the source is
305  not meant to be formatted into a manual pages to begin with, and
306  also its contents are a bit stale.  It may be a good first step in
307  the right direction, but needs more work to at least get the
308  mark-up right before public consumption.
310  Will hold.
313 * jk/branch-at-publish-rebased (2014-01-17) 5 commits
314  . t1507 (rev-parse-upstream): fix typo in test title
315  . implement @{publish} shorthand
316  . branch_get: provide per-branch pushremote pointers
317  . branch_get: return early on error
318  . sha1_name: refactor upstream_mark
320  Give an easier access to the tracking branches from "other" side in
321  a triangular workflow by introducing B@{publish} that works in a
322  similar way to how B@{upstream} does.
324  Meant to be used as a basis for whatever Ram wants to build on.
326  Ejected from 'pu' to unclutter.
329 * fc/publish-vs-upstream (2014-04-21) 8 commits
330  . sha1_name: add support for @{publish} marks
331  . sha1_name: simplify track finding
332  . sha1_name: cleanup interpret_branch_name()
333  . branch: display publish branch
334  . push: add --set-publish option
335  . branch: add --set-publish-to option
336  . Add concept of 'publish' branch
337  . t5516 (fetch-push): fix test restoration
339  Add branch@{publish}; it seems that this is somewhat different from
340  Ram and Peff started working on.  At least the tip needs to be
341  rerolled not to squat on @{p} which @{push} and possibly @{pull}
342  may want to share.
345 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
346  - merge: drop unused arg from abort_commit method signature
347  - merge: make prepare_to_commit responsible for write_merge_state
348  - t7505: ensure cleanup after hook blocks merge
349  - t7505: add missing &&
351  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
352  run during "git merge".  The log message stresses too much on one
353  hook, prepare-commit-msg, but it would equally apply to other hooks
354  like post-merge, I think.
356  Waiting for a reroll.
359 * jc/graph-post-root-gap (2013-12-30) 3 commits
360  - WIP: document what we want at the end
361  - graph: remove unused code a bit
362  - graph: stuff the current commit into graph->columns[]
364  This was primarily a RFH ($gmane/239580).
367 * np/pack-v4 (2013-09-18) 90 commits
368  . packv4-parse.c: add tree offset caching
369  . t1050: replace one instance of show-index with verify-pack
370  . index-pack, pack-objects: allow creating .idx v2 with .pack v4
371  . unpack-objects: decode v4 trees
372  . unpack-objects: allow to save processed bytes to a buffer
373  - ...
375  Nico and Duy advancing the eternal vaporware pack-v4.  This is here
376  primarily for wider distribution of the preview edition.
378  Needs to be rebased, now the pack-bitmap series is in.
381 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
382  - perf-lib: add test_perf_cleanup target
383  - perf-lib: split starting the test from the execution
385  Add test_perf_cleanup shell function to the perf suite, that allows
386  the script writers to define a test with a clean-up action.
388  Will hold.
391 * jc/show-branch (2014-03-24) 5 commits
392  - show-branch: use commit slab to represent bitflags of arbitrary width
393  - show-branch.c: remove "all_mask"
394  - show-branch.c: abstract out "flags" operation
395  - show-branch.c: lift all_mask/all_revs to a global static
396  - show-branch.c: update comment style
398  Waiting for the final step to lift the hard-limit before sending it out.
401 * jh/submodule-tests (2014-04-17) 1 commit
402  - t7410: 210 tests for various 'git submodule update' scenarios
404  More or less abandoned.  Will drop.
407 * nd/multiple-work-trees (2014-03-25) 28 commits
408  . count-objects: report unused files in $GIT_DIR/repos/...
409  . gc: support prune --repos
410  . gc: style change -- no SP before closing bracket
411  . prune: strategies for linked checkouts
412  . checkout: detach if the branch is already checked out elsewhere
413  . checkout: clean up half-prepared directories in --to mode
414  . checkout: support checking out into a new working directory
415  . use new wrapper write_file() for simple file writing
416  . wrapper.c: wrapper to open a file, fprintf then close
417  . setup.c: support multi-checkout repo setup
418  . setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
419  . setup.c: convert check_repository_format_gently to use strbuf
420  . setup.c: detect $GIT_COMMON_DIR in is_git_directory()
421  . setup.c: convert is_git_directory() to use strbuf
422  . git-stash: avoid hardcoding $GIT_DIR/logs/....
423  . *.sh: avoid hardcoding $GIT_DIR/hooks/...
424  . git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
425  . $GIT_COMMON_DIR: a new environment variable
426  . commit: use SEQ_DIR instead of hardcoding "sequencer"
427  . fast-import: use git_path() for accessing .git dir instead of get_git_dir()
428  . reflog: avoid constructing .lock path with git_path
429  . *.sh: respect $GIT_INDEX_FILE
430  . git_path(): be aware of file relocation in $GIT_DIR
431  . path.c: group git_path(), git_pathdup() and strbuf_git_path() together
432  . path.c: rename vsnpath() to do_git_path()
433  . git_snpath(): retire and replace with strbuf_git_path()
434  . path.c: make get_pathname() call sites return const char *
435  . path.c: make get_pathname() return strbuf instead of static buffer
437  A replacement for contrib/workdir/git-new-workdir that does not
438  rely on symbolic links and make sharing of objects and refs safer
439  by making the borrowee and borrowers aware of each other.
441 --------------------------------------------------
442 [Cooking]
444 * mg/verify-commit (2014-06-23) 5 commits
445  - t7510: test verify-commit
446  - t7510: exit for loop with test result
447  - verify-commit: scriptable commit signature verification
448  - gpg-interface: provide access to the payload
449  - gpg-interface: provide clear helper for struct signature_check
451  Add 'verify-commit' to be used in a way similar to 'verify-tag' is
452  used.  Further work on verifying the mergetags might be needed.
454  Will merge to 'next'.
457 * dt/refs-check-refname-component-sse (2014-06-18) 1 commit
458   (merged to 'next' on 2014-06-20 at d286027)
459  + refs.c: SSE2 optimizations for check_refname_component
461  Further micro-optimization of a leaf-function.
463  Will merge to 'master'.
466 * ye/http-extract-charset (2014-06-17) 1 commit
467   (merged to 'next' on 2014-06-20 at 9492bae)
468  + http: fix charset detection of extract_content_type()
470  Will merge to 'master'.
473 * jk/skip-prefix (2014-06-20) 18 commits
474   (merged to 'next' on 2014-06-23 at cd387a6)
475  + http-push: refactor parsing of remote object names
476  + imap-send: use skip_prefix instead of using magic numbers
477  + use skip_prefix to avoid repeated calculations
478  + git: avoid magic number with skip_prefix
479  + fetch-pack: refactor parsing in get_ack
480  + fast-import: refactor parsing of spaces
481  + stat_opt: check extra strlen call
482  + daemon: use skip_prefix to avoid magic numbers
483  + fast-import: use skip_prefix for parsing input
484  + use skip_prefix to avoid repeating strings
485  + use skip_prefix to avoid magic numbers
486  + transport-helper: avoid reading past end-of-string
487  + fast-import: fix read of uninitialized argv memory
488  + apply: use skip_prefix instead of raw addition
489  + refactor skip_prefix to return a boolean
490  + avoid using skip_prefix as a boolean
491  + daemon: mark some strings as const
492  + parse_diff_color_slot: drop ofs parameter
494  Will merge to 'master'.
497 * jk/xstrfmt (2014-06-25) 11 commits
498   (merged to 'next' on 2014-06-25 at 5031d4e)
499  + setup_git_env(): introduce git_path_from_env() helper
500   (merged to 'next' on 2014-06-23 at 64f2558)
501  + unique_path: fix unlikely heap overflow
502  + walker_fetch: fix minor memory leak
503  + merge: use argv_array when spawning merge strategy
504  + sequencer: use argv_array_pushf
505  + setup_git_env: use git_pathdup instead of xmalloc + sprintf
506  + use xstrfmt to replace xmalloc + strcpy/strcat
507  + use xstrfmt to replace xmalloc + sprintf
508  + use xstrdup instead of xmalloc + strcpy
509  + use xstrfmt in favor of manual size calculations
510  + strbuf: add xstrfmt helper
512  Will merge to 'master'.
515 * kb/perf-trace (2014-06-20) 11 commits
516  - git: add performance tracing for git's main() function to debug scripts
517  - trace: add trace_performance facility to debug performance issues
518  - trace: add high resolution timer function to debug performance issues
519  - trace: add 'file:line' to all trace output
520  - trace: move code around, in preparation to file:line output
521  - trace: add current timestamp to all trace output
522  - trace: add infrastructure to augment trace output with additional info
523  - trace: factor out printing to the trace file
524  - trace: remove redundant printf format attribute
525  - trace: consistently name the format parameter
526  - trace: move trace declarations from cache.h to new trace.h
528  Expecting a reroll.
531 * hv/submodule-config (2014-06-13) 6 commits
532  - SQUASH compilation fix
533  - do not die on error of parsing fetchrecursesubmodules option
534  - use new config API for worktree configurations of submodules
535  - extract functions for submodule config set and lookup
536  - implement submodule config cache for lookup of submodule names
537  - hashmap: add enum for hashmap free_entries option
539  Expecting a reroll.
542 * bc/fix-rebase-merge-skip (2014-06-16) 1 commit
543   (merged to 'next' on 2014-06-20 at 01f81f5)
544  + rebase--merge: fix --skip with two conflicts in a row
546  "git rebase --skip" did not work well when it stopped due to a
547  conflict twice in a row.
549  Will merge to 'master'.
552 * jl/submodule-tests (2014-06-20) 15 commits
553  - revert: add t3513 for submodule updates
554  - stash: add t3906 for submodule updates
555  - am: add t4255 for submodule updates
556  - cherry-pick: add t3512 for submodule updates
557  - pull: add t5572 for submodule updates
558  - rebase: add t3426 for submodule updates
559  - merge: add t7613 for submodule updates
560  - bisect: add t6041 for submodule updates
561  - reset: add t7112 for submodule updates
562  - read-tree: add t1013 for submodule updates
563  - apply: add t4137 for submodule updates
564  - checkout: call the new submodule update test framework
565  - SQUASH???
566  - submodules: Add the lib-submodule-update.sh test library
567  - test-lib: add test_dir_is_empty()
569  Expecting a reroll.
572 * po/error-message-style (2014-06-16) 1 commit
573  - doc: state coding guideline for error message punctuation
575  Expecting a reroll.
578 * rs/ref-transaction (2014-06-20) 48 commits
579  - refs.c: make write_ref_sha1 static
580  - fetch.c: change s_update_ref to use a ref transaction
581  - refs.c: propagate any errno==ENOTDIR from _commit back to the callers
582  - refs.c: pass a skip list to name_conflict_fn
583  - refs.c: call lock_ref_sha1_basic directly from commit
584  - refs.c: move the check for valid refname to lock_ref_sha1_basic
585  - refs.c: pass NULL as *flags to read_ref_full
586  - refs.c: pass the ref log message to _create/delete/update instead of _commit
587  - refs.c: add an err argument to delete_ref_loose
588  - refs.c: make delete_ref use a transaction
589  - refs.c: make prune_ref use a transaction to delete the ref
590  - refs.c: remove lock_ref_sha1
591  - refs.c: remove the update_ref_write function
592  - refs.c: remove the update_ref_lock function
593  - refs.c: make lock_ref_sha1 static
594  - walker.c: use ref transaction for ref updates
595  - fast-import.c: use a ref transaction when dumping tags
596  - receive-pack.c: use a reference transaction for updating the refs
597  - refs.c: change update_ref to use a transaction
598  - branch.c: use ref transaction for all ref updates
599  - fast-import.c: change update_branch to use ref transactions
600  - sequencer.c: use ref transactions for all ref updates
601  - commit.c: use ref transactions for updates
602  - replace.c: use the ref transaction functions for updates
603  - tag.c: use ref transactions when doing updates
604  - refs.c: add transaction.status and track OPEN/CLOSED/ERROR
605  - refs.c: make ref_transaction_begin take an err argument
606  - refs.c: update ref_transaction_delete to check for error and return status
607  - refs.c: change ref_transaction_create to do error checking and return status
608  - refs.c: change ref_transaction_update() to do error checking and return status
609  - refs.c: remove the onerr argument to ref_transaction_commit
610  - update-ref: use err argument to get error from ref_transaction_commit
611  - refs.c: make update_ref_write update a strbuf on failure
612  - refs.c: make ref_update_reject_duplicates take a strbuf argument for errors
613  - refs.c: log_ref_write should try to return meaningful errno
614  - refs.c: make resolve_ref_unsafe set errno to something meaningful on error
615  - refs.c: commit_packed_refs to return a meaningful errno on failure
616  - refs.c: make remove_empty_directories always set errno to something sane
617  - refs.c: verify_lock should set errno to something meaningful
618  - refs.c: make sure log_ref_setup returns a meaningful errno
619  - refs.c: add an err argument to repack_without_refs
620  - lockfile.c: make lock_file return a meaningful errno on failurei
621  - lockfile.c: add a new public function unable_to_lock_message
622  - refs.c: add a strbuf argument to ref_transaction_commit for error logging
623  - refs.c: allow passing NULL to ref_transaction_free
624  - refs.c: constify the sha arguments for ref_transaction_create|delete|update
625  - refs.c: ref_transaction_commit should not free the transaction
626  - refs.c: remove ref_transaction_rollback
628  Updated in response to review comments from Michael.
630  Portability workaround may be needed on top ($gmane/252496).
631  Will merge to 'next'.
635 * jk/pretty-G-format-fixes (2014-06-25) 6 commits
636   (merged to 'next' on 2014-06-26 at 7138407)
637  + move "%G" format test from t7510 to t6006
638   (merged to 'next' on 2014-06-20 at f504bbc)
639  + pretty: avoid reading past end-of-string with "%G"
640  + t7510: check %G* pretty-format output
641  + t7510: test a commit signed by an unknown key
642  + t7510: use consistent &&-chains in loop
643  + t7510: stop referring to master in later tests
645  Will merge to 'master'.
648 * nd/split-index (2014-06-13) 32 commits
649  - t1700: new tests for split-index mode
650  - t2104: make sure split index mode is off for the version test
651  - read-cache: force split index mode with GIT_TEST_SPLIT_INDEX
652  - read-tree: note about dropping split-index mode or index version
653  - read-tree: force split-index mode off on --index-output
654  - rev-parse: add --shared-index-path to get shared index path
655  - update-index --split-index: do not split if $GIT_DIR is read only
656  - update-index: new options to enable/disable split index mode
657  - split-index: strip pathname of on-disk replaced entries
658  - split-index: do not invalidate cache-tree at read time
659  - split-index: the reading part
660  - split-index: the writing part
661  - read-cache: mark updated entries for split index
662  - read-cache: save deleted entries in split index
663  - read-cache: mark new entries for split index
664  - read-cache: split-index mode
665  - read-cache: save index SHA-1 after reading
666  - entry.c: update cache_changed if refresh_cache is set in checkout_entry()
667  - cache-tree: mark istate->cache_changed on prime_cache_tree()
668  - cache-tree: mark istate->cache_changed on cache tree update
669  - cache-tree: mark istate->cache_changed on cache tree invalidation
670  - unpack-trees: be specific what part of the index has changed
671  - resolve-undo: be specific what part of the index has changed
672  - update-index: be specific what part of the index has changed
673  - read-cache: be specific what part of the index has changed
674  - read-cache: be strict about "changed" in remove_marked_cache_entries()
675  - read-cache: store in-memory flags in the first 12 bits of ce_flags
676  - read-cache: relocate and unexport commit_locked_index()
677  - read-cache: new API write_locked_index instead of write_index/write_cache
678  - sequencer: do not update/refresh index if the lock cannot be held
679  - ewah: delete unused ewah_read_mmap_native declaration
680  - ewah: fix constness of ewah_read_mmap
682  What's the doneness of this one?
685 * jc/test-lazy-prereq (2014-06-13) 1 commit
686  - tests: drop GIT_*_TIMING_TESTS environment variable support
688  Test-script clean-up.
690  Will hold.
693 * jk/commit-buffer-length (2014-06-13) 18 commits
694   (merged to 'next' on 2014-06-16 at b2d2d7b)
695  + reuse cached commit buffer when parsing signatures
696  + commit: record buffer length in cache
697  + commit: convert commit->buffer to a slab
698  + commit-slab: provide a static initializer
699  + use get_commit_buffer everywhere
700  + convert logmsg_reencode to get_commit_buffer
701  + use get_commit_buffer to avoid duplicate code
702  + use get_cached_commit_buffer where appropriate
703  + provide helpers to access the commit buffer
704  + provide a helper to set the commit buffer
705  + provide a helper to free commit buffer
706  + sequencer: use logmsg_reencode in get_message
707  + logmsg_reencode: return const buffer
708  + do not create "struct commit" with xcalloc
709  + commit: push commit_index update into alloc_commit_node
710  + alloc: include any-object allocations in alloc_report
711  + replace dangerous uses of strbuf_attach
712  + commit_tree: take a pointer/len pair rather than a const strbuf
714  Move "commit->buffer" out of the in-core commit object and keep
715  track of their lengths.  Use this to optimize the code paths to
716  validate GPG signatures in commit objects.
718  Will merge to 'master'.
721 * sk/mingw-unicode-spawn-args (2014-06-16) 6 commits
722  - Win32: Unicode arguments (incoming)
723  - Win32: Unicode arguments (outgoing)
724  - MinGW: disable CRT command line globbing
725  - Win32: fix potential multi-threading issue
726  - Win32: simplify internal mingw_spawn* APIs
727  - Win32: let mingw_execve() return an int
728  (this branch uses sk/mingw-main and sk/mingw-uni-console.)
730  Are Windows folks happy with all four mingw topics?
733 * sk/mingw-dirent (2014-06-09) 5 commits
734  - Win32 dirent: improve dirent implementation
735  - Win32 dirent: clarify #include directives
736  - Win32 dirent: change FILENAME_MAX to MAX_PATH
737  - Win32 dirent: remove unused dirent.d_reclen member
738  - Win32 dirent: remove unused dirent.d_ino member
740  Are Windows folks happy with all four mingw topics?
743 * sk/mingw-main (2014-06-10) 2 commits
744  - mingw: avoid const warning
745  - Win32: move main macro to a function
746  (this branch is used by sk/mingw-uni-console and sk/mingw-unicode-spawn-args.)
748  Are Windows folks happy with all four mingw topics?
751 * sk/mingw-uni-console (2014-06-16) 7 commits
752  - Win32: reliably detect console pipe handles
753  - Win32: fix broken pipe detection
754  - Win32: Thread-safe windows console output
755  - Win32: add Unicode conversion functions
756  - Win32: warn if the console font doesn't support Unicode
757  - Win32: detect console streams more reliably
758  - Win32: support Unicode console output
759  (this branch is used by sk/mingw-unicode-spawn-args; uses sk/mingw-main.)
761  Are Windows folks happy with all four mingw topics?
764 * mt/patch-id-stable (2014-06-10) 1 commit
765  - patch-id: change default to stable
767  Teaches "git patch-id" to compute the patch ID that does not change
768  when the files in a single patch is reordered. As this new algorithm
769  is backward incompatible, the last bit to flip it to be the default
770  is left out of 'master' for now.
772  Will hold.
774 --------------------------------------------------
775 [Discarded]
777 * jl/git-gui-show-added-submodule-changes (2014-04-15) 1 commit
778  . git-gui: show staged submodules regardless of ignore config
780  Merged to the upstream.
783 * jl/gitk-show-added-submodule-changes (2014-04-15) 1 commit
784  . gitk: show staged submodules regardless of ignore config
786  Merged to the upstream.