What's cooking (2015/07 #05)
[alt-git.git] / whats-cooking.txt
blob2aa0f18ac4b81fdd21d36d9c7f6332329e5ba5fb
1 To: git@vger.kernel.org
2 Bcc: lwn@lwn.net
3 Subject: What's cooking in git.git (Jul 2015, #05; Mon, 20)
4 X-master-at: fbdeabf1f0992e41237caee8fc357849e0038a82
5 X-next-at: 76e840bed084a99e9de166e429c25bc0b2d6a698
7 What's cooking in git.git (Jul 2015, #05; Mon, 20)
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 You can find the changes described here in the integration branches
15 of the repositories listed at
17     http://git-blame.blogspot.com/p/git-public-repositories.html
19 --------------------------------------------------
20 [New Topics]
22 * zb/userdiff-fountain (2015-07-17) 1 commit
23  - userdiff: add support for Fountain documents
25  New userdiff pattern definition for fountain screenwriting markup
26  format.
28  Needs another reroll? ($gmane/274354)
31 * as/sparse-checkout-removal (2015-07-17) 1 commit
32  - unpack-trees: don't update files with CE_WT_REMOVE set
34  Duy's replacement needs to be applied ($gmane/274158).
37 * cb/uname-in-untracked (2015-07-17) 1 commit
38  - untracked: fix detection of uname(2) failure
40  An experimental "untracked cache" feature used to use uname(2) in a
41  slightly unportable way.
43  Will merge to 'next'.
46 * jc/rerere-multi (2015-07-20) 5 commits
47  - t4200: rerere a merge with two identical conflicts
48  - rerere: delay the recording of preimage for the first time
49  - rerere: handle leftover rr-cache/$ID directory and postimage files
50  - rerere: scan $GIT_DIR/rr-cache/$ID when instantiating a rerere_id
51  - rerere: split conflict ID further
52  (this branch uses jc/rerere.)
54  This is a contination of jc/rerere topic.
57 * bw/portability-solaris (2015-07-20) 3 commits
58  - tests: fix sed usage in tests to work around broken xpg4/sed on Solaris
59  - tests: fix sed usage in tests to work around broken xpg4/sed on Solaris
60  - tests: modify tr expressions so that xpg4/tr handles it on Solaris
62  Needs another reroll? ($gmane/274296)
65 * es/worktree-add (2015-07-20) 5 commits
66   (merged to 'next' on 2015-07-20 at 76e840b)
67  + config: rename "gc.pruneWorktreesExpire" to "gc.worktreePruneExpire"
68  + Documentation/git-worktree: wordsmith worktree-related manpages
69  + Documentation/config: fix stale "git prune --worktree" reference
70  + Documentation/git-worktree: fix incorrect reference to file "locked"
71  + Documentation/git-worktree: consistently use term "linked working tree"
72  (this branch is used by es/worktree-add-cleanup.)
74  Will merge to 'master'.
77 * sg/bash-prompt-untracked-optim (2015-07-20) 2 commits
78  - bash prompt: faster untracked status indicator with untracked directories
79  - bash prompt: test untracked files status indicator with untracked dirs
81  Will merge to 'next'.
83 --------------------------------------------------
84 [Graduated to "master"]
86 * jc/diff-ws-error-highlight (2015-07-12) 1 commit
87   (merged to 'next' on 2015-07-12 at 15b60ce)
88  + diff: parse ws-error-highlight option more strictly
90  A hotfix to a new feature in 2.5.0-rc.
93 * jk/still-interesting (2015-06-29) 1 commit
94   (merged to 'next' on 2015-07-09 at e19fc0e)
95  + revision.c: remove unneeded check for NULL
97  Code clean-up.
99  Will merge to 'master'.
101 --------------------------------------------------
102 [Stalled]
104 * sg/config-name-only (2015-05-28) 3 commits
105  - completion: use new 'git config' options to reliably list variable names
106  - SQUASH
107  - config: add options to list only variable names
109  "git config --list" output was hard to parse when values consist of
110  multiple lines.  Introduce a way to show only the keys.
112  Adding a single --name-only option may be a better way to go than
113  adding two new options.
115  Expecting a reroll.
118 * kk/log-merges-config (2015-04-21) 5 commits
119  - bash-completion: add support for git-log --merges= and log.merges
120  - t4202-log: add tests for --merges=
121  - Documentation: add git-log --merges= option and log.merges config. var
122  - log: honor log.merges= option
123  - revision: add --merges={show|only|hide} option
125  "git log" (but not other commands in the "log" family) learned to
126  pay attention to the log.merges configuration variable that can be
127  set to "show" (the normal behaviour), "only" (hide non-merge
128  commits), or "hide" (hide merge commits).  --merges=(show|only|hide)
129  can be used to override the setting from the command line.
131  The documentation may need to be updated once more ($gmane/267250).
132  Waiting for a reroll.
135 * mg/httpd-tests-update-for-apache-2.4 (2015-04-08) 2 commits
136  - t/lib-git-svn: check same httpd module dirs as lib-httpd
137  - t/lib-httpd: load mod_unixd
139  This is the first two commits in a three-patch series $gmane/266962
140  Will be rerolled.
141  with updated log message ($gmane/268061).
144 * mh/numparse (2015-03-19) 14 commits
145  - diff_opt_parse(): use convert_i() when handling --abbrev=<num>
146  - diff_opt_parse(): use convert_i() when handling "-l<num>"
147  - opt_arg(): simplify pointer handling
148  - opt_arg(): report errors parsing option values
149  - opt_arg(): use convert_i() in implementation
150  - opt_arg(): val is always non-NULL
151  - builtin_diff(): detect errors when parsing --unified argument
152  - handle_revision_opt(): use convert_ui() when handling "--abbrev="
153  - strtoul_ui(), strtol_i(): remove functions
154  - handle_revision_opt(): use convert_i() when handling "-<digit>"
155  - handle_revision_opt(): use skip_prefix() in many places
156  - write_subdirectory(): use convert_ui() for parsing mode
157  - cacheinfo_callback(): use convert_ui() when handling "--cacheinfo"
158  - numparse: new module for parsing integral numbers
160  Many codepaths use unchecked use of strtol() and friends (or even
161  worse, atoi()).  Introduce a set of wrappers that try to be more
162  careful.
164  Expecting a reroll.
165  ($gmane/268058).
168 * tf/gitweb-project-listing (2015-03-19) 5 commits
169  - gitweb: make category headings into links when they are directories
170  - gitweb: optionally set project category from its pathname
171  - gitweb: add a link under the search box to clear a project filter
172  - gitweb: if the PATH_INFO is incomplete, use it as a project_filter
173  - gitweb: fix typo in man page
175  Update gitweb to make it more pleasant to deal with a hierarchical
176  forest of repositories.
178  Any comments from those who use or have their own code in Gitweb?
181 * jc/a-lone-dash-stands-for-previous-branch (2015-03-16) 1 commit
182  - "-" and "@{-1}" on various programs
184  Lose special case code to make a lone dash "-" mean the previous
185  branch aka "@{-1}" from a handful subcommands, and instead support
186  the notation throughout the system by reimplementing it at the
187  revisions layer.
189  Needs tests, documentation updates, etc.  Also does only a half-way
190  job dealing with range notation, which needs to be fixed before the
191  series goes anywhere.
194 * nd/list-files (2015-02-09) 21 commits
195  - t3080: tests for git-list-files
196  - list-files: -M aka diff-cached
197  - list-files -F: show submodules with the new indicator '&'
198  - list-files: add -F/--classify
199  - list-files: show directories as well as files
200  - list-files: do not show duplicate cached entries
201  - list-files: sort output and remove duplicates
202  - list-files: add -t back
203  - list-files: add -1 short for --no-column
204  - list-files: add -R/--recursive short for --max-depth=-1
205  - list-files: -u does not imply showing stages
206  - list-files: make alias 'ls' default to 'list-files'
207  - list-files: a user friendly version of ls-files and more
208  - ls-files: support --max-depth
209  - ls-files: add --column
210  - ls-files: add --color to highlight file names
211  - ls-files: buffer full item in strbuf before printing
212  - ls_colors.c: highlight submodules like directories
213  - ls_colors.c: add a function to color a file name
214  - ls_colors.c: parse color.ls.* from config file
215  - ls_colors.c: add $LS_COLORS parsing code
217  A new "git list-files" Porcelain command, "ls-files" with bells and
218  whistles.
220  Reroll to base on wt-status work ($gmane/265142) has seen some
221  positive discussions.
223  Waiting for a further polished reroll ($gmane/265534).
226 * nd/pathspec-strip-fix (2015-04-18) 1 commit
227  - pathspec: adjust prefixlen after striping trailing slash
229  Does not quite fix ($gmane/267614).
230  Will discard.
233 * jc/diff-b-m (2015-02-23) 5 commits
234  . WIPWIP
235  . WIP: diff-b-m
236  - diffcore-rename: allow easier debugging
237  - diffcore-rename.c: add locate_rename_src()
238  - diffcore-break: allow debugging
240  "git diff -B -M" produced incorrect patch when the postimage of a
241  completely rewritten file is similar to the preimage of a removed
242  file; such a resulting file must not be expressed as a rename from
243  other place.
245  The fix in this patch is broken, unfortunately.
248 * pw/remote-set-url-fetch (2014-11-26) 1 commit
249  - remote: add --fetch and --both options to set-url
251  Expecting a reroll.
254 * tr/remerge-diff (2014-11-10) 9 commits
255  - t4213: avoid "|" in sed regexp
256  - log --remerge-diff: show what the conflict resolution changed
257  - name-hash: allow dir hashing even when !ignore_case
258  - merge-recursive: allow storing conflict hunks in index
259  - merge_diff_mode: fold all merge diff variants into an enum
260  - combine-diff: do not pass revs->dense_combined_merges redundantly
261  - merge-recursive: -Xindex-only to leave worktree unchanged
262  - merge-recursive: internal flag to avoid touching the worktree
263  - merge-recursive: remove dead conditional in update_stages()
265  "log -p" output learns a new way to let users inspect a merge
266  commit by showing the differences between the automerged result
267  with conflicts the person who recorded the merge would have seen
268  and the final conflict resolution that was recorded in the merge.
270  Waiting for a reroll.
271  ($gmane/256591).
274 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
275  - perf-lib: add test_perf_cleanup target
276  - perf-lib: split starting the test from the execution
278  Add test_perf_cleanup shell function to the perf suite, that allows
279  the script writers to define a test with a clean-up action.
281  Will hold.
284 * jc/show-branch (2014-03-24) 5 commits
285  - show-branch: use commit slab to represent bitflags of arbitrary width
286  - show-branch.c: remove "all_mask"
287  - show-branch.c: abstract out "flags" operation
288  - show-branch.c: lift all_mask/all_revs to a global static
289  - show-branch.c: update comment style
291  Waiting for the final step to lift the hard-limit.
293 --------------------------------------------------
294 [Cooking]
296 * es/worktree-add-cleanup (2015-07-20) 22 commits
297  - checkout: drop intimate knowledge of newly created worktree
298  - worktree: populate via "git reset --hard" rather than "git checkout"
299  - worktree: avoid resolving HEAD unnecessarily
300  - worktree: make setup of new HEAD distinct from worktree population
301  - worktree: detect branch-name/detached and error conditions locally
302  - worktree: add_worktree: construct worktree-population command locally
303  - worktree: elucidate environment variables intended for child processes
304  - worktree: make branch creation distinct from worktree population
305  - worktree: add: suppress auto-vivication with --detach and no <branch>
306  - worktree: make --detach mutually exclusive with -b/-B
307  - worktree: introduce options container
308  - worktree: simplify new branch (-b/-B) option checking
309  - worktree: improve worktree setup message
310  - branch: publish die_if_checked_out()
311  - checkout: teach check_linked_checkout() about symbolic link HEAD
312  - checkout: check_linked_checkout: simplify symref parsing
313  - checkout: check_linked_checkout: improve "already checked out" aesthetic
314  - checkout: generalize die_if_checked_out() branch name argument
315  - checkout: die_if_checked_out: simplify strbuf management
316  - checkout: improve die_if_checked_out() robustness
317  - checkout: name check_linked_checkouts() more meaningfully
318  - checkout: avoid resolving HEAD unnecessarily
319  (this branch uses es/worktree-add.)
321  Remove the "new-worktree-mode" hack in "checkout" that was added in
322  nd/multiple-work-trees topic by updating the implementation of new
323  "worktree add".
325  Will merge to 'next'.
328 * ib/scripted-parse-opt-better-hint-string (2015-07-15) 1 commit
329   (merged to 'next' on 2015-07-17 at 7bb1674)
330  + rev-parse --parseopt: allow [*=?!] in argument hints
332  The "rev-parse --parseopt" mode parsed the option specification
333  and the argument hint in a strange way to allow '=' and other
334  special characters in the option name while forbidding them from
335  the argument hint.  This made it impossible to define an option
336  like "--pair <key>=<value>" with "pair=key=value" specification,
337  which instead would have defined a "--pair=key <value>" option.
339  Will merge to 'master'.
342 * mh/fast-import-optimize-current-from (2015-07-13) 1 commit
343   (merged to 'next' on 2015-07-15 at 2be8b1f)
344  + fast-import: do less work when given "from" matches current branch head
346  Often a fast-import stream builds a new commit on top of the
347  previous commit it built, and it often unconditionally emits a
348  "from" command to specify the first parent, which can be omitted in
349  such a case.  This caused fast-import to forget the tree of the
350  previous commit and then re-read it from scratch, which was
351  inefficient.  Optimize for this common case.
353  Will merge to 'master'.
356 * mh/notes-allow-reading-treeish (2015-07-13) 1 commit
357  - notes: allow treeish expressions as notes ref
359  Some "git notes" operations, e.g. "git log --notes=<note>", should
360  be able to read notes from any tree-ish that is shaped like a notes
361  tree, but the notes infrastructure required that the argument must
362  be a ref under refs/notes/.  Loosen it to require a valid ref only
363  when the operation would update the notes (in which case we must
364  have a place to store the updated notes tree, iow, a ref).
366  Needs update to docs.
369 * dt/log-follow-config (2015-07-09) 1 commit
370   (merged to 'next' on 2015-07-10 at b8fbb43)
371  + log: add "log.follow" configuration variable
373  Add a new configuration variable to enable "--follow" automatically
374  when "git log" is run with one pathspec argument.
376  Will merge to 'master'.
379 * kn/tag-doc-fix (2015-07-10) 1 commit
380   (merged to 'next' on 2015-07-15 at 7bd6038)
381  + Documentation/tag: remove double occurance of "<pattern>"
383  Will merge to 'master'.
386 * se/doc-checkout-ours-theirs (2015-07-12) 1 commit
387  - checkout: document subtlety around --ours/--theirs
389  A "rebase" replays changes of the local branch on top of something
390  else, as such they are placed in stage #3 and referred to as
391  "theirs", while the changes in the new base, typically a foreign
392  work, are placed in stage #2 and referred to as "ours".  Clarify
393  the "checkout --ours/--theirs".
396 * pt/am-tests (2015-07-20) 12 commits
397  - t3901: test git-am encoding conversion
398  - t3418: non-interactive rebase --continue with rerere enabled
399  - t4150: tests for am --[no-]scissors
400  - t4150: am with post-applypatch hook
401  - t4150: am with pre-applypatch hook
402  - t4150: am with applypatch-msg hook
403  - t4150: am --resolved fails if index has unmerged entries
404  - t4150: am --resolved fails if index has no changes
405  - t4150: am refuses patches when paused
406  - t4151: am --abort will keep dirty index intact
407  - t4150: am fails if index is dirty
408  - t4150: am.messageid really adds the message id
410  Will merge to 'next'.
413 * kn/for-each-tag-branch (2015-07-13) 11 commits
414   (merged to 'next' on 2015-07-15 at bf5418f)
415  + for-each-ref: add '--contains' option
416  + ref-filter: implement '--contains' option
417  + parse-options.h: add macros for '--contains' option
418  + parse-option: rename parse_opt_with_commit()
419  + for-each-ref: add '--merged' and '--no-merged' options
420  + ref-filter: implement '--merged' and '--no-merged' options
421  + ref-filter: add parse_opt_merge_filter()
422  + for-each-ref: add '--points-at' option
423  + ref-filter: implement '--points-at' option
424  + tag: libify parse_opt_points_at()
425  + t6302: for-each-ref tests for ref-filter APIs
426  (this branch uses kn/for-each-ref.)
428  Port features over from tag -l and branch -l to for-each-ref
429  so that eventually the unified implementation can be used to
430  reimplement tag -l and branch -l, shared across all three, in
431  a follow-up series or two.
433  Will merge to 'master'.
436 * pt/am-builtin (2015-07-20) 46 commits
437  - builtin-am: remove redirection to git-am.sh
438  - builtin-am: check for valid committer ident
439  - builtin-am: implement legacy -b/--binary option
440  - builtin-am: implement -i/--interactive
441  - builtin-am: support and auto-detect mercurial patches
442  - builtin-am: support and auto-detect StGit series files
443  - builtin-am: support and auto-detect StGit patches
444  - builtin-am: rerere support
445  - builtin-am: invoke post-applypatch hook
446  - builtin-am: invoke pre-applypatch hook
447  - builtin-am: invoke applypatch-msg hook
448  - builtin-am: support automatic notes copying
449  - builtin-am: invoke post-rewrite hook
450  - builtin-am: implement -S/--gpg-sign, commit.gpgsign
451  - builtin-am: implement --committer-date-is-author-date
452  - builtin-am: implement --ignore-date
453  - builtin-am: pass git-apply's options to git-apply
454  - builtin-am: implement --[no-]scissors
455  - builtin-am: support --keep-cr, am.keepcr
456  - builtin-am: implement --[no-]message-id, am.messageid
457  - builtin-am: implement -k/--keep, --keep-non-patch
458  - builtin-am: implement -u/--utf8
459  - builtin-am: handle stray state directory
460  - builtin-am: bypass git-mailinfo when --rebasing
461  - builtin-am: implement --rebasing mode
462  - builtin-am: implement --3way, am.threeWay
463  - cache-tree: introduce write_index_as_tree()
464  - builtin-am: implement -s/--signoff
465  - builtin-am: exit with user friendly message on failure
466  - builtin-am: implement -q/--quiet
467  - builtin-am: reject patches when there's a session in progress
468  - builtin-am: implement --abort
469  - builtin-am: implement --skip
470  - builtin-am: don't parse mail when resuming
471  - builtin-am: implement --resolved/--continue
472  - builtin-am: refuse to apply patches if index is dirty
473  - builtin-am: implement committing applied patch
474  - builtin-am: apply patch with git-apply
475  - builtin-am: extract patch and commit info with git-mailinfo
476  - builtin-am: auto-detect mbox patches
477  - builtin-am: split out mbox/maildir patches with git-mailsplit
478  - builtin-am: implement patch queue mechanism
479  - builtin-am: implement skeletal builtin am
480  - wrapper: implement xfopen()
481  - wrapper: implement xopen()
482  - Merge branch 'pt/pull-builtin' into pt/am-builtin
483  (this branch uses pt/pull-builtin.)
485  Rewrite "am" in "C".
488 * ad/bisect-cleanup (2015-06-29) 6 commits
489   (merged to 'next' on 2015-07-09 at 75e2a06)
490  + bisect: don't mix option parsing and non-trivial code
491  + bisect: simplify the addition of new bisect terms
492  + bisect: replace hardcoded "bad|good" by variables
493  + Documentation/bisect: revise overall content
494  + Documentation/bisect: move getting help section to the end
495  + bisect: correction of typo
496  (this branch is used by ad/bisect-terms.)
498  Code and documentation clean-up to "git bisect".
500  Will merge to 'master'.
503 * mh/fast-import-get-mark (2015-07-01) 1 commit
504   (merged to 'next' on 2015-07-15 at 5e034b9)
505  + fast-import: add a get-mark command
507  Will merge to 'master'.
510 * kb/i18n-doc (2015-07-01) 1 commit
511   (merged to 'next' on 2015-07-09 at a12c7b3)
512  + Documentation/i18n.txt: clarify character encoding support
514  Will merge to 'master'.
517 * dt/refs-backend-preamble (2015-07-13) 7 commits
518  - git-stash: use update-ref --create-reflog instead of creating files
519  - update-ref and tag: add --create-reflog arg
520  - refs: add REF_FORCE_CREATE_REFLOG flag
521  - git-reflog: add exists command
522  - refs: new public ref function: safe_create_reflog
523  - refs: Break out check for reflog autocreation
524  - refs.c: add err arguments to reflog functions
526  In preparation for allowing different "backends" to store the refs
527  in a way different from the traditional "one ref per file in $GIT_DIR
528  or in a $GIT_DIR/packed-refs file" filesystem storage, reduce
529  direct filesystem access to ref-like things like CHERRY_PICK_HEAD
530  from scripts and programs.
532  Still under discussion.
534  Will hold.
537 * jk/date-mode-format (2015-06-29) 3 commits
538   (merged to 'next' on 2015-07-09 at a01bfc3)
539  + introduce "format" date-mode
540  + convert "enum date_mode" into a struct
541  + show-branch: use DATE_RELATIVE instead of magic number
543  Teach "git log" and friends a new "--date=format:..." option to
544  format timestamps using system's strftime(3).
546  Will merge to 'master'.
549 * nd/export-worktree (2015-06-26) 1 commit
550   (merged to 'next' on 2015-07-09 at 1581a9b)
551  + setup: set env $GIT_WORK_TREE when work tree is set, like $GIT_DIR
553  Running an aliased command from a subdirectory when the .git thing
554  in the working tree is a gitfile pointing elsewhere did not work.
556  Will merge to 'master'.
559 * jc/rerere (2015-07-18) 18 commits
560  - rerere: un-nest merge() further
561  - rerere: use "struct rerere_id" instead of "char *" for conflict ID
562  - rerere: call conflict-ids IDs
563  - rerere: further clarify do_rerere_one_path()
564  - rerere: further de-dent do_plain_rerere()
565  - rerere: refactor "replay" part of do_plain_rerere()
566  - rerere: explain the remainder
567  - rerere: explain "rerere forget" codepath
568  - rerere: explain the primary codepath
569  - rerere: explain MERGE_RR management helpers
570  - rerere: explain the rerere I/O abstraction
571  - rerere: stop looping unnecessarily
572  - rerere: drop want_sp parameter from is_cmarker()
573  - rerere: report autoupdated paths only after actually updating them
574  - rerere: write out each record of MERGE_RR in one go
575  - rerere: lift PATH_MAX limitation
576  - rerere: plug conflict ID leaks
577  - rerere: fix an off-by-one non-bug
578  (this branch is used by jc/rerere-multi.)
580  Code clean-up and minor fixes (so far).
583 * ad/bisect-terms (2015-06-29) 4 commits
584  - bisect: allow setting any user-specified in 'git bisect start'
585  - bisect: add 'git bisect terms' to view the current terms
586  - bisect: add the terms old/new
587  - bisect: sanity check on terms
588  (this branch uses ad/bisect-cleanup.)
590  The use of 'good/bad' in "git bisect" made it confusing to use when
591  hunting for a state change that is not a regression (e.g. bugfix).
592  The command learned 'old/new' and then allows the end user to
593  say e.g. "bisect start --term-old=fast --term=new=slow" to find a
594  performance regression.
596  Michael's idea to make 'good/bad' more intelligent does have
597  certain attractiveness ($gname/272867), and makes some of the work
598  on this topic a moot point.
600  Will hold.
603 * mh/tempfile (2015-06-10) 14 commits
604  - credential-cache--daemon: use tempfile module
605  - credential-cache--daemon: delete socket from main()
606  - gc: use tempfile module to handle gc.pid file
607  - lock_repo_for_gc(): compute the path to "gc.pid" only once
608  - diff: use tempfile module
609  - setup_temporary_shallow(): use tempfile module
610  - write_shared_index(): use tempfile module
611  - register_tempfile(): new function to handle an existing temporary file
612  - tempfile: add several functions for creating temporary files
613  - register_tempfile_object(): new function, extracted from create_tempfile()
614  - commit_lock_file(): use get_locked_file_path()
615  - lockfile: remove some redundant functions
616  - tempfile: a new module for handling temporary files
617  - Move lockfile API documentation to lockfile.h
619  Rebuild "lockfile" API on top of a new "tempfile" API.
620  This needs rerolling, to include "tempfile.h" in "lockfile.h", at
621  least.
623  Expecting a reroll.
624  ($gmane/271353)
627 * js/fsck-opt (2015-06-23) 19 commits
628   (merged to 'next' on 2015-07-10 at eb4da0a)
629  + fsck: support ignoring objects in `git fsck` via fsck.skiplist
630  + fsck: git receive-pack: support excluding objects from fsck'ing
631  + fsck: introduce `git fsck --connectivity-only`
632  + fsck: support demoting errors to warnings
633  + fsck: document the new receive.fsck.<msg-id> options
634  + fsck: allow upgrading fsck warnings to errors
635  + fsck: optionally ignore specific fsck issues completely
636  + fsck: disallow demoting grave fsck errors to warnings
637  + fsck: add a simple test for receive.fsck.<msg-id>
638  + fsck: make fsck_tag() warn-friendly
639  + fsck: handle multiple authors in commits specially
640  + fsck: make fsck_commit() warn-friendly
641  + fsck: make fsck_ident() warn-friendly
642  + fsck: report the ID of the error/warning
643  + fsck (receive-pack): allow demoting errors to warnings
644  + fsck: offer a function to demote fsck errors to warnings
645  + fsck: provide a function to parse fsck message IDs
646  + fsck: introduce identifiers for fsck messages
647  + fsck: introduce fsck options
649  Allow ignoring fsck errors on specific set of known-to-be-bad
650  objects, and also tweaking warning level of various kinds of non
651  critical breakages reported.
653  Will merge to 'master'.
656 * ak/format-patch-odir-config (2015-06-19) 1 commit
657  - format-patch: introduce format.outputDirectory configuration
659  Reroll exists but didn't pick it up as it seems to be still
660  collecting review comments.
662  Expecting a reroll.
663  ($gmane/272180).
666 * bc/gpg-verify-raw (2015-06-22) 7 commits
667   (merged to 'next' on 2015-06-24 at 08a1164)
668  + verify-tag: add option to print raw gpg status information
669  + verify-commit: add option to print raw gpg status information
670  + gpg: centralize printing signature buffers
671  + gpg: centralize signature check
672  + verify-commit: add test for exit status on untrusted signature
673  + verify-tag: share code with verify-commit
674  + verify-tag: add tests
676  "git verify-tag" and "git verify-commit" have been taught to share
677  more code, and then learned to optionally show the verification
678  message from the underlying GPG implementation.
680  Will merge to 'master'.
683 * cb/parse-magnitude (2015-06-22) 2 commits
684   (merged to 'next' on 2015-06-24 at 2fd7205)
685  + parse-options: move unsigned long option parsing out of pack-objects.c
686  + test-parse-options: update to handle negative ints
688  Move machinery to parse human-readable scaled numbers like 1k, 4M,
689  and 2G as an option parameter's value from pack-objects to
690  parse-options API, to make it available to other codepaths.
692  Will merge to 'master'.
695 * jk/cat-file-batch-all (2015-06-26) 8 commits
696   (merged to 'next' on 2015-07-10 at 80200cc)
697  + cat-file: sort and de-dup output of --batch-all-objects
698  + cat-file: add --batch-all-objects option
699  + cat-file: split batch_one_object into two stages
700  + cat-file: stop returning value from batch_one_object
701  + cat-file: add --buffer option
702  + cat-file: move batch_options definition to top of file
703  + cat-file: minor style fix in options list
704  + Merge branch 'jk/maint-for-each-packed-object' into jk/cat-file-batch-all
706  "cat-file" learned "--batch-all-objects" option to enumerate all
707  available objects in the repository more quickly than "rev-list
708  --all --objects" (the output includes unreachable objects, though).
710  Will merge to 'master'.
713 * jk/pkt-log-pack (2015-06-16) 3 commits
714   (merged to 'next' on 2015-07-10 at ba33212)
715  + pkt-line: support tracing verbatim pack contents
716  + pkt-line: tighten sideband PACK check when tracing
717  + pkt-line: simplify starts_with checks in packet tracing
719  Enhance packet tracing machinery to allow capturing an incoming
720  pack data to a file for debugging.
722  Will merge to 'master'.
725 * kn/for-each-ref (2015-06-15) 11 commits
726   (merged to 'next' on 2015-06-24 at 1a3a734)
727  + ref-filter: make 'ref_array_item' use a FLEX_ARRAY for refname
728  + for-each-ref: introduce filter_refs()
729  + ref-filter: move code from 'for-each-ref'
730  + ref-filter: add 'ref-filter.h'
731  + for-each-ref: rename variables called sort to sorting
732  + for-each-ref: rename some functions and make them public
733  + for-each-ref: introduce 'ref_array_clear()'
734  + for-each-ref: introduce new structures for better organisation
735  + for-each-ref: rename 'refinfo' to 'ref_array_item'
736  + for-each-ref: clean up code
737  + for-each-ref: extract helper functions out of grab_single_ref()
738  (this branch is used by kn/for-each-tag-branch.)
740  GSoC project to rebuild ref listing by branch and tag based on the
741  for-each-ref machinery.  This is its first part.
743  Will merge to 'master'.
746 * mh/init-delete-refs-api (2015-06-22) 19 commits
747   (merged to 'next' on 2015-07-10 at 121b26e)
748  + delete_ref(): use the usual convention for old_sha1
749  + cmd_update_ref(): make logic more straightforward
750  + update_ref(): don't read old reference value before delete
751  + check_branch_commit(): make first parameter const
752  + refs.h: add some parameter names to function declarations
753  + refs: move the remaining ref module declarations to refs.h
754  + initial_ref_transaction_commit(): check for ref D/F conflicts
755  + initial_ref_transaction_commit(): check for duplicate refs
756  + refs: remove some functions from the module's public interface
757  + initial_ref_transaction_commit(): function for initial ref creation
758  + repack_without_refs(): make function private
759  + prune_refs(): use delete_refs()
760  + prune_remote(): use delete_refs()
761  + delete_refs(): bail early if the packed-refs file cannot be rewritten
762  + delete_refs(): make error message more generic
763  + delete_refs(): new function for the refs API
764  + delete_ref(): handle special case more explicitly
765  + remove_branches(): remove temporary
766  + delete_ref(): move declaration to refs.h
768  Clean up refs API and make "git clone" less intimate with the
769  implementation detail.
771  Will merge to 'master'.
774 * mh/replace-refs (2015-06-12) 1 commit
775   (merged to 'next' on 2015-06-24 at cb13adf)
776  + Allow to control where the replace refs are looked for
778  Add an environment variable to tell Git to look into refs hierarchy
779  other than refs/replace/ for the object replacement data.
781  Will merge to 'master'.
784 * gp/status-rebase-i-info (2015-07-06) 4 commits
785   (merged to 'next' on 2015-07-10 at b121298)
786  + status: add new tests for status during rebase -i
787  + status: give more information during rebase -i
788  + status: differentiate interactive from non-interactive rebases
789  + status: factor two rebase-related messages together
791  Teach "git status" to show a more detailed information regarding
792  the "rebase -i" session in progress.
794  Will merge to 'master'.
797 * mk/utf8-no-iconv-warn (2015-06-08) 1 commit
798  - utf8.c: print warning about disabled iconv
800  Warn when a reencoding is requested in a build without iconv
801  support, as the end user is likely to get an unexpected result.  I
802  think the same level of safety should be added to a build with
803  iconv support when the specified encoding is not available, but the
804  patch does not go there.
806  Expecting a reroll.
809 * mr/rebase-i-customize-insn-sheet (2015-06-15) 1 commit
810   (merged to 'next' on 2015-07-10 at ec383cd)
811  + git-rebase--interactive.sh: add config option for custom instruction format
813  "git rebase -i"'s list of todo is made configurable.
815  Will merge to 'master'.
818 * pt/am-foreign (2015-06-15) 5 commits
819   (merged to 'next' on 2015-06-24 at 838c702)
820  + am: teach mercurial patch parser how to read from stdin
821  + am: use gmtime() to parse mercurial patch date
822  + t4150: test applying StGit series
823  + am: teach StGit patch parser how to read from stdin
824  + t4150: test applying StGit patch
826  Various enhancements around "git am" reading patches generated by
827  foreign SCM.
829  Will merge to 'master'.
832 * pt/pull-builtin (2015-06-18) 19 commits
833   (merged to 'next' on 2015-07-10 at 07b1794)
834  + pull: remove redirection to git-pull.sh
835  + pull --rebase: error on no merge candidate cases
836  + pull --rebase: exit early when the working directory is dirty
837  + pull: configure --rebase via branch.<name>.rebase or pull.rebase
838  + pull: teach git pull about --rebase
839  + pull: set reflog message
840  + pull: implement pulling into an unborn branch
841  + pull: fast-forward working tree if head is updated
842  + pull: check if in unresolved merge state
843  + pull: support pull.ff config
844  + pull: error on no merge candidates
845  + pull: pass git-fetch's options to git-fetch
846  + pull: pass git-merge's options to git-merge
847  + pull: pass verbosity, --progress flags to fetch and merge
848  + pull: implement fetch + merge
849  + pull: implement skeletal builtin pull
850  + argv-array: implement argv_array_pushv()
851  + parse-options-cb: implement parse_opt_passthru_argv()
852  + parse-options-cb: implement parse_opt_passthru()
853  (this branch is used by pt/am-builtin.)
855  Reimplement 'git pull' in C.
857  Will merge to 'master'.
860 * rl/send-email-aliases (2015-07-07) 10 commits
861   (merged to 'next' on 2015-07-09 at c60553d)
862  + send-email: suppress meaningless whitespaces in from field
863  + send-email: allow multiple emails using --cc, --to and --bcc
864  + send-email: consider quote as delimiter instead of character
865  + send-email: reduce dependencies impact on parse_address_line
866  + send-email: minor code refactoring
867  + send-email: allow use of aliases in the From field of --compose mode
868  + send-email: refactor address list process
869  + t9001-send-email: refactor header variable fields replacement
870  + send-email: allow aliases in patch header and command script outputs
871  + t9001-send-email: move script creation in a setup test
873  "git send-email" now performs alias-expansion on names that are
874  given via --cccmd, etc.
876  This round comes with a lot more enhanced e-mail address parser,
877  which makes it a bit scary, but as long as it works as designed, it
878  makes it wonderful ;-).
880  Will merge to 'master'.
883 * wp/sha1-name-negative-match (2015-06-08) 2 commits
884  - sha1_name.c: introduce '^{/!-<negative pattern>}' notation
885  - test for '!' handling in rev-parse's named commits
887  Introduce "branch^{/!-<pattern>}" notation to name a commit
888  reachable from branch that does not match the given pattern.
890  Expecting a reroll.
893 * bc/object-id (2015-06-17) 10 commits
894  . remote.c: use struct object_id in many functions
895  . object-id: use struct object_id in struct object
896  . remote.c: use struct object_id in ref_newer()
897  . transport-helper.c: use struct object_id in push_refs_with_export()
898  . connect.c: use struct object_id in get_remote_heads()
899  . remote-curl: use struct object_id in parse_fetch()
900  . fetch-pack: use struct object_id in add_sought_entry_mem()
901  . object_id: convert struct ref to use object_id.
902  . sha1_file: introduce has_object_file() helper
903  . refs: convert some internal functions to use object_id
905  More transition from "unsigned char[40]" to "struct object_id".
907  While GSoC and other topics are actively moving existing code
908  around, this cannot go in; ejected from 'pu'.
911 * jk/log-missing-default-HEAD (2015-06-03) 1 commit
912  - log: diagnose empty HEAD more clearly
914  "git init empty && git -C empty log" said "bad default revision 'HEAD'",
915  which was found to be a bit confusing to new users.
917  What's the status of this one?
920 * gr/rebase-i-drop-warn (2015-06-30) 3 commits
921   (merged to 'next' on 2015-07-15 at 6f4f2c8)
922  + git rebase -i: add static check for commands and SHA-1
923  + git rebase -i: warn about removed commits
924  + git-rebase -i: add command "drop" to remove a commit
926  Add "drop commit-object-name subject" command as another way to
927  skip replaying of a commit in "rebase -i", and then punish those
928  who do not use it (and instead just remove the lines) by throwing
929  a warning.
931  Will merge to 'master'.
934 * jh/strbuf-read-use-read-in-full (2015-06-01) 1 commit
935  - strbuf_read(): skip unnecessary strbuf_grow() at eof
937  Avoid one extra iteration and strbuf_grow() of 8kB in
938  strbuf_read().
940  Looked reasonable; perhaps a log message clarification is needed.
942  Expecting a reroll.
945 * mg/index-read-error-messages (2015-06-01) 2 commits
946  - messages: uniform error messages for index write
947  - show-index: uniform error messages for index read
949  The tip was RFC.
950  Expecting a reroll.
953 * hv/submodule-config (2015-06-15) 4 commits
954  - do not die on error of parsing fetchrecursesubmodules option
955  - use new config API for worktree configurations of submodules
956  - extract functions for submodule config set and lookup
957  - implement submodule config API for lookup of .gitmodules values
959  The gitmodules API accessed from the C code learned to cache stuff
960  lazily.
962  Needs another reroll? ($gmane/273743).
965 * jc/push-tags-also (2015-05-29) 1 commit
966  - push --tags: push tags *in addition to* other stuff
968  "git fetch --tags" learned to fetch tags in addition to other stuff
969  a few years ago, but "git push --tags" didn't.  Now it does.
971  A change to push out more than before always invites "what if the
972  user makes a mistake" worries.
974  Will discard.
977 * jc/commit-slab (2015-05-22) 1 commit
978   (merged to 'next' on 2015-07-15 at 4c83475)
979  + commit-slab: introduce slabname##_peek() function
981  Memory use reduction when commit-slab facility is used to annotate
982  sparsely (which is not recommended in the first place).
984  Will merge to 'master'.
987 * jc/clone-bundle (2015-04-30) 1 commit
988  - repack: optionally create a clone.bundle
990  Waiting for further work.
991  Still an early WIP.
994 * ee/clean-remove-dirs (2015-06-26) 6 commits
995   (merged to 'next' on 2015-06-29 at d595659)
996  + read_gitfile_gently: fix use-after-free
997   (merged to 'next' on 2015-06-24 at 7c27821)
998  + clean: improve performance when removing lots of directories
999  + p7300: add performance tests for clean
1000  + t7300: add tests to document behavior of clean and nested git
1001  + setup: sanity check file size in read_gitfile_gently
1002  + setup: add gentle version of read_gitfile
1004  Replace "is this subdirectory a separate repository that should not
1005  be touched?" check "git clean" does by checking if it has .git/HEAD
1006  using the submodule-related code with a more optimized check.
1008  Will merge to 'master'.
1011 * jc/merge-drop-old-syntax (2015-04-29) 1 commit
1012   (merged to 'next' on 2015-05-28 at 6bfd8b9)
1013  + merge: drop 'git merge <message> HEAD <commit>' syntax
1015  Stop supporting "git merge <message> HEAD <commit>" syntax that
1016  has been deprecated since October 2007.
1018  Will keep in 'next' during the 2.5 cycle.