1 To: git@vger.kernel.org
3 Subject: What's cooking in git.git (Jul 2015, #07; Mon, 27)
4 X-master-at: a17c56c056d5fea0843b429132904c429a900229
5 X-next-at: 0029c496ce1b91f10b75ade16604b8e9f5d8d20b
7 What's cooking in git.git (Jul 2015, #07; Mon, 27)
8 --------------------------------------------------
10 Here are the topics that have been cooking. Commits prefixed with
11 '-' are only in 'pu' (proposed updates) while commits prefixed with
14 Git 2.5 final was tagged and tarballs were pushed out. Accumulated
15 fixes also went to a new maintenance release 2.4.7. Let's wait and
16 see for a few days for any regressions before opening the 'master'
17 branch for topics that have been waiting in 'next', as usual.
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 --------------------------------------------------
27 * da/subtree-date-confusion (2015-07-23) 1 commit
28 - contrib/subtree: ignore log.date configuration
30 "git subtree" (in contrib/) depended on "git log" output to be
31 stable, which was a no-no. Apply a workaround to force a
32 particular date format.
37 * db/send-pack-user-signingkey (2015-07-21) 1 commit
38 - builtin/send-pack.c: respect user.signingkey
40 The low-level "git send-pack" did not honor 'user.signingkey'
41 configuration variable when sending a signed-push.
46 * jk/refspec-parse-wildcard (2015-07-27) 2 commits
47 - refs: loosen restriction on wildcard "*" refspecs
48 - refs: cleanup comments regarding check_refname_component()
50 Allow an asterisk as a substring (as opposed to the entirety) of
51 a path component for both side of a refspec, e.g.
52 "refs/heads/o*:refs/remotes/heads/i*".
57 * jx/do-not-crash-receive-pack-wo-head (2015-07-22) 1 commit
58 - receive-pack: crash when checking with non-exist HEAD
63 * kd/pull-rebase-autostash (2015-07-22) 1 commit
64 - pull: allow dirty tree when rebase.autostash enabled
65 (this branch uses pt/pull-builtin; is tangled with pt/am-builtin.)
67 Teach "git pull --rebase" to pay attention to rebase.autostash
71 * es/doc-clean-outdated-tools (2015-07-25) 5 commits
72 - Documentation/git-tools: drop references to defunct tools
73 - Documentation/git-tools: drop references to defunct tools
74 - Documentation/git-tools: fix item text formatting
75 - Documentation/git-tools: improve discoverability of Git wiki
76 - Documentation/git: drop outdated Cogito reference
80 --------------------------------------------------
83 * jc/clone-bundle (2015-04-30) 1 commit
84 - repack: optionally create a clone.bundle
86 Waiting for further work.
90 * jh/strbuf-read-use-read-in-full (2015-06-01) 1 commit
91 - strbuf_read(): skip unnecessary strbuf_grow() at eof
93 Avoid one extra iteration and strbuf_grow() of 8kB in
96 Looked reasonable; perhaps a log message clarification is needed.
101 * mg/index-read-error-messages (2015-06-01) 2 commits
102 - messages: uniform error messages for index write
103 - show-index: uniform error messages for index read
109 * hv/submodule-config (2015-06-15) 4 commits
110 - do not die on error of parsing fetchrecursesubmodules option
111 - use new config API for worktree configurations of submodules
112 - extract functions for submodule config set and lookup
113 - implement submodule config API for lookup of .gitmodules values
115 The gitmodules API accessed from the C code learned to cache stuff
118 Needs another reroll? ($gmane/273743).
121 * jk/log-missing-default-HEAD (2015-06-03) 1 commit
122 - log: diagnose empty HEAD more clearly
124 "git init empty && git -C empty log" said "bad default revision 'HEAD'",
125 which was found to be a bit confusing to new users.
127 What's the status of this one?
130 * bc/object-id (2015-06-17) 10 commits
131 . remote.c: use struct object_id in many functions
132 . object-id: use struct object_id in struct object
133 . remote.c: use struct object_id in ref_newer()
134 . transport-helper.c: use struct object_id in push_refs_with_export()
135 . connect.c: use struct object_id in get_remote_heads()
136 . remote-curl: use struct object_id in parse_fetch()
137 . fetch-pack: use struct object_id in add_sought_entry_mem()
138 . object_id: convert struct ref to use object_id.
139 . sha1_file: introduce has_object_file() helper
140 . refs: convert some internal functions to use object_id
142 More transition from "unsigned char[40]" to "struct object_id".
144 While GSoC and other topics are actively moving existing code
145 around, this cannot go in; ejected from 'pu'.
148 * wp/sha1-name-negative-match (2015-06-08) 2 commits
149 - sha1_name.c: introduce '^{/!-<negative pattern>}' notation
150 - test for '!' handling in rev-parse's named commits
152 Introduce "branch^{/!-<pattern>}" notation to name a commit
153 reachable from branch that does not match the given pattern.
158 * mk/utf8-no-iconv-warn (2015-06-08) 1 commit
159 - utf8.c: print warning about disabled iconv
161 Warn when a reencoding is requested in a build without iconv
162 support, as the end user is likely to get an unexpected result. I
163 think the same level of safety should be added to a build with
164 iconv support when the specified encoding is not available, but the
165 patch does not go there.
170 * ak/format-patch-odir-config (2015-06-19) 1 commit
171 - format-patch: introduce format.outputDirectory configuration
173 Reroll exists but didn't pick it up as it seemed to be still
174 collecting review comments.
180 * mh/tempfile (2015-06-10) 14 commits
181 - credential-cache--daemon: use tempfile module
182 - credential-cache--daemon: delete socket from main()
183 - gc: use tempfile module to handle gc.pid file
184 - lock_repo_for_gc(): compute the path to "gc.pid" only once
185 - diff: use tempfile module
186 - setup_temporary_shallow(): use tempfile module
187 - write_shared_index(): use tempfile module
188 - register_tempfile(): new function to handle an existing temporary file
189 - tempfile: add several functions for creating temporary files
190 - register_tempfile_object(): new function, extracted from create_tempfile()
191 - commit_lock_file(): use get_locked_file_path()
192 - lockfile: remove some redundant functions
193 - tempfile: a new module for handling temporary files
194 - Move lockfile API documentation to lockfile.h
196 Rebuild "lockfile" API on top of a new "tempfile" API.
197 This needs rerolling, to include "tempfile.h" in "lockfile.h", at
204 * ad/bisect-terms (2015-06-29) 4 commits
205 - bisect: allow setting any user-specified in 'git bisect start'
206 - bisect: add 'git bisect terms' to view the current terms
207 - bisect: add the terms old/new
208 - bisect: sanity check on terms
209 (this branch uses ad/bisect-cleanup.)
211 The use of 'good/bad' in "git bisect" made it confusing to use when
212 hunting for a state change that is not a regression (e.g. bugfix).
213 The command learned 'old/new' and then allows the end user to
214 say e.g. "bisect start --term-old=fast --term=new=slow" to find a
215 performance regression.
217 Michael's idea to make 'good/bad' more intelligent does have
218 certain attractiveness ($gname/272867), and makes some of the work
219 on this topic a moot point.
224 * mh/notes-allow-reading-treeish (2015-07-13) 1 commit
225 - notes: allow treeish expressions as notes ref
227 Some "git notes" operations, e.g. "git log --notes=<note>", should
228 be able to read notes from any tree-ish that is shaped like a notes
229 tree, but the notes infrastructure required that the argument must
230 be a ref under refs/notes/. Loosen it to require a valid ref only
231 when the operation would update the notes (in which case we must
232 have a place to store the updated notes tree, iow, a ref).
234 Needs update to docs.
237 * sg/config-name-only (2015-05-28) 3 commits
238 - completion: use new 'git config' options to reliably list variable names
240 - config: add options to list only variable names
242 "git config --list" output was hard to parse when values consist of
243 multiple lines. Introduce a way to show only the keys.
245 Adding a single --name-only option may be a better way to go than
246 adding two new options.
251 * kk/log-merges-config (2015-04-21) 5 commits
252 - bash-completion: add support for git-log --merges= and log.merges
253 - t4202-log: add tests for --merges=
254 - Documentation: add git-log --merges= option and log.merges config. var
255 - log: honor log.merges= option
256 - revision: add --merges={show|only|hide} option
258 "git log" (but not other commands in the "log" family) learned to
259 pay attention to the log.merges configuration variable that can be
260 set to "show" (the normal behaviour), "only" (hide non-merge
261 commits), or "hide" (hide merge commits). --merges=(show|only|hide)
262 can be used to override the setting from the command line.
264 The documentation may need to be updated once more ($gmane/267250).
265 Waiting for a reroll.
268 * mg/httpd-tests-update-for-apache-2.4 (2015-04-08) 2 commits
269 - t/lib-git-svn: check same httpd module dirs as lib-httpd
270 - t/lib-httpd: load mod_unixd
272 This is the first two commits in a three-patch series $gmane/266962
274 with updated log message ($gmane/268061).
277 * mh/numparse (2015-03-19) 14 commits
278 - diff_opt_parse(): use convert_i() when handling --abbrev=<num>
279 - diff_opt_parse(): use convert_i() when handling "-l<num>"
280 - opt_arg(): simplify pointer handling
281 - opt_arg(): report errors parsing option values
282 - opt_arg(): use convert_i() in implementation
283 - opt_arg(): val is always non-NULL
284 - builtin_diff(): detect errors when parsing --unified argument
285 - handle_revision_opt(): use convert_ui() when handling "--abbrev="
286 - strtoul_ui(), strtol_i(): remove functions
287 - handle_revision_opt(): use convert_i() when handling "-<digit>"
288 - handle_revision_opt(): use skip_prefix() in many places
289 - write_subdirectory(): use convert_ui() for parsing mode
290 - cacheinfo_callback(): use convert_ui() when handling "--cacheinfo"
291 - numparse: new module for parsing integral numbers
293 Many codepaths use unchecked use of strtol() and friends (or even
294 worse, atoi()). Introduce a set of wrappers that try to be more
301 * jc/a-lone-dash-stands-for-previous-branch (2015-03-16) 1 commit
302 - "-" and "@{-1}" on various programs
304 Lose special case code to make a lone dash "-" mean the previous
305 branch aka "@{-1}" from a handful subcommands, and instead support
306 the notation throughout the system by reimplementing it at the
309 Needs tests, documentation updates, etc. Also does only a half-way
310 job dealing with range notation, which needs to be fixed before the
311 series goes anywhere.
314 * nd/list-files (2015-02-09) 21 commits
315 - t3080: tests for git-list-files
316 - list-files: -M aka diff-cached
317 - list-files -F: show submodules with the new indicator '&'
318 - list-files: add -F/--classify
319 - list-files: show directories as well as files
320 - list-files: do not show duplicate cached entries
321 - list-files: sort output and remove duplicates
322 - list-files: add -t back
323 - list-files: add -1 short for --no-column
324 - list-files: add -R/--recursive short for --max-depth=-1
325 - list-files: -u does not imply showing stages
326 - list-files: make alias 'ls' default to 'list-files'
327 - list-files: a user friendly version of ls-files and more
328 - ls-files: support --max-depth
329 - ls-files: add --column
330 - ls-files: add --color to highlight file names
331 - ls-files: buffer full item in strbuf before printing
332 - ls_colors.c: highlight submodules like directories
333 - ls_colors.c: add a function to color a file name
334 - ls_colors.c: parse color.ls.* from config file
335 - ls_colors.c: add $LS_COLORS parsing code
337 A new "git list-files" Porcelain command, "ls-files" with bells and
340 Reroll to base on wt-status work ($gmane/265142) has seen some
341 positive discussions.
343 Waiting for a further polished reroll ($gmane/265534).
346 * nd/pathspec-strip-fix (2015-04-18) 1 commit
347 - pathspec: adjust prefixlen after striping trailing slash
349 Does not quite fix ($gmane/267614).
353 * jc/diff-b-m (2015-02-23) 5 commits
356 - diffcore-rename: allow easier debugging
357 - diffcore-rename.c: add locate_rename_src()
358 - diffcore-break: allow debugging
360 "git diff -B -M" produced incorrect patch when the postimage of a
361 completely rewritten file is similar to the preimage of a removed
362 file; such a resulting file must not be expressed as a rename from
365 The fix in this patch is broken, unfortunately.
368 * pw/remote-set-url-fetch (2014-11-26) 1 commit
369 - remote: add --fetch and --both options to set-url
374 * tr/remerge-diff (2014-11-10) 9 commits
375 - t4213: avoid "|" in sed regexp
376 - log --remerge-diff: show what the conflict resolution changed
377 - name-hash: allow dir hashing even when !ignore_case
378 - merge-recursive: allow storing conflict hunks in index
379 - merge_diff_mode: fold all merge diff variants into an enum
380 - combine-diff: do not pass revs->dense_combined_merges redundantly
381 - merge-recursive: -Xindex-only to leave worktree unchanged
382 - merge-recursive: internal flag to avoid touching the worktree
383 - merge-recursive: remove dead conditional in update_stages()
385 "log -p" output learns a new way to let users inspect a merge
386 commit by showing the differences between the automerged result
387 with conflicts the person who recorded the merge would have seen
388 and the final conflict resolution that was recorded in the merge.
390 Waiting for a reroll.
394 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
395 - perf-lib: add test_perf_cleanup target
396 - perf-lib: split starting the test from the execution
398 Add test_perf_cleanup shell function to the perf suite, that allows
399 the script writers to define a test with a clean-up action.
404 * jc/show-branch (2014-03-24) 5 commits
405 - show-branch: use commit slab to represent bitflags of arbitrary width
406 - show-branch.c: remove "all_mask"
407 - show-branch.c: abstract out "flags" operation
408 - show-branch.c: lift all_mask/all_revs to a global static
409 - show-branch.c: update comment style
411 Waiting for the final step to lift the hard-limit.
413 --------------------------------------------------
416 * zb/userdiff-fountain (2015-07-23) 1 commit
417 (merged to 'next' on 2015-07-23 at e177995)
418 + userdiff: add support for Fountain documents
420 New userdiff pattern definition for fountain screenwriting markup
423 Will merge to 'master'.
426 * as/sparse-checkout-removal (2015-07-21) 1 commit
427 (merged to 'next' on 2015-07-21 at ab94680)
428 + unpack-trees: don't update files with CE_WT_REMOVE set
430 "sparse checkout" misbehaved for a path that is excluded from the
431 checkout when switching between branches that differ at the path.
433 Will merge to 'master'.
436 * cb/uname-in-untracked (2015-07-17) 1 commit
437 (merged to 'next' on 2015-07-21 at d867af0)
438 + untracked: fix detection of uname(2) failure
440 An experimental "untracked cache" feature used uname(2) in a
441 slightly unportable way.
443 Will merge to 'master'.
446 * bw/portability-solaris (2015-07-20) 3 commits
447 - tests: fix sed usage in tests to work around broken xpg4/sed on Solaris
448 - tests: fix sed usage in tests to work around broken xpg4/sed on Solaris
449 - tests: modify tr expressions so that xpg4/tr handles it on Solaris
451 Needs another reroll? ($gmane/274296)
454 * es/worktree-add (2015-07-20) 5 commits
455 (merged to 'next' on 2015-07-20 at 76e840b)
456 + config: rename "gc.pruneWorktreesExpire" to "gc.worktreePruneExpire"
457 + Documentation/git-worktree: wordsmith worktree-related manpages
458 + Documentation/config: fix stale "git prune --worktree" reference
459 + Documentation/git-worktree: fix incorrect reference to file "locked"
460 + Documentation/git-worktree: consistently use term "linked working tree"
461 (this branch is used by es/worktree-add-cleanup.)
463 Will merge to 'master'.
466 * sg/bash-prompt-untracked-optim (2015-07-20) 2 commits
467 (merged to 'next' on 2015-07-21 at e151fb7)
468 + bash prompt: faster untracked status indicator with untracked directories
469 + bash prompt: test untracked files status indicator with untracked dirs
471 Will merge to 'master'.
474 * es/worktree-add-cleanup (2015-07-24) 24 commits
475 - Documentation/config: mention "now" and "never" for 'expire' settings
476 (merged to 'next' on 2015-07-27 at 25f086d)
477 + Documentation/git-worktree: fix broken 'linkgit' invocation
478 (merged to 'next' on 2015-07-23 at ecb1e1a)
479 + checkout: drop intimate knowledge of newly created worktree
480 + worktree: populate via "git reset --hard" rather than "git checkout"
481 + worktree: avoid resolving HEAD unnecessarily
482 + worktree: make setup of new HEAD distinct from worktree population
483 + worktree: detect branch-name/detached and error conditions locally
484 + worktree: add_worktree: construct worktree-population command locally
485 + worktree: elucidate environment variables intended for child processes
486 + worktree: make branch creation distinct from worktree population
487 + worktree: add: suppress auto-vivication with --detach and no <branch>
488 + worktree: make --detach mutually exclusive with -b/-B
489 + worktree: introduce options container
490 + worktree: simplify new branch (-b/-B) option checking
491 + worktree: improve worktree setup message
492 + branch: publish die_if_checked_out()
493 + checkout: teach check_linked_checkout() about symbolic link HEAD
494 + checkout: check_linked_checkout: simplify symref parsing
495 + checkout: check_linked_checkout: improve "already checked out" aesthetic
496 + checkout: generalize die_if_checked_out() branch name argument
497 + checkout: die_if_checked_out: simplify strbuf management
498 + checkout: improve die_if_checked_out() robustness
499 + checkout: name check_linked_checkouts() more meaningfully
500 + checkout: avoid resolving HEAD unnecessarily
501 (this branch uses es/worktree-add.)
503 Remove the "new-worktree-mode" hack in "checkout" that was added in
504 nd/multiple-work-trees topic by updating the implementation of new
510 * ib/scripted-parse-opt-better-hint-string (2015-07-15) 1 commit
511 (merged to 'next' on 2015-07-17 at 7bb1674)
512 + rev-parse --parseopt: allow [*=?!] in argument hints
514 The "rev-parse --parseopt" mode parsed the option specification
515 and the argument hint in a strange way to allow '=' and other
516 special characters in the option name while forbidding them from
517 the argument hint. This made it impossible to define an option
518 like "--pair <key>=<value>" with "pair=key=value" specification,
519 which instead would have defined a "--pair=key <value>" option.
521 Will merge to 'master'.
524 * mh/fast-import-optimize-current-from (2015-07-13) 1 commit
525 (merged to 'next' on 2015-07-15 at 2be8b1f)
526 + fast-import: do less work when given "from" matches current branch head
528 Often a fast-import stream builds a new commit on top of the
529 previous commit it built, and it often unconditionally emits a
530 "from" command to specify the first parent, which can be omitted in
531 such a case. This caused fast-import to forget the tree of the
532 previous commit and then re-read it from scratch, which was
533 inefficient. Optimize for this common case.
535 Will merge to 'master'.
538 * dt/log-follow-config (2015-07-09) 1 commit
539 (merged to 'next' on 2015-07-10 at b8fbb43)
540 + log: add "log.follow" configuration variable
542 Add a new configuration variable to enable "--follow" automatically
543 when "git log" is run with one pathspec argument.
545 Will merge to 'master'.
548 * kn/tag-doc-fix (2015-07-10) 1 commit
549 (merged to 'next' on 2015-07-15 at 7bd6038)
550 + Documentation/tag: remove double occurance of "<pattern>"
552 Will merge to 'master'.
555 * se/doc-checkout-ours-theirs (2015-07-12) 1 commit
556 (merged to 'next' on 2015-07-21 at 5275f04)
557 + checkout: document subtlety around --ours/--theirs
559 A "rebase" replays changes of the local branch on top of something
560 else, as such they are placed in stage #3 and referred to as
561 "theirs", while the changes in the new base, typically a foreign
562 work, are placed in stage #2 and referred to as "ours". Clarify
563 the "checkout --ours/--theirs".
565 Will merge to 'master'.
568 * pt/am-tests (2015-07-20) 12 commits
569 (merged to 'next' on 2015-07-21 at 8d3d5f4)
570 + t3901: test git-am encoding conversion
571 + t3418: non-interactive rebase --continue with rerere enabled
572 + t4150: tests for am --[no-]scissors
573 + t4150: am with post-applypatch hook
574 + t4150: am with pre-applypatch hook
575 + t4150: am with applypatch-msg hook
576 + t4150: am --resolved fails if index has unmerged entries
577 + t4150: am --resolved fails if index has no changes
578 + t4150: am refuses patches when paused
579 + t4151: am --abort will keep dirty index intact
580 + t4150: am fails if index is dirty
581 + t4150: am.messageid really adds the message id
583 Will merge to 'master'.
586 * kn/for-each-tag-branch (2015-07-13) 11 commits
587 (merged to 'next' on 2015-07-15 at bf5418f)
588 + for-each-ref: add '--contains' option
589 + ref-filter: implement '--contains' option
590 + parse-options.h: add macros for '--contains' option
591 + parse-option: rename parse_opt_with_commit()
592 + for-each-ref: add '--merged' and '--no-merged' options
593 + ref-filter: implement '--merged' and '--no-merged' options
594 + ref-filter: add parse_opt_merge_filter()
595 + for-each-ref: add '--points-at' option
596 + ref-filter: implement '--points-at' option
597 + tag: libify parse_opt_points_at()
598 + t6302: for-each-ref tests for ref-filter APIs
599 (this branch uses kn/for-each-ref.)
601 Port features over from tag -l and branch -l to for-each-ref
602 so that eventually the unified implementation can be used to
603 reimplement tag -l and branch -l, shared across all three, in
604 a follow-up series or two.
606 Will merge to 'master'.
609 * pt/am-builtin (2015-07-20) 46 commits
610 (merged to 'next' on 2015-07-23 at d5075f0)
611 + builtin-am: remove redirection to git-am.sh
612 + builtin-am: check for valid committer ident
613 + builtin-am: implement legacy -b/--binary option
614 + builtin-am: implement -i/--interactive
615 + builtin-am: support and auto-detect mercurial patches
616 + builtin-am: support and auto-detect StGit series files
617 + builtin-am: support and auto-detect StGit patches
618 + builtin-am: rerere support
619 + builtin-am: invoke post-applypatch hook
620 + builtin-am: invoke pre-applypatch hook
621 + builtin-am: invoke applypatch-msg hook
622 + builtin-am: support automatic notes copying
623 + builtin-am: invoke post-rewrite hook
624 + builtin-am: implement -S/--gpg-sign, commit.gpgsign
625 + builtin-am: implement --committer-date-is-author-date
626 + builtin-am: implement --ignore-date
627 + builtin-am: pass git-apply's options to git-apply
628 + builtin-am: implement --[no-]scissors
629 + builtin-am: support --keep-cr, am.keepcr
630 + builtin-am: implement --[no-]message-id, am.messageid
631 + builtin-am: implement -k/--keep, --keep-non-patch
632 + builtin-am: implement -u/--utf8
633 + builtin-am: handle stray state directory
634 + builtin-am: bypass git-mailinfo when --rebasing
635 + builtin-am: implement --rebasing mode
636 + builtin-am: implement --3way, am.threeWay
637 + cache-tree: introduce write_index_as_tree()
638 + builtin-am: implement -s/--signoff
639 + builtin-am: exit with user friendly message on failure
640 + builtin-am: implement -q/--quiet
641 + builtin-am: reject patches when there's a session in progress
642 + builtin-am: implement --abort
643 + builtin-am: implement --skip
644 + builtin-am: don't parse mail when resuming
645 + builtin-am: implement --resolved/--continue
646 + builtin-am: refuse to apply patches if index is dirty
647 + builtin-am: implement committing applied patch
648 + builtin-am: apply patch with git-apply
649 + builtin-am: extract patch and commit info with git-mailinfo
650 + builtin-am: auto-detect mbox patches
651 + builtin-am: split out mbox/maildir patches with git-mailsplit
652 + builtin-am: implement patch queue mechanism
653 + builtin-am: implement skeletal builtin am
654 + wrapper: implement xfopen()
655 + wrapper: implement xopen()
656 + Merge branch 'pt/pull-builtin' into pt/am-builtin
657 (this branch uses pt/pull-builtin; is tangled with kd/pull-rebase-autostash.)
661 Still buggy around "am" and then "am -3" workflow.
664 * ad/bisect-cleanup (2015-06-29) 6 commits
665 (merged to 'next' on 2015-07-09 at 75e2a06)
666 + bisect: don't mix option parsing and non-trivial code
667 + bisect: simplify the addition of new bisect terms
668 + bisect: replace hardcoded "bad|good" by variables
669 + Documentation/bisect: revise overall content
670 + Documentation/bisect: move getting help section to the end
671 + bisect: correction of typo
672 (this branch is used by ad/bisect-terms.)
674 Code and documentation clean-up to "git bisect".
676 Will merge to 'master'.
679 * mh/fast-import-get-mark (2015-07-01) 1 commit
680 (merged to 'next' on 2015-07-15 at 5e034b9)
681 + fast-import: add a get-mark command
683 Will merge to 'master'.
686 * kb/i18n-doc (2015-07-01) 1 commit
687 (merged to 'next' on 2015-07-09 at a12c7b3)
688 + Documentation/i18n.txt: clarify character encoding support
690 Will merge to 'master'.
693 * dt/refs-backend-preamble (2015-07-21) 7 commits
694 (merged to 'next' on 2015-07-23 at 9dac423)
695 + git-stash: use update-ref --create-reflog instead of creating files
696 + update-ref and tag: add --create-reflog arg
697 + refs: add REF_FORCE_CREATE_REFLOG flag
698 + git-reflog: add exists command
699 + refs: new public ref function: safe_create_reflog
700 + refs: break out check for reflog autocreation
701 + refs.c: add err arguments to reflog functions
703 In preparation for allowing different "backends" to store the refs
704 in a way different from the traditional "one ref per file in $GIT_DIR
705 or in a $GIT_DIR/packed-refs file" filesystem storage, reduce
706 direct filesystem access to ref-like things like CHERRY_PICK_HEAD
707 from scripts and programs.
709 Will merge to 'master'.
712 * jk/date-mode-format (2015-07-20) 4 commits
713 (merged to 'next' on 2015-07-21 at 69f66be)
714 + strbuf: make strbuf_addftime more robust
715 (merged to 'next' on 2015-07-09 at a01bfc3)
716 + introduce "format" date-mode
717 + convert "enum date_mode" into a struct
718 + show-branch: use DATE_RELATIVE instead of magic number
720 Teach "git log" and friends a new "--date=format:..." option to
721 format timestamps using system's strftime(3).
723 Will merge to 'master'.
726 * nd/export-worktree (2015-06-26) 1 commit
727 (merged to 'next' on 2015-07-09 at 1581a9b)
728 + setup: set env $GIT_WORK_TREE when work tree is set, like $GIT_DIR
730 Running an aliased command from a subdirectory when the .git thing
731 in the working tree is a gitfile pointing elsewhere did not work.
733 Will merge to 'master'.
736 * jc/rerere (2015-07-24) 21 commits
737 - rerere: un-nest merge() further
738 - rerere: use "struct rerere_id" instead of "char *" for conflict ID
739 - rerere: call conflict-ids IDs
740 - rerere: further clarify do_rerere_one_path()
741 - rerere: further de-dent do_plain_rerere()
742 - rerere: refactor "replay" part of do_plain_rerere()
743 - rerere: explain the remainder
744 - rerere: explain "rerere forget" codepath
745 - rerere: explain the primary codepath
746 - rerere: explain MERGE_RR management helpers
747 - rerere: fix benign off-by-one non-bug and clarify code
748 - rerere: explain the rerere I/O abstraction
749 - rerere: do not leak mmfile[] for a path with multiple stage #1 entries
750 - rerere: stop looping unnecessarily
751 - rerere: drop want_sp parameter from is_cmarker()
752 - rerere: report autoupdated paths only after actually updating them
753 - rerere: write out each record of MERGE_RR in one go
754 - rerere: lift PATH_MAX limitation
755 - rerere: plug conflict ID leaks
756 - rerere: handle conflicts with multiple stage #1 entries
757 - rerere: fix an off-by-one non-bug
758 (this branch is used by jc/rerere-multi.)
760 Code clean-up and minor fixes (so far).
763 * jc/rerere-multi (2015-07-24) 6 commits
764 . t4200: rerere a merge with two identical conflicts
766 - rerere: delay the recording of preimage
767 - rerere: handle leftover rr-cache/$ID directory and postimage files
768 - rerere: scan $GIT_DIR/rr-cache/$ID when instantiating a rerere_id
769 - rerere: split conflict ID further
770 (this branch uses jc/rerere.)
772 This is a contination of jc/rerere topic.
775 * js/fsck-opt (2015-06-23) 19 commits
776 (merged to 'next' on 2015-07-10 at eb4da0a)
777 + fsck: support ignoring objects in `git fsck` via fsck.skiplist
778 + fsck: git receive-pack: support excluding objects from fsck'ing
779 + fsck: introduce `git fsck --connectivity-only`
780 + fsck: support demoting errors to warnings
781 + fsck: document the new receive.fsck.<msg-id> options
782 + fsck: allow upgrading fsck warnings to errors
783 + fsck: optionally ignore specific fsck issues completely
784 + fsck: disallow demoting grave fsck errors to warnings
785 + fsck: add a simple test for receive.fsck.<msg-id>
786 + fsck: make fsck_tag() warn-friendly
787 + fsck: handle multiple authors in commits specially
788 + fsck: make fsck_commit() warn-friendly
789 + fsck: make fsck_ident() warn-friendly
790 + fsck: report the ID of the error/warning
791 + fsck (receive-pack): allow demoting errors to warnings
792 + fsck: offer a function to demote fsck errors to warnings
793 + fsck: provide a function to parse fsck message IDs
794 + fsck: introduce identifiers for fsck messages
795 + fsck: introduce fsck options
797 Allow ignoring fsck errors on specific set of known-to-be-bad
798 objects, and also tweaking warning level of various kinds of non
799 critical breakages reported.
801 Will merge to 'master'.
804 * bc/gpg-verify-raw (2015-06-22) 7 commits
805 (merged to 'next' on 2015-06-24 at 08a1164)
806 + verify-tag: add option to print raw gpg status information
807 + verify-commit: add option to print raw gpg status information
808 + gpg: centralize printing signature buffers
809 + gpg: centralize signature check
810 + verify-commit: add test for exit status on untrusted signature
811 + verify-tag: share code with verify-commit
812 + verify-tag: add tests
814 "git verify-tag" and "git verify-commit" have been taught to share
815 more code, and then learned to optionally show the verification
816 message from the underlying GPG implementation.
818 Will merge to 'master'.
821 * cb/parse-magnitude (2015-06-22) 2 commits
822 (merged to 'next' on 2015-06-24 at 2fd7205)
823 + parse-options: move unsigned long option parsing out of pack-objects.c
824 + test-parse-options: update to handle negative ints
826 Move machinery to parse human-readable scaled numbers like 1k, 4M,
827 and 2G as an option parameter's value from pack-objects to
828 parse-options API, to make it available to other codepaths.
830 Will merge to 'master'.
833 * jk/cat-file-batch-all (2015-06-26) 8 commits
834 (merged to 'next' on 2015-07-10 at 80200cc)
835 + cat-file: sort and de-dup output of --batch-all-objects
836 + cat-file: add --batch-all-objects option
837 + cat-file: split batch_one_object into two stages
838 + cat-file: stop returning value from batch_one_object
839 + cat-file: add --buffer option
840 + cat-file: move batch_options definition to top of file
841 + cat-file: minor style fix in options list
842 + Merge branch 'jk/maint-for-each-packed-object' into jk/cat-file-batch-all
844 "cat-file" learned "--batch-all-objects" option to enumerate all
845 available objects in the repository more quickly than "rev-list
846 --all --objects" (the output includes unreachable objects, though).
848 Will merge to 'master'.
851 * jk/pkt-log-pack (2015-06-16) 3 commits
852 (merged to 'next' on 2015-07-10 at ba33212)
853 + pkt-line: support tracing verbatim pack contents
854 + pkt-line: tighten sideband PACK check when tracing
855 + pkt-line: simplify starts_with checks in packet tracing
857 Enhance packet tracing machinery to allow capturing an incoming
858 pack data to a file for debugging.
860 Will merge to 'master'.
863 * kn/for-each-ref (2015-06-15) 11 commits
864 (merged to 'next' on 2015-06-24 at 1a3a734)
865 + ref-filter: make 'ref_array_item' use a FLEX_ARRAY for refname
866 + for-each-ref: introduce filter_refs()
867 + ref-filter: move code from 'for-each-ref'
868 + ref-filter: add 'ref-filter.h'
869 + for-each-ref: rename variables called sort to sorting
870 + for-each-ref: rename some functions and make them public
871 + for-each-ref: introduce 'ref_array_clear()'
872 + for-each-ref: introduce new structures for better organisation
873 + for-each-ref: rename 'refinfo' to 'ref_array_item'
874 + for-each-ref: clean up code
875 + for-each-ref: extract helper functions out of grab_single_ref()
876 (this branch is used by kn/for-each-tag-branch.)
878 GSoC project to rebuild ref listing by branch and tag based on the
879 for-each-ref machinery. This is its first part.
881 Will merge to 'master'.
884 * mh/init-delete-refs-api (2015-06-22) 19 commits
885 (merged to 'next' on 2015-07-10 at 121b26e)
886 + delete_ref(): use the usual convention for old_sha1
887 + cmd_update_ref(): make logic more straightforward
888 + update_ref(): don't read old reference value before delete
889 + check_branch_commit(): make first parameter const
890 + refs.h: add some parameter names to function declarations
891 + refs: move the remaining ref module declarations to refs.h
892 + initial_ref_transaction_commit(): check for ref D/F conflicts
893 + initial_ref_transaction_commit(): check for duplicate refs
894 + refs: remove some functions from the module's public interface
895 + initial_ref_transaction_commit(): function for initial ref creation
896 + repack_without_refs(): make function private
897 + prune_refs(): use delete_refs()
898 + prune_remote(): use delete_refs()
899 + delete_refs(): bail early if the packed-refs file cannot be rewritten
900 + delete_refs(): make error message more generic
901 + delete_refs(): new function for the refs API
902 + delete_ref(): handle special case more explicitly
903 + remove_branches(): remove temporary
904 + delete_ref(): move declaration to refs.h
906 Clean up refs API and make "git clone" less intimate with the
907 implementation detail.
909 Will merge to 'master'.
912 * mh/replace-refs (2015-06-12) 1 commit
913 (merged to 'next' on 2015-06-24 at cb13adf)
914 + Allow to control where the replace refs are looked for
916 Add an environment variable to tell Git to look into refs hierarchy
917 other than refs/replace/ for the object replacement data.
919 Will merge to 'master'.
922 * gp/status-rebase-i-info (2015-07-06) 4 commits
923 (merged to 'next' on 2015-07-10 at b121298)
924 + status: add new tests for status during rebase -i
925 + status: give more information during rebase -i
926 + status: differentiate interactive from non-interactive rebases
927 + status: factor two rebase-related messages together
929 Teach "git status" to show a more detailed information regarding
930 the "rebase -i" session in progress.
932 Will merge to 'master'.
935 * mr/rebase-i-customize-insn-sheet (2015-06-15) 1 commit
936 (merged to 'next' on 2015-07-10 at ec383cd)
937 + git-rebase--interactive.sh: add config option for custom instruction format
939 "git rebase -i"'s list of todo is made configurable.
941 Will merge to 'master'.
944 * pt/am-foreign (2015-06-15) 5 commits
945 (merged to 'next' on 2015-06-24 at 838c702)
946 + am: teach mercurial patch parser how to read from stdin
947 + am: use gmtime() to parse mercurial patch date
948 + t4150: test applying StGit series
949 + am: teach StGit patch parser how to read from stdin
950 + t4150: test applying StGit patch
952 Various enhancements around "git am" reading patches generated by
955 Will merge to 'master'.
958 * pt/pull-builtin (2015-06-18) 19 commits
959 (merged to 'next' on 2015-07-10 at 07b1794)
960 + pull: remove redirection to git-pull.sh
961 + pull --rebase: error on no merge candidate cases
962 + pull --rebase: exit early when the working directory is dirty
963 + pull: configure --rebase via branch.<name>.rebase or pull.rebase
964 + pull: teach git pull about --rebase
965 + pull: set reflog message
966 + pull: implement pulling into an unborn branch
967 + pull: fast-forward working tree if head is updated
968 + pull: check if in unresolved merge state
969 + pull: support pull.ff config
970 + pull: error on no merge candidates
971 + pull: pass git-fetch's options to git-fetch
972 + pull: pass git-merge's options to git-merge
973 + pull: pass verbosity, --progress flags to fetch and merge
974 + pull: implement fetch + merge
975 + pull: implement skeletal builtin pull
976 + argv-array: implement argv_array_pushv()
977 + parse-options-cb: implement parse_opt_passthru_argv()
978 + parse-options-cb: implement parse_opt_passthru()
979 (this branch is used by kd/pull-rebase-autostash and pt/am-builtin.)
981 Reimplement 'git pull' in C.
983 Will merge to 'master'.
986 * rl/send-email-aliases (2015-07-07) 10 commits
987 (merged to 'next' on 2015-07-09 at c60553d)
988 + send-email: suppress meaningless whitespaces in from field
989 + send-email: allow multiple emails using --cc, --to and --bcc
990 + send-email: consider quote as delimiter instead of character
991 + send-email: reduce dependencies impact on parse_address_line
992 + send-email: minor code refactoring
993 + send-email: allow use of aliases in the From field of --compose mode
994 + send-email: refactor address list process
995 + t9001-send-email: refactor header variable fields replacement
996 + send-email: allow aliases in patch header and command script outputs
997 + t9001-send-email: move script creation in a setup test
999 "git send-email" now performs alias-expansion on names that are
1000 given via --cccmd, etc.
1002 This round comes with a lot more enhanced e-mail address parser,
1003 which makes it a bit scary, but as long as it works as designed, it
1004 makes it wonderful ;-).
1006 Will merge to 'master'.
1009 * gr/rebase-i-drop-warn (2015-06-30) 3 commits
1010 (merged to 'next' on 2015-07-15 at 6f4f2c8)
1011 + git rebase -i: add static check for commands and SHA-1
1012 + git rebase -i: warn about removed commits
1013 + git-rebase -i: add command "drop" to remove a commit
1015 Add "drop commit-object-name subject" command as another way to
1016 skip replaying of a commit in "rebase -i", and then punish those
1017 who do not use it (and instead just remove the lines) by throwing
1020 Will merge to 'master'.
1023 * jc/push-tags-also (2015-05-29) 1 commit
1024 - push --tags: push tags *in addition to* other stuff
1026 "git fetch --tags" learned to fetch tags in addition to other stuff
1027 a few years ago, but "git push --tags" didn't. Now it does.
1029 A change to push out more than before always invites "what if the
1030 user makes a mistake" worries.
1035 * jc/commit-slab (2015-05-22) 1 commit
1036 (merged to 'next' on 2015-07-15 at 4c83475)
1037 + commit-slab: introduce slabname##_peek() function
1039 Memory use reduction when commit-slab facility is used to annotate
1040 sparsely (which is not recommended in the first place).
1042 Will merge to 'master'.
1045 * ee/clean-remove-dirs (2015-06-26) 6 commits
1046 (merged to 'next' on 2015-06-29 at d595659)
1047 + read_gitfile_gently: fix use-after-free
1048 (merged to 'next' on 2015-06-24 at 7c27821)
1049 + clean: improve performance when removing lots of directories
1050 + p7300: add performance tests for clean
1051 + t7300: add tests to document behavior of clean and nested git
1052 + setup: sanity check file size in read_gitfile_gently
1053 + setup: add gentle version of read_gitfile
1055 Replace "is this subdirectory a separate repository that should not
1056 be touched?" check "git clean" does by checking if it has .git/HEAD
1057 using the submodule-related code with a more optimized check.
1059 Will merge to 'master'.
1062 * jc/merge-drop-old-syntax (2015-04-29) 1 commit
1063 (merged to 'next' on 2015-05-28 at 6bfd8b9)
1064 + merge: drop 'git merge <message> HEAD <commit>' syntax
1066 Stop supporting "git merge <message> HEAD <commit>" syntax that
1067 has been deprecated since October 2007.
1069 Will keep in 'next' during the 2.5 cycle.
1071 --------------------------------------------------
1074 * tf/gitweb-project-listing (2015-03-19) 4 commits
1075 - gitweb: make category headings into links when they are directories
1076 - gitweb: optionally set project category from its pathname
1077 - gitweb: add a link under the search box to clear a project filter
1078 - gitweb: if the PATH_INFO is incomplete, use it as a project_filter
1080 Update gitweb to make it more pleasant to deal with a hierarchical
1081 forest of repositories.
1083 A fresh restart will not be rejected, but ejected from my tree for