What's cooking (2014/06 #04)
[git/jrn.git] / whats-cooking.txt
blobf9e367a993e9c3645b26f0bf740d143132618f6c
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Jun 2014, #04; Tue, 17)
4 X-master-at: cb682f8cfe63ecd0da08a526f404d295e51e3ab1
5 X-next-at: f681aa8b2164b7263bd68f49cd3bebd6bf560b78
7 What's cooking in git.git (Jun 2014, #04; Tue, 17)
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 Many topics that have been cooking in 'next' during the previous
15 cycle, totalling close to 300 individual patches, are in 'master'
16 now.  We have also accumulated some fixes we need to merge down to
17 'maint' and cut a v2.0.1 sometime next week.
19 You can find the changes described here in the integration branches
20 of the repositories listed at
22     http://git-blame.blogspot.com/p/git-public-repositories.html
24 --------------------------------------------------
25 [Graduated to "master"]
27 * mt/patch-id-stable (2014-06-10) 1 commit
28  - patch-id: change default to stable
30  Teaches "git patch-id" to compute the patch ID that does not change
31  when the files in a single patch is reordered. As this new algorithm
32  is backward incompatible, the last bit to flip it to be the default
33  is left out of 'master' for now.
36 * as/pretty-truncate (2014-05-21) 5 commits
37   (merged to 'next' on 2014-06-10 at d8147a2)
38  + pretty.c: format string with truncate respects logOutputEncoding
39  + t4205, t6006: add tests that fail with i18n.logOutputEncoding set
40  + t4205 (log-pretty-format): use `tformat` rather than `format`
41  + t4041, t4205, t6006, t7102: don't hardcode tested encoding value
42  + t4205 (log-pretty-formats): don't hardcode SHA-1 in expected outputs
44  Originally merged to 'next' on 2014-05-23
47 * bg/xcalloc-nmemb-then-size (2014-05-27) 12 commits
48   (merged to 'next' on 2014-06-10 at eddb5bc)
49  + transport-helper.c: rearrange xcalloc arguments
50  + remote.c: rearrange xcalloc arguments
51  + reflog-walk.c: rearrange xcalloc arguments
52  + pack-revindex.c: rearrange xcalloc arguments
53  + notes.c: rearrange xcalloc arguments
54  + imap-send.c: rearrange xcalloc arguments
55  + http-push.c: rearrange xcalloc arguments
56  + diff.c: rearrange xcalloc arguments
57  + config.c: rearrange xcalloc arguments
58  + commit.c: rearrange xcalloc arguments
59  + builtin/remote.c: rearrange xcalloc arguments
60  + builtin/ls-remote.c: rearrange xcalloc arguments
62  Originally merged to 'next' on 2014-06-06
64  Like calloc(3), xcalloc() takes nmemb and then size.
67 * cb/byte-order (2014-05-30) 3 commits
68   (merged to 'next' on 2014-06-10 at 63db8ee)
69  + compat/bswap.h: fix endianness detection
70  + compat/bswap.h: restore preference __BIG_ENDIAN over BIG_ENDIAN
71  + compat/bswap.h: detect endianness on more platforms that don't use BYTE_ORDER
73  Originally merged to 'next' on 2014-05-30
75  Compatibility enhancement for Solaris.
78 * cc/replace-edit (2014-05-19) 10 commits
79   (merged to 'next' on 2014-06-10 at ff69722)
80  + Documentation: replace: describe new --edit option
81  + replace: add --edit to usage string
82  + replace: add tests for --edit
83  + replace: die early if replace ref already exists
84  + replace: refactor checking ref validity
85  + replace: make sure --edit results in a different object
86  + replace: add --edit option
87  + replace: factor object resolution out of replace_object
88  + replace: use OPT_CMDMODE to handle modes
89  + replace: refactor command-mode determination
90  (this branch is used by cc/replace-graft.)
92  Originally merged to 'next' on 2014-05-19
94  "git replace" learns a new "--edit" option.
97 * dt/refs-check-refname-component-optim (2014-06-05) 1 commit
98   (merged to 'next' on 2014-06-10 at 4560669)
99  + refs.c: optimize check_refname_component()
100  (this branch is used by dt/refs-check-refname-component-sse42.)
102  Originally merged to 'next' on 2014-06-06
105 * fc/remote-helper-refmap (2014-04-21) 8 commits
106   (merged to 'next' on 2014-06-10 at 8cd8cf8)
107  + transport-helper: remove unnecessary strbuf resets
108  + transport-helper: add support to delete branches
109  + fast-export: add support to delete refs
110  + fast-import: add support to delete refs
111  + transport-helper: add support to push symbolic refs
112  + transport-helper: add support for old:new refspec
113  + fast-export: add new --refspec option
114  + fast-export: improve argument parsing
116  Originally merged to 'next' on 2014-04-22
118  Allow remote-helper/fast-import based transport to rename the refs
119  while transferring the history.
122 * ib/test-selectively-run (2014-06-06) 4 commits
123   (merged to 'next' on 2014-06-10 at 1235570)
124  + t0000-*.sh: fix the GIT_SKIP_TESTS sub-tests
125  + test-lib: '--run' to run only specific tests
126  + test-lib: tests skipped by GIT_SKIP_TESTS say so
127  + test-lib: document short options in t/README
129  Originally merged to 'next' on 2014-06-06
131  Allow specifying only certain individual test pieces to be run
132  using a range notation (e.g. "t1234-test.sh --run='1-4 6 8 9-'").
135 * jk/argv-array-for-child-process (2014-05-15) 7 commits
136   (merged to 'next' on 2014-06-10 at 07a167b)
137  + argv-array: drop "detach" code
138  + get_importer: use run-command's internal argv_array
139  + get_exporter: use argv_array
140  + get_helper: use run-command's internal argv_array
141  + git_connect: use argv_array
142  + run_column_filter: use argv_array
143  + run-command: store an optional argv_array
145  Originally merged to 'next' on 2014-05-21
148 * jk/complete-merge-pull (2014-05-27) 2 commits
149   (merged to 'next' on 2014-06-10 at d1524c5)
150  + completion: add missing options for git-merge
151  + completion: add a note that merge options are shared
153  Originally merged to 'next' on 2014-06-06
155  The completion code did not know about quite a few options that are
156  common between "git merge" and "git pull", and a couple of options
157  unique to "git merge".
160 * jk/daemon-tolower (2014-05-23) 1 commit
161   (merged to 'next' on 2014-06-10 at f3c549d)
162  + daemon/config: factor out duplicate xstrdup_tolower
164  Originally merged to 'next' on 2014-05-23
167 * jk/diff-files-assume-unchanged (2014-05-15) 1 commit
168   (merged to 'next' on 2014-06-10 at 984862b)
169  + run_diff_files: do not look at uninitialized stat data
171  Originally merged to 'next' on 2014-05-21
174 * jk/diff-follow-must-take-one-pathspec (2014-05-20) 1 commit
175   (merged to 'next' on 2014-06-10 at 0cd28d7)
176  + move "--follow needs one pathspec" rule to diff_setup_done
178  Originally merged to 'next' on 2014-05-23
181 * jk/do-not-run-httpd-tests-as-root (2014-05-12) 1 commit
182   (merged to 'next' on 2014-06-10 at 745b05c)
183  + t/lib-httpd: require SANITY prereq
185  Originally merged to 'next' on 2014-05-21
188 * jk/error-resolve-conflict-advice (2014-06-03) 2 commits
189   (merged to 'next' on 2014-06-10 at 713ebe0)
190  + error_resolve_conflict: drop quotations around operation
191  + error_resolve_conflict: rewrap advice message
193  Originally merged to 'next' on 2014-06-06
196 * jk/http-errors (2014-05-27) 8 commits
197   (merged to 'next' on 2014-06-10 at 30e9212)
198  + http: default text charset to iso-8859-1
199  + remote-curl: reencode http error messages
200  + strbuf: add strbuf_reencode helper
201  + http: optionally extract charset parameter from content-type
202  + http: extract type/subtype portion of content-type
203  + t5550: test display of remote http error messages
204  + t/lib-httpd: use write_script to copy CGI scripts
205  + test-lib: preserve GIT_CURL_VERBOSE from the environment
207  Originally merged to 'next' on 2014-06-06
209  Propagate the error messages from the webserver better to the
210  client coming over the HTTP transport.
213 * jk/report-fail-to-read-objects-better (2014-05-15) 1 commit
214   (merged to 'next' on 2014-06-10 at 299ea28)
215  + open_sha1_file: report "most interesting" errno
217  Originally merged to 'next' on 2014-05-21
220 * jk/strbuf-tolower (2014-05-23) 1 commit
221   (merged to 'next' on 2014-06-10 at 01e6983)
222  + strbuf: add strbuf_tolower function
224  Originally merged to 'next' on 2014-05-23
227 * jl/remote-rm-prune (2014-05-27) 3 commits
228   (merged to 'next' on 2014-06-10 at 13259ff)
229  + remote prune: optimize "dangling symref" check/warning
230  + remote: repack packed-refs once when deleting multiple refs
231  + remote rm: delete remote configuration as the last
233  Originally merged to 'next' on 2014-06-06
235  "git remote rm" and "git remote prune" can involve removing many
236  refs at once, which is not a very efficient thing to do when very
237  many refs exist in the packed-refs file.
240 * jl/status-added-submodule-is-never-ignored (2014-04-07) 2 commits
241   (merged to 'next' on 2014-06-10 at fc63847)
242  + commit -m: commit staged submodules regardless of ignore config
243  + status/commit: show staged submodules regardless of ignore config
245  Originally merged to 'next' on 2014-06-06
247  submodule.*.ignore and diff.ignoresubmodules are used to ignore all
248  submodule changes in "diff" output, but it can be confusing to
249  apply these configuration values to status and commit.
251  This is a backward-incompatible change, but should be so in a good
252  way (aka bugfix).
255 * jm/dedup-test-config (2014-06-05) 1 commit
256   (merged to 'next' on 2014-06-10 at 8966f54)
257  + t/t7810-grep.sh: remove duplicate test_config()
259  Originally merged to 'next' on 2014-06-06
262 * jm/doc-wording-tweaks (2014-05-28) 1 commit
263   (merged to 'next' on 2014-06-10 at 5f2e094)
264  + Documentation: wording fixes in the user manual and glossary
266  Originally merged to 'next' on 2014-06-06
269 * jm/format-patch-mail-sig (2014-05-27) 2 commits
270   (merged to 'next' on 2014-06-10 at 310f59e)
271  + format-patch: add "--signature-file=<file>" option
272  + format-patch: make newline after signature conditional
274  Originally merged to 'next' on 2014-06-06
277 * jm/instaweb-apache-24 (2014-05-27) 1 commit
278   (merged to 'next' on 2014-06-10 at ecf2048)
279  + git-instaweb: add support for Apache 2.4
281  Originally merged to 'next' on 2014-06-06
284 * jm/t9138-style-fix (2014-05-27) 1 commit
285   (merged to 'next' on 2014-06-10 at 034f13d)
286  + t9138-git-svn-authors-prog.sh fixups
288  Originally merged to 'next' on 2014-06-06
291 * lt/log-auto-decorate (2014-05-30) 1 commit
292   (merged to 'next' on 2014-06-10 at f149f4a)
293  + git log: support "auto" decorations
295  Originally merged to 'next' on 2014-06-06
298 * nd/daemonize-gc (2014-05-27) 1 commit
299   (merged to 'next' on 2014-06-10 at 6fae7b0)
300  + gc --auto: do not lock refs in the background
302  Originally merged to 'next' on 2014-06-06
304  "git gc --auto" was recently changed to run in the background to
305  give control back early to the end-user sitting in front of the
306  terminal, but it forgot that housekeeping involving reflogs should
307  be done without other processes competing for accesses to the refs.
310 * ow/config-mailmap-pathname (2014-05-27) 1 commit
311   (merged to 'next' on 2014-06-10 at aba4ca2)
312  + config: respect '~' and '~user' in mailmap.file
314  Originally merged to 'next' on 2014-06-06
316  mailmap.file configuration names a pathname, hence should honor
317  ~/path and ~user/path as its value.
320 * rr/rebase-autostash-fix (2014-05-20) 2 commits
321   (merged to 'next' on 2014-06-10 at afd0c29)
322  + rebase -i: test "Nothing to do" case with autostash
323  + rebase -i: handle "Nothing to do" case with autostash
325  Originally merged to 'next' on 2014-05-21
328 * rs/pack-objects-no-unnecessary-realloc (2014-06-02) 1 commit
329   (merged to 'next' on 2014-06-10 at abae695)
330  + pack-objects: use free()+xcalloc() instead of xrealloc()+memset()
332  Originally merged to 'next' on 2014-06-06
334  Avoid unnecessary copy of previous contents when extending the
335  hashtable used in pack-objects.
338 * rs/read-ref-at (2014-06-03) 1 commit
339   (merged to 'next' on 2014-06-10 at f58f2fc)
340  + refs.c: change read_ref_at to use the reflog iterators
342  Originally merged to 'next' on 2014-06-06
345 * sh/enable-preloadindex (2014-06-03) 1 commit
346   (merged to 'next' on 2014-06-10 at 7cedf2d)
347  + environment.c: enable core.preloadindex by default
349  Originally merged to 'next' on 2014-06-06
352 * sk/test-cmp-bin (2014-06-04) 1 commit
353   (merged to 'next' on 2014-06-10 at 020a475)
354  + t5000, t5003: do not use test_cmp to compare binary files
356  Originally merged to 'next' on 2014-06-06
359 * sk/wincred (2014-05-14) 2 commits
360   (merged to 'next' on 2014-06-10 at 8d03e5a)
361  + wincred: avoid overwriting configured variables
362  + wincred: add install target
364  Originally merged to 'next' on 2014-05-21
367 * sk/windows-unc-path (2014-06-10) 1 commit
368   (merged to 'next' on 2014-06-10 at 3598cc6)
369  + Windows: allow using UNC path for git repository
370  (this branch is used by sk/mingw-main, sk/mingw-uni-console and sk/mingw-unicode-spawn-args.)
372  Originally merged to 'next' on 2014-05-21
375 * ta/string-list-init (2014-06-06) 1 commit
376   (merged to 'next' on 2014-06-10 at bf209ff)
377  + string-list: spell all values out that are given to a string_list initializer
379  Originally merged to 'next' on 2014-06-06
381 --------------------------------------------------
382 [New Topics]
384 * fr/sequencer-fail-with-not-one-upon-no-ff (2014-06-09) 1 commit
385   (merged to 'next' on 2014-06-16 at 29734cc)
386  + sequencer: signal failed ff as an aborted, not a conflicted merge
388  Will merge to 'master'.
391 * hv/submodule-config (2014-06-13) 6 commits
392  - SQUASH compilation fix
393  - do not die on error of parsing fetchrecursesubmodules option
394  - use new config API for worktree configurations of submodules
395  - extract functions for submodule config set and lookup
396  - implement submodule config cache for lookup of submodule names
397  - hashmap: add enum for hashmap free_entries option
400 * mc/git-p4-prepare-p4-only (2014-06-13) 1 commit
401   (merged to 'next' on 2014-06-16 at 3c05e19)
402  + git-p4: fix submit in non --prepare-p4-only mode
404  Will merge to 'master'.
407 * sk/mingw-unicode-spawn-args (2014-06-16) 6 commits
408  - Win32: Unicode arguments (incoming)
409  - Win32: Unicode arguments (outgoing)
410  - MinGW: disable CRT command line globbing
411  - Win32: fix potential multi-threading issue
412  - Win32: simplify internal mingw_spawn* APIs
413  - Win32: let mingw_execve() return an int
414  (this branch uses sk/mingw-main and sk/mingw-uni-console.)
417 * sp/complete-ext-alias (2014-06-13) 1 commit
418   (merged to 'next' on 2014-06-16 at 399679e)
419  + completion: handle '!f() { ... }; f' and "!sh -c '...' -" aliases
421  Will merge to 'master'.
424 * bc/fix-rebase-merge-skip (2014-06-16) 1 commit
425  - rebase--merge: fix --skip with two conflicts in a row
427  "git rebase --skip" did not work well when it stopped due to a
428  conflict twice in a row.
430  Will merge to 'next'.
433 * jl/submodule-tests (2014-06-16) 16 commits
434  - revert: add t3513 for submodule updates
435  - stash: add t3906 for submodule updates
436  - am: add t4255 for submodule updates
437  - cherry-pick: add t3512 for submodule updates
438  - pull: add t5572 for submodule updates
439  - SQUASH???
440  - rebase: add t3426 for submodule updates
441  - merge: add t7613 for submodule updates
442  - bisect: add t6041 for submodule updates
443  - reset: add t7112 for submodule updates
444  - read-tree: add t1013 for submodule updates
445  - apply: add t4137 for submodule updates
446  - checkout: call the new submodule update test framework
447  - submodules: Add the lib-submodule-update.sh test library
448  - SQUASH???
449  - test-lib: add test_dir_is_empty()
451  Expecting a reroll.
454 * mc/doc-submodule-sync-recurse (2014-06-13) 1 commit
455  - submodule: document "sync --recursive"
457  Will merge to 'next'.
460 * pb/trim-trailing-spaces (2014-06-13) 1 commit
461  - t0008: do not depend on 'echo' handling backslashes specially
463  Will merge to 'next'.
466 * po/error-message-style (2014-06-16) 1 commit
467  - doc: state coding guideline for error message punctuation
469  Expecting a reroll.
472 * rs/blame-refactor (2014-06-13) 2 commits
473  - blame: simplify prepare_lines()
474  - blame: factor out get_next_line()
476  Will merge to 'next'.
479 * rs/ref-transaction (2014-06-17) 48 commits
480  - refs.c: make write_ref_sha1 static
481  - fetch.c: change s_update_ref to use a ref transaction
482  - refs.c: propagate any errno==ENOTDIR from _commit back to the callers
483  - refs.c: pass a skip list to name_conflict_fn
484  - refs.c: call lock_ref_sha1_basic directly from commit
485  - refs.c: move the check for valid refname to lock_ref_sha1_basic
486  - refs.c: pass NULL as *flags to read_ref_full
487  - refs.c: pass the ref log message to _create/delete/update instead of _commit
488  - refs.c: make delete_ref use a transaction
489  - refs.c: make prune_ref use a transaction to delete the ref
490  - refs.c: remove lock_ref_sha1
491  - refs.c: remove the update_ref_write function
492  - refs.c: remove the update_ref_lock function
493  - refs.c: make lock_ref_sha1 static
494  - walker.c: use ref transaction for ref updates
495  - fast-import.c: use a ref transaction when dumping tags
496  - receive-pack.c: use a reference transaction for updating the refs
497  - refs.c: change update_ref to use a transaction
498  - branch.c: use ref transaction for all ref updates
499  - fast-import.c: change update_branch to use ref transactions
500  - sequencer.c: use ref transactions for all ref updates
501  - commit.c: use ref transactions for updates
502  - replace.c: use the ref transaction functions for updates
503  - tag.c: use ref transactions when doing updates
504  - refs.c: add transaction.status and track OPEN/CLOSED/ERROR
505  - refs.c: make ref_transaction_begin take an err argument
506  - refs.c: update ref_transaction_delete to check for error and return status
507  - refs.c: change ref_transaction_create to do error checking and return status
508  - refs.c: change ref_transaction_update() to do error checking and return status
509  - refs.c: remove the onerr argument to ref_transaction_commit
510  - update-ref: use err argument to get error from ref_transaction_commit
511  - refs.c: make update_ref_write update a strbuf on failure
512  - refs.c: add an err argument to delete_ref_loose
513  - refs.c: make ref_update_reject_duplicates take a strbuf argument for errors
514  - refs.c: log_ref_write should try to return meaningful errno
515  - refs.c: make resolve_ref_unsafe set errno to something meaningful on error
516  - refs.c: commit_packed_refs to return a meaningful errno on failure
517  - refs.c: make remove_empty_directories alwasy set errno to something sane
518  - refs.c: verify_lock should set errno to something meaningful
519  - refs.c: make sure log_ref_setup returns a meaningful errno
520  - refs.c: add an err argument to repack_without_refs
521  - lockfile.c: make lock_file return a meaningful errno on failurei
522  - lockfile.c: add a new public function unable_to_lock_message
523  - refs.c: add a strbuf argument to ref_transaction_commit for error logging
524  - refs.c: allow passing NULL to ref_transaction_free
525  - refs.c: constify the sha arguments for ref_transaction_create|delete|update
526  - refs.c: ref_transaction_commit should not free the transaction
527  - refs.c: remove ref_transaction_rollback
530 * ye/doc-http-proto (2014-06-16) 1 commit
531  - http-protocol.txt: Basic Auth is defined in RFC 2617, not RFC 2616
533  Will merge to 'next'.
536 * jk/pretty-G-format-fixes (2014-06-17) 5 commits
537  - pretty: avoid reading past end-of-string with "%G"
538  - t7510: check %G* pretty-format output
539  - t7510: test a commit signed by an unknown key
540  - t7510: use consistent &&-chains in loop
541  - t7510: stop referring to master in later tests
544 * tb/unicode-7.0 (2014-06-17) 1 commit
545  - Update of unicode_width.h to Unicode Version 7.0
547 --------------------------------------------------
548 [Stalled]
550 * cc/replace-graft (2014-06-09) 5 commits
551  - DONTMERGE: wise to wait for peff's commit->buffer length series
552  - contrib: add convert-grafts-to-replace-refs.sh
553  - Documentation: replace: add --graft option
554  - replace: add test for --graft
555  - replace: add --graft option
557  "git replace" learned a "--graft" option to rewrite parents of a
558  commit.
561 * ab/add-interactive-show-diff-func-name (2014-05-12) 2 commits
562  - SQUASH??? git-add--interactive: Preserve diff heading when splitting hunks
563  - git-add--interactive: Preserve diff heading when splitting hunks
565  Waiting for a reroll.
568 * jn/gitweb-utf8-in-links (2014-05-27) 1 commit
569  - gitweb: Harden UTF-8 handling in generated links
571  $gmane/250758?
574 * rh/prompt-tests (2014-06-05) 11 commits
575  - t9904: new __git_ps1 tests for Zsh
576  - test-lib: make it possible to override how test code is eval'd
577  - lib-prompt-tests.sh: add variable for string that encodes percent in PS1
578  - lib-prompt-tests.sh: put all tests inside a function
579  - t9903: move prompt tests to a new lib-prompt-tests.sh file
580  - t9903: move PS1 color code variable definitions to lib-bash.sh
581  - t9903: include "Bash" in test names via new $shellname var
582  - t9903: run pc mode tests again with PS1 expansion disabled
583  - t9903: move test name prefix to a separate variable
584  - t9903: put the Bash pc mode prompt test cases in a function
585  - t9903: remove Zsh test from the suite of Bash prompt tests
587  Expecting a reroll to limit the damage to test_eval_; also reported
588  to be broken with older zsh that are still in the field ($gmane/251231).
591 * ss/userdiff-update-csharp-java (2014-06-02) 2 commits
592  - userdiff: support Java try keyword
593  - userdiff: support C# async methods and correct C# keywords
595  Reviews sent; waiting for a response.
598 * cc/interpret-trailers (2014-05-28) 11 commits
599  - Documentation: add documentation for 'git interpret-trailers'
600  - trailer: add tests for commands in config file
601  - trailer: execute command from 'trailer.<name>.command'
602  - trailer: add tests for "git interpret-trailers"
603  - trailer: add interpret-trailers command
604  - trailer: put all the processing together and print
605  - trailer: parse trailers from file or stdin
606  - trailer: process command line trailer arguments
607  - trailer: read and process config information
608  - trailer: process trailers from input message and arguments
609  - trailer: add data structures and basic functions
611  A new filter to programatically edit the tail end of the commit log
612  messages.
614  What is the status of this one?  I think I saw reviews by Michael
615  but after that I do not recall seeing any updates.
618 * jh/submodule-tests (2014-04-17) 1 commit
619  - t7410: 210 tests for various 'git submodule update' scenarios
621  More or less abandoned.  Will drop.
624 * nd/multiple-work-trees (2014-03-25) 28 commits
625  - count-objects: report unused files in $GIT_DIR/repos/...
626  - gc: support prune --repos
627  - gc: style change -- no SP before closing bracket
628  - prune: strategies for linked checkouts
629  - checkout: detach if the branch is already checked out elsewhere
630  - checkout: clean up half-prepared directories in --to mode
631  - checkout: support checking out into a new working directory
632  - use new wrapper write_file() for simple file writing
633  - wrapper.c: wrapper to open a file, fprintf then close
634  - setup.c: support multi-checkout repo setup
635  - setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
636  - setup.c: convert check_repository_format_gently to use strbuf
637  - setup.c: detect $GIT_COMMON_DIR in is_git_directory()
638  - setup.c: convert is_git_directory() to use strbuf
639  - git-stash: avoid hardcoding $GIT_DIR/logs/....
640  - *.sh: avoid hardcoding $GIT_DIR/hooks/...
641  - git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
642  - $GIT_COMMON_DIR: a new environment variable
643  - commit: use SEQ_DIR instead of hardcoding "sequencer"
644  - fast-import: use git_path() for accessing .git dir instead of get_git_dir()
645  - reflog: avoid constructing .lock path with git_path
646  - *.sh: respect $GIT_INDEX_FILE
647  - git_path(): be aware of file relocation in $GIT_DIR
648  - path.c: group git_path(), git_pathdup() and strbuf_git_path() together
649  - path.c: rename vsnpath() to do_git_path()
650  - git_snpath(): retire and replace with strbuf_git_path()
651  - path.c: make get_pathname() call sites return const char *
652  - path.c: make get_pathname() return strbuf instead of static buffer
654  A replacement for contrib/workdir/git-new-workdir that does not
655  rely on symbolic links and make sharing of objects and refs safer
656  by making the borrowee and borrowers aware of each other.
659 * mh/lockfile (2014-04-15) 25 commits
660  - trim_last_path_elm(): replace last_path_elm()
661  - resolve_symlink(): take a strbuf parameter
662  - resolve_symlink(): use a strbuf for internal scratch space
663  - change lock_file::filename into a strbuf
664  - commit_lock_file(): use a strbuf to manage temporary space
665  - try_merge_strategy(): use a statically-allocated lock_file object
666  - try_merge_strategy(): remove redundant lock_file allocation
667  - struct lock_file: declare some fields volatile
668  - lockfile: avoid transitory invalid states
669  - commit_lock_file(): die() if called for unlocked lockfile object
670  - commit_lock_file(): inline temporary variable
671  - remove_lock_file(): call rollback_lock_file()
672  - lock_file(): exit early if lockfile cannot be opened
673  - write_packed_entry_fn(): convert cb_data into a (const int *)
674  - prepare_index(): declare return value to be (const char *)
675  - delete_ref_loose(): don't muck around in the lock_file's filename
676  - cache.h: define constants LOCK_SUFFIX and LOCK_SUFFIX_LEN
677  - lockfile.c: document the various states of lock_file objects
678  - lock_file(): always add lock_file object to lock_file_list
679  - hold_lock_file_for_append(): release lock on errors
680  - lockfile: unlock file if lockfile permissions cannot be adjusted
681  - rollback_lock_file(): set fd to -1
682  - rollback_lock_file(): do not clear filename redundantly
683  - api-lockfile: expand the documentation
684  - unable_to_lock_die(): rename function from unable_to_lock_index_die()
686  Refactor and fix corner-case bugs in the lockfile API, all looked
687  sensible.
689  Expecting a reroll.
692 * bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
693  - git-rebase: print name of rev when using shorthand
695  Teach "git rebase -" to report the concrete name of the branch
696  (i.e. the previous one).
698  But it stops short and does not do the same for "git rebase @{-1}".
699  Expecting a reroll.
702 * tr/merge-recursive-index-only (2014-02-05) 3 commits
703  - merge-recursive: -Xindex-only to leave worktree unchanged
704  - merge-recursive: internal flag to avoid touching the worktree
705  - merge-recursive: remove dead conditional in update_stages()
706  (this branch is used by tr/remerge-diff.)
708  Will hold.
711 * tr/remerge-diff (2014-02-26) 5 commits
712  . log --remerge-diff: show what the conflict resolution changed
713  . name-hash: allow dir hashing even when !ignore_case
714  . merge-recursive: allow storing conflict hunks in index
715  . revision: fold all merge diff variants into an enum merge_diff_mode
716  . combine-diff: do not pass revs->dense_combined_merges redundantly
717  (this branch uses tr/merge-recursive-index-only.)
719  "log -p" output learns a new way to let users inspect a merge
720  commit by showing the differences between the automerged result
721  with conflicts the person who recorded the merge would have seen
722  and the final conflict resolution that was recorded in the merge.
724  Needs to be rebased, now kb/fast-hashmap topic is in.
727 * jk/makefile (2014-02-05) 16 commits
728  . FIXUP
729  . move LESS/LV pager environment to Makefile
730  . Makefile: teach scripts to include make variables
731  . FIXUP
732  . Makefile: auto-build C strings from make variables
733  . Makefile: drop *_SQ variables
734  . FIXUP
735  . Makefile: add c-quote helper function
736  . Makefile: introduce sq function for shell-quoting
737  . Makefile: always create files via make-var
738  . Makefile: store GIT-* sentinel files in MAKE/
739  . Makefile: prefer printf to echo for GIT-*
740  . Makefile: use tempfile/mv strategy for GIT-*
741  . Makefile: introduce make-var helper function
742  . Makefile: fix git-instaweb dependency on gitweb
743  . Makefile: drop USE_GETTEXT_SCHEME from GIT-CFLAGS
745  Simplify the Makefile rules and macros that exist primarily for
746  quoting purposes, and make it easier to robustly express the
747  dependency rules.
749  Expecting a reroll.
752 * po/everyday-doc (2014-01-27) 1 commit
753  - Make 'git help everyday' work
755  This may make the said command to emit something, but the source is
756  not meant to be formatted into a manual pages to begin with, and
757  also its contents are a bit stale.  It may be a good first step in
758  the right direction, but needs more work to at least get the
759  mark-up right before public consumption.
761  Will hold.
764 * jk/branch-at-publish-rebased (2014-01-17) 5 commits
765  . t1507 (rev-parse-upstream): fix typo in test title
766  . implement @{publish} shorthand
767  . branch_get: provide per-branch pushremote pointers
768  . branch_get: return early on error
769  . sha1_name: refactor upstream_mark
771  Give an easier access to the tracking branches from "other" side in
772  a triangular workflow by introducing B@{publish} that works in a
773  similar way to how B@{upstream} does.
775  Meant to be used as a basis for whatever Ram wants to build on.
777  Ejected from 'pu' to unclutter.
780 * fc/publish-vs-upstream (2014-04-21) 8 commits
781  . sha1_name: add support for @{publish} marks
782  . sha1_name: simplify track finding
783  . sha1_name: cleanup interpret_branch_name()
784  . branch: display publish branch
785  . push: add --set-publish option
786  . branch: add --set-publish-to option
787  . Add concept of 'publish' branch
788  . t5516 (fetch-push): fix test restoration
790  Add branch@{publish}; it seems that this is somewhat different from
791  Ram and Peff started working on.  At least the tip needs to be
792  rerolled not to squat on @{p} which @{push} and possibly @{pull}
793  may want to share.
796 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
797  - merge: drop unused arg from abort_commit method signature
798  - merge: make prepare_to_commit responsible for write_merge_state
799  - t7505: ensure cleanup after hook blocks merge
800  - t7505: add missing &&
802  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
803  run during "git merge".  The log message stresses too much on one
804  hook, prepare-commit-msg, but it would equally apply to other hooks
805  like post-merge, I think.
807  Waiting for a reroll.
810 * jc/graph-post-root-gap (2013-12-30) 3 commits
811  - WIP: document what we want at the end
812  - graph: remove unused code a bit
813  - graph: stuff the current commit into graph->columns[]
815  This was primarily a RFH ($gmane/239580).
818 * np/pack-v4 (2013-09-18) 90 commits
819  . packv4-parse.c: add tree offset caching
820  . t1050: replace one instance of show-index with verify-pack
821  . index-pack, pack-objects: allow creating .idx v2 with .pack v4
822  . unpack-objects: decode v4 trees
823  . unpack-objects: allow to save processed bytes to a buffer
824  - ...
826  Nico and Duy advancing the eternal vaporware pack-v4.  This is here
827  primarily for wider distribution of the preview edition.
829  Needs to be rebased, now the pack-bitmap series is in.
832 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
833  - perf-lib: add test_perf_cleanup target
834  - perf-lib: split starting the test from the execution
836  Add test_perf_cleanup shell function to the perf suite, that allows
837  the script writers to define a test with a clean-up action.
839  Will hold.
842 * jc/show-branch (2014-03-24) 5 commits
843  - show-branch: use commit slab to represent bitflags of arbitrary width
844  - show-branch.c: remove "all_mask"
845  - show-branch.c: abstract out "flags" operation
846  - show-branch.c: lift all_mask/all_revs to a global static
847  - show-branch.c: update comment style
849  Waiting for the final step to lift the hard-limit before sending it out.
851 --------------------------------------------------
852 [Cooking]
854 * jc/fetch-pull-refmap (2014-06-12) 10 commits
855   (merged to 'next' on 2014-06-12 at 5428530)
856  + docs: Explain the purpose of fetch's and pull's <refspec> parameter.
857   (merged to 'next' on 2014-06-10 at 13c13ae)
858  + fetch: allow explicit --refmap to override configuration
859  + fetch doc: add a section on configured remote-tracking branches
860  + fetch doc: remove "short-cut" section
861  + fetch doc: update refspec format description
862  + fetch doc: on pulling multiple refspecs
863  + fetch doc: remove notes on outdated "mixed layout"
864  + fetch doc: update note on '+' in front of the refspec
865  + fetch doc: move FETCH_HEAD material lower and add an example
866  + fetch doc: update introductory part for clarity
868  Will merge to 'master'.
871 * nd/split-index (2014-06-13) 32 commits
872  - t1700: new tests for split-index mode
873  - t2104: make sure split index mode is off for the version test
874  - read-cache: force split index mode with GIT_TEST_SPLIT_INDEX
875  - read-tree: note about dropping split-index mode or index version
876  - read-tree: force split-index mode off on --index-output
877  - rev-parse: add --shared-index-path to get shared index path
878  - update-index --split-index: do not split if $GIT_DIR is read only
879  - update-index: new options to enable/disable split index mode
880  - split-index: strip pathname of on-disk replaced entries
881  - split-index: do not invalidate cache-tree at read time
882  - split-index: the reading part
883  - split-index: the writing part
884  - read-cache: mark updated entries for split index
885  - read-cache: save deleted entries in split index
886  - read-cache: mark new entries for split index
887  - read-cache: split-index mode
888  - read-cache: save index SHA-1 after reading
889  - entry.c: update cache_changed if refresh_cache is set in checkout_entry()
890  - cache-tree: mark istate->cache_changed on prime_cache_tree()
891  - cache-tree: mark istate->cache_changed on cache tree update
892  - cache-tree: mark istate->cache_changed on cache tree invalidation
893  - unpack-trees: be specific what part of the index has changed
894  - resolve-undo: be specific what part of the index has changed
895  - update-index: be specific what part of the index has changed
896  - read-cache: be specific what part of the index has changed
897  - read-cache: be strict about "changed" in remove_marked_cache_entries()
898  - read-cache: store in-memory flags in the first 12 bits of ce_flags
899  - read-cache: relocate and unexport commit_locked_index()
900  - read-cache: new API write_locked_index instead of write_index/write_cache
901  - sequencer: do not update/refresh index if the lock cannot be held
902  - ewah: delete unused ewah_read_mmap_native declaration
903  - ewah: fix constness of ewah_read_mmap
906 * ep/avoid-test-a-o (2014-06-10) 21 commits
907  - git-submodule.sh: avoid "echo" path-like values
908  - SQUASH: misconversion breakage fix
909  - git-submodule.sh: avoid "test <cond> -a/-o <cond>"
910  - t/test-lib-functions.sh: avoid "test <cond> -a/-o <cond>"
911  - t/t9814-git-p4-rename.sh: avoid "test <cond> -a/-o <cond>"
912  - t/t5538-push-shallow.sh: avoid "test <cond> -a/-o <cond>"
913  - t/t5403-post-checkout-hook.sh: avoid "test <cond> -a/-o <cond>"
914  - t/t5000-tar-tree.sh: avoid "test <cond> -a/-o <cond>"
915  - t/t4102-apply-rename.sh: avoid "test <cond> -a/-o <cond>"
916  - t/t0026-eol-config.sh: avoid "test <cond> -a/-o <cond>"
917  - t/t0025-crlf-auto.sh: avoid "test <cond> -a/-o <cond>"
918  - t/lib-httpd.sh: avoid "test <cond> -a/-o <cond>"
919  - git-rebase--interactive.sh: avoid "test <cond> -a/-o <cond>"
920  - git-mergetool.sh: avoid "test <cond> -a/-o <cond>"
921  - git-bisect.sh: avoid "test <cond> -a/-o <cond>"
922  - contrib/examples/git-resolve.sh: avoid "test <cond> -a/-o <cond>"
923  - contrib/examples/git-repack.sh: avoid "test <cond> -a/-o <cond>"
924  - contrib/examples/git-merge.sh: avoid "test <cond> -a/-o <cond>"
925  - contrib/examples/git-commit.sh: avoid "test <cond> -a/-o <cond>"
926  - contrib/examples/git-clone.sh: avoid "test <cond> -a/-o <cond>"
927  - check_bindir: avoid "test <cond> -a/-o <cond>"
930 * jc/revision-dash-count-parsing (2014-06-09) 1 commit
931   (merged to 'next' on 2014-06-10 at 1aeca19)
932  + revision: parse "git log -<count>" more carefully
934  "git log -2master" is a common typo that shows two commits starting
935  from whichever random branch that is not 'master' that happens to
936  be checked out currently.
938  Will merge to 'master'.
941 * jc/test-lazy-prereq (2014-06-13) 7 commits
942  - tests: drop GIT_*_TIMING_TESTS environment variable support
943   (merged to 'next' on 2014-06-10 at 4f774f7)
944  + t3419: drop unnecessary NOT_EXPENSIVE pseudo-prerequisite
945  + t3302: drop unnecessary NOT_EXPENSIVE pseudo-prerequisite
946  + t3302: do not chdir around in the primary test process
947  + t3302: coding style updates
948  + test: turn USR_BIN_TIME into a lazy prerequisite
949  + test: turn EXPENSIVE into a lazy prerequisite
951  Test-script clean-up.  The last step might be controversial.
953  Will merge to 'master' except for the last one.
956 * jk/commit-buffer-length (2014-06-13) 18 commits
957   (merged to 'next' on 2014-06-16 at b2d2d7b)
958  + reuse cached commit buffer when parsing signatures
959  + commit: record buffer length in cache
960  + commit: convert commit->buffer to a slab
961  + commit-slab: provide a static initializer
962  + use get_commit_buffer everywhere
963  + convert logmsg_reencode to get_commit_buffer
964  + use get_commit_buffer to avoid duplicate code
965  + use get_cached_commit_buffer where appropriate
966  + provide helpers to access the commit buffer
967  + provide a helper to set the commit buffer
968  + provide a helper to free commit buffer
969  + sequencer: use logmsg_reencode in get_message
970  + logmsg_reencode: return const buffer
971  + do not create "struct commit" with xcalloc
972  + commit: push commit_index update into alloc_commit_node
973  + alloc: include any-object allocations in alloc_report
974  + replace dangerous uses of strbuf_attach
975  + commit_tree: take a pointer/len pair rather than a const strbuf
977  Move "commit->buffer" out of the in-core commit object and keep
978  track of their lengths.  Use this to optimize the code paths to
979  validate GPG signatures in commit objects.
981  Will merge to 'master'.
984 * jm/api-strbuf-doc (2014-06-09) 1 commit
985   (merged to 'next' on 2014-06-10 at 831aa30)
986  + api-strbuf.txt minor typos
988  Will merge to 'master'.
991 * rs/more-starts-with (2014-06-09) 1 commit
992   (merged to 'next' on 2014-06-10 at efcd02e)
993  + Use starts_with() for C strings instead of memcmp()
995  Will merge to 'master'.
998 * sk/mingw-dirent (2014-06-09) 5 commits
999  - Win32 dirent: improve dirent implementation
1000  - Win32 dirent: clarify #include directives
1001  - Win32 dirent: change FILENAME_MAX to MAX_PATH
1002  - Win32 dirent: remove unused dirent.d_reclen member
1003  - Win32 dirent: remove unused dirent.d_ino member
1006 * sk/mingw-main (2014-06-10) 2 commits
1007  - mingw: avoid const warning
1008  - Win32: move main macro to a function
1009  (this branch is used by sk/mingw-uni-console and sk/mingw-unicode-spawn-args.)
1012 * sk/mingw-uni-console (2014-06-16) 7 commits
1013  - Win32: reliably detect console pipe handles
1014  - Win32: fix broken pipe detection
1015  - Win32: Thread-safe windows console output
1016  - Win32: add Unicode conversion functions
1017  - Win32: warn if the console font doesn't support Unicode
1018  - Win32: detect console streams more reliably
1019  - Win32: support Unicode console output
1020  (this branch is used by sk/mingw-unicode-spawn-args; uses sk/mingw-main.)
1022  Now, are Windows folks happy with all four mingw topics?
1025 * tb/t5551-clone-notice-to-stderr (2014-06-09) 1 commit
1026   (merged to 'next' on 2014-06-10 at 374082c)
1027  + t5551: fix the 50,000 tag test
1029  Will merge to 'master'.
1032 * jk/repack-pack-keep-objects (2014-06-10) 3 commits
1033   (merged to 'next' on 2014-06-16 at 89716c9)
1034  + repack: s/write_bitmap/&s/ in code
1035  + repack: respect pack.writebitmaps
1036  + repack: do not accidentally pack kept objects by default
1037  (this branch is used by jk/repack-pack-writebitmaps-config.)
1039  Recent updates to "git repack" started to duplicate objects that
1040  are in packfiles marked with .keep flag into the new packfile by
1041  mistake.
1043  Will merge to 'master'.
1046 * jk/repack-pack-writebitmaps-config (2014-06-12) 4 commits
1047   (merged to 'next' on 2014-06-16 at 777005d)
1048  + t7700: drop explicit --no-pack-kept-objects from .keep test
1049  + repack: introduce repack.writeBitmaps config option
1050  + repack: simplify handling of --write-bitmap-index
1051  + pack-objects: stop respecting pack.writebitmaps
1052  (this branch uses jk/repack-pack-keep-objects.)
1054  Will merge to 'master'.
1057 * mg/verify-commit (2014-06-10) 3 commits
1058  - verify-commit: scriptable commit signature verification
1059  - gpg-interface: provide access to the payload
1060  - pretty: free the gpg status buf
1062  What is queued here is v1; v2 exists but I skipped it.
1063  Expecting a reroll.
1066 * nd/init-restore-env (2014-06-10) 1 commit
1067   (merged to 'next' on 2014-06-16 at ecbbfca)
1068  + git potty: restore environments after alias expansion
1070  Will merge to 'master'.
1073 * jl/git-gui-show-added-submodule-changes (2014-04-15) 1 commit
1074  - git-gui: show staged submodules regardless of ignore config
1076  Tentatively queued what I expect to receive via Pat Thoyts.
1079 * jl/gitk-show-added-submodule-changes (2014-04-15) 3 commits
1080  - gitk: show staged submodules regardless of ignore config
1081  - gitk: Merge branch 'new' of https://github.com/vnwildman/gitk
1082  - l10n: Init Vietnamese translation
1084  Will drop, as I heard from Paul that these are queued in his tree.
1087 * mt/send-email-cover-to-cc (2014-06-10) 3 commits
1088   (merged to 'next' on 2014-06-10 at 6bb1465)
1089  + t9001: avoid non-portable '\n' with sed
1090  + test/send-email: to-cover, cc-cover tests
1091  + git-send-email: two new options: to-cover, cc-cover
1093  Originally merged to 'next' on 2014-06-10
1095  Will merge to 'master'.
1098 * mt/patch-id-stable (2014-06-10) 1 commit
1099  - patch-id: change default to stable
1101 --------------------------------------------------
1102 [Discarded]
1104 * jl/submodule-recursive-checkout (2013-12-26) 5 commits
1105  . Teach checkout to recursively checkout submodules
1106  . submodule: teach unpack_trees() to update submodules
1107  . submodule: teach unpack_trees() to repopulate submodules
1108  . submodule: teach unpack_trees() to remove submodule contents
1109  . submodule: prepare for recursive checkout of submodules
1111  Dropped for now to make room for another topic ($gmane/251521)