Meta/Announce: adjust to possible change to the top-level RelNotes
[alt-git.git] / whats-cooking.txt
blobf87cb2e6bb43b75b237ddf48c38b55dcf220ae39
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Feb 2015, #03; Wed, 11)
4 X-master-at: 18d0fec24027ac226dc2c4df2b955eef2a16462a
5 X-next-at: f4dfab7ad497860623d9e20dfd5586a410cf6ec6
7 What's cooking in git.git (Feb 2015, #03; Wed, 11)
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 Git 2.3 is out, and the first batch of topics that have been cooking
15 in the 'next' branch are now in the 'master' branch.  The 'next'
16 branch will be rewound shortly but not yet.
18 You can find the changes described here in the integration branches
19 of the repositories listed at
21     http://git-blame.blogspot.com/p/git-public-repositories.html
23 --------------------------------------------------
24 [Graduated to "master"]
26 * ah/usage-strings (2015-01-14) 1 commit
27   (merged to 'next' on 2015-01-22 at bfa5bab)
28  + standardize usage info string format
31 * ak/typofixes (2015-01-21) 2 commits
32   (merged to 'next' on 2015-01-22 at e36f25a)
33  + t/lib-terminal.sh: fix typo
34  + pack-bitmap: fix typo
37 * bc/http-fallback-to-password-after-krb-fails (2015-01-07) 1 commit
38   (merged to 'next' on 2015-01-12 at 4c67038)
39  + remote-curl: fall back to Basic auth if Negotiate fails
41  After attempting and failing a password-less authentication
42  (e.g. kerberos), libcURL refuses to fall back to password based
43  Basic authentication without a bit of help/encouragement.
46 * cj/log-invert-grep (2015-01-13) 1 commit
47   (merged to 'next' on 2015-01-13 at c908e99)
48  + log: teach --invert-grep option
51 * dk/format-patch-ignore-diff-submodule (2015-01-07) 2 commits
52   (merged to 'next' on 2015-01-12 at 6b4605b)
53  + format-patch: ignore diff.submodule setting
54  + t4255: test am submodule with diff.submodule
56  Setting diff.submodule to 'log' made "git format-patch" produce
57  broken patches.
60 * jc/coding-guidelines (2015-01-15) 1 commit
61   (merged to 'next' on 2015-01-22 at 3c96639)
62  + CodingGuidelines: clarify C #include rules
65 * jc/pretty-format-doc (2015-01-15) 1 commit
66   (merged to 'next' on 2015-01-22 at 2a81ecc)
67  + "log --pretty" documentation: do not forget "tformat:"
70 * jc/push-to-checkout (2015-01-08) 2 commits
71   (merged to 'next' on 2015-01-12 at e64df63)
72  + receive-pack: support push-to-checkout hook
73  + receive-pack: refactor updateInstead codepath
75  Extending the js/push-to-deploy topic, the behaviour of "git push"
76  when updating the working tree and the index with an update to the
77  branch that is checked out can be tweaked by push-to-checkout hook.
80 * jc/unused-symbols (2015-01-15) 8 commits
81   (merged to 'next' on 2015-01-22 at 77fd5f0)
82  + shallow.c: make check_shallow_file_for_update() static
83  + remote.c: make clear_cas_option() static
84  + urlmatch.c: make match_urls() static
85  + revision.c: make save_parents() and free_saved_parents() static
86  + line-log.c: make line_log_data_init() static
87  + pack-bitmap.c: make pack_bitmap_filename() static
88  + prompt.c: remove git_getpass() nobody uses
89  + http.c: make finish_active_slot() and handle_curl_result() static
91  Mark file-local symbols as "static", and drop functions that nobody
92  uses.
95 * jk/blame-commit-label (2015-01-13) 5 commits
96   (merged to 'next' on 2015-01-15 at 1b32e21)
97  + blame.c: fix garbled error message
98  + use xstrdup_or_null to replace ternary conditionals
99  + builtin/commit.c: use xstrdup_or_null instead of envdup
100  + builtin/apply.c: use xstrdup_or_null instead of null_strdup
101  + git-compat-util: add xstrdup_or_null helper
104 * jn/rerere-fail-on-auto-update-failure (2015-01-08) 1 commit
105   (merged to 'next' on 2015-01-12 at 313c449)
106  + rerere: error out on autoupdate failure
108  "git rerere" (invoked internally from many mergy operations) did
109  not correctly signal errors when told to update the working tree
110  files and failed to do so for whatever reason.
113 * km/gettext-n (2015-01-12) 1 commit
114   (merged to 'next' on 2015-01-12 at 0cbbf4a)
115  + gettext.h: add parentheses around N_ expansion if supported
118 * ld/p4-exclude-in-sync (2015-01-28) 1 commit
119   (merged to 'next' on 2015-02-05 at ab410a1)
120  + git-p4: support excluding paths on sync
123 * ld/p4-submit-hint (2015-01-23) 1 commit
124   (merged to 'next' on 2015-01-23 at ed972d3)
125  + git-p4: correct --prepare-p4-only instructions
128 * mh/reflog-expire (2014-12-22) 24 commits
129   (merged to 'next' on 2015-01-12 at 12a7dff)
130  + refs.c: let fprintf handle the formatting
131  + refs.c: don't expose the internal struct ref_lock in the header file
132  + lock_any_ref_for_update(): inline function
133  + refs.c: remove unlock_ref/close_ref/commit_ref from the refs api
134  + reflog_expire(): new function in the reference API
135  + expire_reflog(): treat the policy callback data as opaque
136  + Move newlog and last_kept_sha1 to "struct expire_reflog_cb"
137  + expire_reflog(): move rewrite to flags argument
138  + expire_reflog(): move verbose to flags argument
139  + expire_reflog(): pass flags through to expire_reflog_ent()
140  + struct expire_reflog_cb: a new callback data type
141  + Rename expire_reflog_cb to expire_reflog_policy_cb
142  + expire_reflog(): move updateref to flags argument
143  + expire_reflog(): move dry_run to flags argument
144  + expire_reflog(): add a "flags" argument
145  + expire_reflog(): extract two policy-related functions
146  + Extract function should_expire_reflog_ent()
147  + expire_reflog(): use a lock_file for rewriting the reflog file
148  + expire_reflog(): return early if the reference has no reflog
149  + expire_reflog(): rename "ref" parameter to "refname"
150  + expire_reflog(): it's not an each_ref_fn anymore
151  + refs.c: add a function to append a reflog entry to a fd
152  + refs.c: make ref_transaction_delete a wrapper for ref_transaction_update
153  + refs.c: make ref_transaction_create a wrapper for ref_transaction_update
154  (this branch is used by sb/atomic-push and sb/atomic-push-fix.)
156  Restructure "reflog expire" to fit the reflogs better with the
157  recently updated ref API.
160 * sb/atomic-push (2015-01-14) 11 commits
161   (merged to 'next' on 2015-01-14 at 12c4e28)
162  + Document receive.advertiseatomic
163   (merged to 'next' on 2015-01-12 at 411c6a6)
164  + t5543-atomic-push.sh: add basic tests for atomic pushes
165  + push.c: add an --atomic argument
166  + send-pack.c: add --atomic command line argument
167  + send-pack: rename ref_update_to_be_sent to check_to_send_update
168  + receive-pack.c: negotiate atomic push support
169  + receive-pack.c: add execute_commands_atomic function
170  + receive-pack.c: move transaction handling in a central place
171  + receive-pack.c: move iterating over all commands outside execute_commands
172  + receive-pack.c: die instead of error in case of possible future bug
173  + receive-pack.c: shorten the execute_commands loop over all commands
174  (this branch is used by sb/atomic-push-fix; uses mh/reflog-expire.)
176  "git push" has been taught a "--atomic" option that makes push to
177  update more than one ref an "all-or-none" affair.
179 --------------------------------------------------
180 [New Topics]
182 * ab/merge-file-prefix (2015-02-11) 1 commit
183  - merge-file: correctly open files when in a subdir
185  "git merge-file" did not work correctly in a subdirectory.
187  Will merge to 'next'.
190 * es/blame-commit-info-fix (2015-02-10) 1 commit
191  - builtin/blame: destroy initialized commit_info only
193  "git blame" died, trying to free an uninitialized piece of memory.
195  Will merge to 'next'.
198 * es/squelch-openssl-warnings-on-macosx (2015-02-09) 1 commit
199  - git-compat-util: do not step on MAC_OS_X_VERSION_MIN_REQUIRED
201  Will merge to 'next'.
204 * jc/max-io-size-and-ssize-max (2015-02-11) 1 commit
205  - xread/xwrite: clip MAX_IO_SIZE to SSIZE_MAX
207  Will merge to 'next'.
210 * jk/fast-import-die-nicely-fix (2015-02-10) 1 commit
211  - fast-import: avoid running end_packfile recursively
213  "git fast-import" used to crash when it could not close and
214  conclude the resulting packfile cleanly.
216  Will merge to 'next'.
219 * mh/expire-updateref-fixes (2015-02-09) 10 commits
220  - reflog_expire(): lock symbolic refs themselves, not their referent
221  - reflog_expire(): never update a reference to null_sha1
222  - reflog_expire(): ignore --updateref for symbolic references
223  - reflog: rearrange the manpage
224  - reflog: fix documentation
225  - lock_ref_sha1_basic(): do not set force_write for missing references
226  - write_ref_sha1(): Move write elision test to callers
227  - write_ref_sha1(): remove check for lock == NULL
228  - Merge branch 'sb/atomic-push' into mh/ref-trans-value-check
229  - Merge branch 'mh/reflog-expire' into mh/ref-trans-value-check
230  (this branch is tangled with mh/refs-have-new.)
233 * mh/refs-have-new (2015-02-09) 13 commits
234  - update_ref(): improve documentation
235  - ref_transaction_verify(): new function to check a reference's value
236  - ref_transaction_delete(): check that old_sha1 is not null_sha1
237  - ref_transaction_create(): check that new_sha1 is valid
238  - commit: avoid race when creating orphan commits
239  - commit: add tests of commit races
240  - ref_transaction_delete(): remove "have_old" parameter
241  - ref_transaction_update(): remove "have_old" parameter
242  - struct ref_update: move "have_old" into "flags"
243  - refs: remove the gap in the REF_* constant values
244  - refs: move REF_DELETING to refs.c
245  - Merge branch 'sb/atomic-push' into mh/ref-trans-value-check
246  - Merge branch 'mh/reflog-expire' into mh/ref-trans-value-check
247  (this branch is tangled with mh/expire-updateref-fixes.)
250 * nd/slim-index-pack-memory-usage (2015-02-10) 3 commits
251  - index-pack: kill union delta_base to save memory
252  - FIXUP
253  - index-pack: reduce memory footprint a bit
255 --------------------------------------------------
256 [Stalled]
258 * jk/sanity (2015-01-27) 3 commits
259  - test-lib.sh: set prerequisite SANITY by testing what we really need
260  - tests: correct misuses of POSIXPERM
261  - t/lib-httpd: switch SANITY check for NOT_ROOT
263  Waiting for ack or counter-proposal from Torsten.
264  Otherwise looking good.
267 * tc/t9001-noxmailer (2015-01-30) 1 commit
268  - t9001: use older Getopt::Long boolean prefix '--no' rather than '--no-'
270  Kyle's update to explicitly support --no-option with older
271  Getopt::Long ($gmane/263203) might be a better alternative
272  if we have to support them in the longer term.
275 * jc/diff-b-m (2015-02-01) 1 commit
276  - diff: do not use creation-half of -B as a rename target candidate
278  "git diff -B -M" produced incorrect patch when the postimage of a
279  completely rewritten file is similar to the preimage of a removed
280  file; such a resulting file must not be expressed as a rename from
281  other place.
283  The fix in this patch is broken, unfortunately.
286 * jn/doc-api-errors (2014-12-04) 1 commit
287  - doc: document error handling functions and conventions
289  For discussion.
290  What's the status of this one????
293 * pw/remote-set-url-fetch (2014-11-26) 1 commit
294  - remote: add --fetch and --both options to set-url
296  Expecting a reroll.
299 * ms/submodule-update-config-doc (2014-11-03) 1 commit
300  - submodule: clarify documentation for update subcommand
302  Needs a reroll ($gmane/259037).
305 * je/quiltimport-no-fuzz (2014-10-21) 2 commits
306  - git-quiltimport: flip the default not to allow fuzz
307  - git-quiltimport.sh: allow declining fuzz with --exact option
309  "quiltimport" drove "git apply" always with -C1 option to reduce
310  context of the patch in order to give more chance to somewhat stale
311  patches to apply.  Add an "--exact" option to disable, and also
312  "-C$n" option to customize this behaviour.  The top patch
313  optionally flips the default to "--exact".
315  Tired of waiting for an Ack; will discard.
318 * tr/remerge-diff (2014-11-10) 9 commits
319  - t4213: avoid "|" in sed regexp
320  - log --remerge-diff: show what the conflict resolution changed
321  - name-hash: allow dir hashing even when !ignore_case
322  - merge-recursive: allow storing conflict hunks in index
323  - merge_diff_mode: fold all merge diff variants into an enum
324  - combine-diff: do not pass revs->dense_combined_merges redundantly
325  - merge-recursive: -Xindex-only to leave worktree unchanged
326  - merge-recursive: internal flag to avoid touching the worktree
327  - merge-recursive: remove dead conditional in update_stages()
329  "log -p" output learns a new way to let users inspect a merge
330  commit by showing the differences between the automerged result
331  with conflicts the person who recorded the merge would have seen
332  and the final conflict resolution that was recorded in the merge.
334  Waiting for a reroll ($gmane/256591).
337 * hv/submodule-config (2014-11-11) 4 commits
338  - do not die on error of parsing fetchrecursesubmodules option
339  - use new config API for worktree configurations of submodules
340  - extract functions for submodule config set and lookup
341  - implement submodule config cache for lookup of submodule names
343  Kicked back to 'pu' per request ($gmane/255610).
346 * ab/add-interactive-show-diff-func-name (2014-05-12) 2 commits
347  - SQUASH??? git-add--interactive: Preserve diff heading when splitting hunks
348  - git-add--interactive: Preserve diff heading when splitting hunks
350  Waiting for a reroll.
353 * jn/gitweb-utf8-in-links (2014-05-27) 1 commit
354  - gitweb: Harden UTF-8 handling in generated links
356  $gmane/250758?
359 * ss/userdiff-update-csharp-java (2014-06-02) 2 commits
360  - userdiff: support Java try keyword
361  - userdiff: support C# async methods and correct C# keywords
363  Reviews sent; waiting for a response.
366 * bg/rebase-off-of-previous-branch (2014-04-16) 1 commit
367  - git-rebase: print name of rev when using shorthand
369  Teach "git rebase -" to report the concrete name of the branch
370  (i.e. the previous one).
372  But it stops short and does not do the same for "git rebase @{-1}".
373  Expecting a reroll.
376 * rb/merge-prepare-commit-msg-hook (2014-01-10) 4 commits
377  - merge: drop unused arg from abort_commit method signature
378  - merge: make prepare_to_commit responsible for write_merge_state
379  - t7505: ensure cleanup after hook blocks merge
380  - t7505: add missing &&
382  Expose more merge states (e.g. $GIT_DIR/MERGE_MODE) to hooks that
383  run during "git merge".  The log message stresses too much on one
384  hook, prepare-commit-msg, but it would equally apply to other hooks
385  like post-merge, I think.
387  Waiting for a reroll.
390 * jc/graph-post-root-gap (2013-12-30) 3 commits
391  - WIP: document what we want at the end
392  - graph: remove unused code a bit
393  - graph: stuff the current commit into graph->columns[]
395  This was primarily a RFH ($gmane/239580).
398 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
399  - perf-lib: add test_perf_cleanup target
400  - perf-lib: split starting the test from the execution
402  Add test_perf_cleanup shell function to the perf suite, that allows
403  the script writers to define a test with a clean-up action.
405  Will hold.
408 * jc/show-branch (2014-03-24) 5 commits
409  - show-branch: use commit slab to represent bitflags of arbitrary width
410  - show-branch.c: remove "all_mask"
411  - show-branch.c: abstract out "flags" operation
412  - show-branch.c: lift all_mask/all_revs to a global static
413  - show-branch.c: update comment style
415  Waiting for the final step to lift the hard-limit before sending it out.
417 --------------------------------------------------
418 [Cooking]
420 * jc/diff-files-ita (2015-02-04) 1 commit
421  - run_diff_files(): clarify computation of sha1 validity
423  Will merge to 'next'.
426 * jk/config-no-ungetc-eof (2015-02-05) 2 commits
427  - config_buf_ungetc: warn when pushing back a random character
428  - config: do not ungetc EOF
430  Will merge to 'next'.
433 * jk/decimal-width-for-uintmax (2015-02-05) 1 commit
434  - decimal_width: avoid integer overflow
436  Will merge to 'next'.
439 * ss/check-builtins-on-windows (2015-02-05) 1 commit
440  - check-builtins: strip executable suffix $X when enumerating builtins
442  Will merge to 'next'.
445 * jc/diff-format-doc (2015-01-28) 1 commit
446  - diff-format doc: a score can follow M for rewrite
448  The documentation incorrectly said that C(opy) and R(ename) are the
449  only ones that can be followed by the score number in the output in
450  the --raw format.
452  Will merge to 'next'.
455 * jk/remote-curl-an-array-in-struct-cannot-be-null (2015-01-28) 1 commit
456  - do not check truth value of flex arrays
458  Will merge to 'next'.
461 * jk/status-read-branch-name-fix (2015-01-28) 1 commit
462  - read_and_strip_branch: fix typo'd address-of operator
464  Code to read branch name from various files in .git/ directory
465  would have misbehaved if the code to write them left an empty file.
467  Will merge to 'next'.
470 * ch/new-gpg-drops-rfc-1991 (2015-01-29) 2 commits
471  - t/lib-gpg: sanity-check that we can actually sign
472  - t/lib-gpg: include separate public keys in keyring.gpg
474  Older GnuPG implementation may not correctly import the keyring
475  material we prepare for the tests to use.
477  Will merge to 'next'.
480 * jc/apply-beyond-symlink (2015-02-10) 4 commits
481  - apply: do not touch a file beyond a symbolic link
482  - apply: do not read from beyond a symbolic link
483  - apply: do not read from the filesystem under --index
484  - apply: reject input that touches outside the working area
486  "git apply" was not very careful about reading from, removing,
487  updating and creating paths outside the working tree (under
488  --index/--cached) or the current directory (when used as a
489  replacement for GNU patch).
491  Will merge to 'next'.
494 * jc/remote-set-url-doc (2015-01-29) 1 commit
495  - Documentation/git-remote.txt: stress that set-url is not for triangular
497  Clarify in the documentation that "remote.<nick>.pushURL" and
498  "remote.<nick>.URL" are there to name the same repository accessed
499  via different transports, not two separate repositories.
501  Will merge to 'next'.
504 * jc/t4122-use-test-write-lines (2015-01-28) 1 commit
505  - t4122: use test_write_lines from test-lib-functions
507  Will merge to 'next'.
510 * jk/pack-bitmap (2015-02-04) 1 commit
511  - ewah: fix building with gcc < 3.4.0
513  Will merge to 'next'.
516 * jk/prune-mtime (2015-02-09) 2 commits
517  - sha1_file: fix iterating loose alternate objects
518  - for_each_loose_file_in_objdir: take an optional strbuf path
520  In v2.2.0, we broke "git prune" that runs in a repository that
521  borrows from an alternate object store.
523  Will merge to 'next'.
526 * ps/submodule-sanitize-path-upon-add (2015-02-02) 1 commit
527  - git-submodule.sh: fix '/././' path normalization
529  Will merge to 'next'.
532 * tc/curl-vernum-output-broken-in-7.11 (2015-02-03) 1 commit
533  - Makefile: handle broken curl version number in version check
535  Cope with irregular output of "curl-config --vernum" given by
536  certain older vintages of cURL.
538  Will merge to 'next'.
541 * tc/missing-http-proxyauth (2015-02-03) 1 commit
542  - http: support curl < 7.10.7
544  Will merge to 'next'.
547 * jc/apply-ws-fix-expands-report (2015-01-22) 1 commit
548  - apply: detect and mark whitespace errors in context lines when fixing
549  (this branch uses jc/apply-ws-fix-expands.)
551  "git apply --whitespace=fix" fixed whitespace errors in the common
552  context lines but did so without reporting.
554  Will merge to 'next'.
557 * ks/rebase-i-abbrev (2015-01-22) 1 commit
558  - rebase -i: use full object name internally throughout the script
560  The insn sheet "git rebase -i" creates did not fully honor
561  core.abbrev settings.
563  Will merge to 'next'.
566 * mh/deref-symref-over-helper-transport (2015-01-21) 1 commit
567  - transport-helper: do not request symbolic refs to remote helpers
569  "git fetch" over a remote-helper that cannot respond to "list"
570  command could not fetch from a symbolic reference e.g. HEAD.
572  Will merge to 'next'.
575 * ak/add-i-empty-candidates (2015-01-22) 1 commit
576  - add -i: return from list_and_choose if there is no candidate
578  The interactive "show a list and let the user choose from it"
579  interface "add -i" used showed and prompted to the user even when
580  the candidate list was empty, against which the only "choice" the
581  user could have made was to choose nothing.
583  Will merge to 'next'.
586 * av/wincred-with-at-in-username-fix (2015-01-25) 1 commit
587  - wincred: fix get credential if username has "@"
589  Will merge to 'next'.
592 * jc/conf-var-doc (2015-02-02) 3 commits
593  - CodingGuidelines: describe naming rules for configuration variables
594  - config.txt: mark deprecated variables more prominently
595  - config.txt: clarify that add.ignore-errors is deprecated
597  Will merge to 'next'.
600 * jc/doc-log-rev-list-options (2015-01-23) 1 commit
601  - Documentation: what does "git log --indexed-objects" even mean?
603  Will merge to 'next'.
606 * jk/dumb-http-idx-fetch-fix (2015-01-27) 1 commit
607  - dumb-http: do not pass NULL path to parse_pack_index
609  Will merge to 'next'.
612 * mg/commit-author-no-match-malformed-message (2015-01-26) 1 commit
613  - commit: reword --author error message
615  Will merge to 'next'.
618 * mg/push-repo-option-doc (2015-01-28) 1 commit
619  - git-push.txt: document the behavior of --repo
621  Will merge to 'next'.
624 * ye/http-accept-language (2015-01-28) 1 commit
625  - http: add Accept-Language header if possible
627  Using environment variable LANGUAGE and friends on the client side,
628  send Accept-Language when making HTTP requests.
630  Will merge to 'next'.
633 * jc/apply-ws-fix-expands (2015-01-22) 3 commits
634  - apply: count the size of postimage correctly
635  - apply: make update_pre_post_images() sanity check the given postlen
636  - apply.c: typofix
637  (this branch is used by jc/apply-ws-fix-expands-report.)
639  "git apply --whitespace=fix" used to under-allocate the memory
640  when the fix resulted in a longer text than the original patch.
642  Will merge to 'next'.
645 * js/fsck-opt (2015-01-21) 19 commits
646  - fsck: support ignoring objects in `git fsck` via fsck.skiplist
647  - fsck: git receive-pack: support excluding objects from fsck'ing
648  - fsck: introduce `git fsck --quick`
649  - fsck: support demoting errors to warnings
650  - fsck: document the new receive.fsck.* options
651  - fsck: allow upgrading fsck warnings to errors
652  - fsck: optionally ignore specific fsck issues completely
653  - fsck: disallow demoting grave fsck errors to warnings
654  - fsck: add a simple test for receive.fsck.*
655  - fsck: make fsck_tag() warn-friendly
656  - fsck: handle multiple authors in commits specially
657  - fsck: make fsck_commit() warn-friendly
658  - fsck: make fsck_ident() warn-friendly
659  - fsck: report the ID of the error/warning
660  - fsck: allow demoting errors to warnings via receive.fsck.warn = <key>
661  - fsck: offer a function to demote fsck errors to warnings
662  - fsck: provide a function to parse fsck message IDs
663  - fsck: introduce identifiers for fsck messages
664  - fsck: introduce fsck options
666  Need extra set of eyes to review this.
669 * tb/connect-ipv6-parse-fix (2015-01-22) 3 commits
670  - t5500: show user name and host in diag-url
671  - t5601: add more test cases for IPV6
672  - connect.c: improve parsing of literal IPV6 addresses
674  Need extra set of eyes to review this.
677 * jk/strbuf-doc-to-header (2015-01-16) 7 commits
678  - strbuf.h: group documentation for trim functions
679  - strbuf.h: drop boilerplate descriptions of strbuf_split_*
680  - strbuf.h: reorganize api function grouping headers
681  - strbuf.h: format asciidoc code blocks as 4-space indent
682  - strbuf.h: drop asciidoc list formatting from API docs
683  - strbuf.h: unify documentation comments beginnings
684  - strbuf.h: integrate api-strbuf.txt documentation
686  Resolve the "doc vs header" to favor the latter.
688  Will merge to 'next'.
691 * ak/stash-store-create-help (2015-01-13) 1 commit
692  - stash: show "create" and "store" subcommands in usage-help
694  Undecided.
697 * bp/diff-relative-config (2015-01-07) 2 commits
698  - diff: teach diff.relative to give default to --relative=<value>
699  - diff: teach --no-relative to override earlier --relative
702 * nd/attr-optim (2014-12-29) 3 commits
703  - attr: avoid heavy work when we know the specified attr is not defined
704  - attr: do not attempt to expand when we know it's not a macro
705  - attr.c: rename arg name attr_nr to avoid shadowing the global one
708 * nd/list-files (2015-02-09) 21 commits
709  . t3080: tests for git-list-files
710  . list-files: -M aka diff-cached
711  . list-files -F: show submodules with the new indicator '&'
712  . list-files: add -F/--classify
713  . list-files: show directories as well as files
714  . list-files: do not show duplicate cached entries
715  . list-files: sort output and remove duplicates
716  . list-files: add -t back
717  . list-files: add -1 short for --no-column
718  . list-files: add -R/--recursive short for --max-depth=-1
719  . list-files: -u does not imply showing stages
720  . list-files: make alias 'ls' default to 'list-files'
721  . list-files: a user friendly version of ls-files and more
722  . ls-files: support --max-depth
723  . ls-files: add --column
724  . ls-files: add --color to highlight file names
725  . ls-files: buffer full item in strbuf before printing
726  . ls_colors.c: highlight submodules like directories
727  . ls_colors.c: add a function to color a file name
728  . ls_colors.c: parse color.ls.* from config file
729  . ls_colors.c: add $LS_COLORS parsing code
731  A new "git list-files" Porcelain command, "ls-files" with bells and
732  whistles.
735 * nd/multiple-work-trees (2015-01-27) 38 commits
736  - t2026 needs procondition SANITY
737  - git-checkout.txt: a note about multiple checkout support for submodules
738  - checkout: add --ignore-other-wortrees
739  - checkout: pass whole struct to parse_branchname_arg instead of individual flags
740  - git-common-dir: make "modules/" per-working-directory directory
741  - checkout: do not fail if target is an empty directory
742  - t2025: add a test to make sure grafts is working from a linked checkout
743  - checkout: don't require a work tree when checking out into a new one
744  - git_path(): keep "info/sparse-checkout" per work-tree
745  - count-objects: report unused files in $GIT_DIR/worktrees/...
746  - gc: support prune --worktrees
747  - gc: factor out gc.pruneexpire parsing code
748  - gc: style change -- no SP before closing parenthesis
749  - checkout: clean up half-prepared directories in --to mode
750  - checkout: reject if the branch is already checked out elsewhere
751  - prune: strategies for linked checkouts
752  - checkout: support checking out into a new working directory
753  - use new wrapper write_file() for simple file writing
754  - wrapper.c: wrapper to open a file, fprintf then close
755  - setup.c: support multi-checkout repo setup
756  - setup.c: detect $GIT_COMMON_DIR check_repository_format_gently()
757  - setup.c: convert check_repository_format_gently to use strbuf
758  - setup.c: detect $GIT_COMMON_DIR in is_git_directory()
759  - setup.c: convert is_git_directory() to use strbuf
760  - git-stash: avoid hardcoding $GIT_DIR/logs/....
761  - *.sh: avoid hardcoding $GIT_DIR/hooks/...
762  - git-sh-setup.sh: use rev-parse --git-path to get $GIT_DIR/objects
763  - $GIT_COMMON_DIR: a new environment variable
764  - commit: use SEQ_DIR instead of hardcoding "sequencer"
765  - fast-import: use git_path() for accessing .git dir instead of get_git_dir()
766  - reflog: avoid constructing .lock path with git_path
767  - *.sh: respect $GIT_INDEX_FILE
768  - git_path(): be aware of file relocation in $GIT_DIR
769  - path.c: group git_path(), git_pathdup() and strbuf_git_path() together
770  - path.c: rename vsnpath() to do_git_path()
771  - git_snpath(): retire and replace with strbuf_git_path()
772  - path.c: make get_pathname() call sites return const char *
773  - path.c: make get_pathname() return strbuf instead of static buffer
775  A replacement for contrib/workdir/git-new-workdir that does not
776  rely on symbolic links and make sharing of objects and refs safer
777  by making the borrowee and borrowers aware of each other.
780 * nd/untracked-cache (2015-02-09) 24 commits
781  - git-status.txt: advertisement for untracked cache
782  - untracked cache: guard and disable on system changes
783  - mingw32: add uname()
784  - t7063: tests for untracked cache
785  - update-index: test the system before enabling untracked cache
786  - update-index: manually enable or disable untracked cache
787  - status: enable untracked cache
788  - untracked-cache: temporarily disable with $GIT_DISABLE_UNTRACKED_CACHE
789  - untracked cache: mark index dirty if untracked cache is updated
790  - untracked cache: print stats with $GIT_TRACE_UNTRACKED_STATS
791  - untracked cache: avoid racy timestamps
792  - read-cache.c: split racy stat test to a separate function
793  - untracked cache: invalidate at index addition or removal
794  - untracked cache: load from UNTR index extension
795  - untracked cache: save to an index extension
796  - ewah: add convenient wrapper ewah_serialize_strbuf()
797  - untracked cache: don't open non-existent .gitignore
798  - untracked cache: mark what dirs should be recursed/saved
799  - untracked cache: record/validate dir mtime and reuse cached output
800  - untracked cache: make a wrapper around {open,read,close}dir()
801  - untracked cache: invalidate dirs recursively if .gitignore changes
802  - untracked cache: initial untracked cache validation
803  - untracked cache: record .gitignore information and dir hierarchy
804  - dir.c: optionally compute sha-1 of a .gitignore file
806  Need extra set of eyes to review this.