To: git@vger.kernel.org
Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Jul 2017, #01; Wed, 5)
-X-master-at: 50ff9ea4a0770c8b1bfe3f98f09728427c0c6cc7
-X-next-at: b4debfe1a1bbbf047b7c2b69802448ce45df5f2f
+Subject: What's cooking in git.git (Jul 2017, #02; Fri, 7)
+X-master-at: 8b2efe2a0fd93b8721879f796d848a9ce785647f
+X-next-at: a9c46e097be495732ddb19ee1f57e62e5b35db6c
-What's cooking in git.git (Jul 2017, #01; Wed, 5)
+What's cooking in git.git (Jul 2017, #02; Fri, 7)
--------------------------------------------------
Here are the topics that have been cooking. Commits prefixed with
--------------------------------------------------
[Graduated to "master"]
-* bw/repo-object (2017-06-23) 21 commits
- (merged to 'next' on 2017-06-26 at ed9c0b77c3)
- + ls-files: use repository object
- + repository: enable initialization of submodules
- + submodule: convert is_submodule_initialized to work on a repository
- + submodule: add repo_read_gitmodules
- + submodule-config: store the_submodule_cache in the_repository
- + repository: add index_state to struct repo
- + config: read config from a repository object
- + path: add repo_worktree_path and strbuf_repo_worktree_path
- + path: add repo_git_path and strbuf_repo_git_path
- + path: worktree_git_path() should not use file relocation
- + path: convert do_git_path to take a 'struct repository'
- + path: convert strbuf_git_common_path to take a 'struct repository'
- + path: always pass in commondir to update_common_dir
- + path: create path.h
- + environment: store worktree in the_repository
- + environment: place key repository state in the_repository
- + repository: introduce the repository object
- + environment: remove namespace_len variable
- + setup: add comment indicating a hack
- + setup: don't perform lazy initialization of repository state
- + Merge branches 'bw/ls-files-sans-the-index' and 'bw/config-h' into bw/repo-object
-
- Introduce a "repository" object to eventually make it easier to
- work in multiple repositories (the primary focus is to work with
- the superproject and its submodules) in a single process.
-
-
-* cc/shared-index-permfix (2017-06-25) 3 commits
- (merged to 'next' on 2017-06-26 at bb41584bf0)
- + t1700: make sure split-index respects core.sharedrepository
- + t1301: move modebits() to test-lib-functions.sh
- + read-cache: use shared perms when writing shared index
-
- The split index code did not honor core.sharedrepository setting
- correctly.
-
-
-* jt/unify-object-info (2017-06-26) 8 commits
- (merged to 'next' on 2017-06-26 at 540ea81983)
- + sha1_file: refactor has_sha1_file_with_flags
- + sha1_file: do not access pack if unneeded
- + sha1_file: teach sha1_object_info_extended more flags
- + sha1_file: refactor read_object
- + sha1_file: move delta base cache code up
- + sha1_file: rename LOOKUP_REPLACE_OBJECT
- + sha1_file: rename LOOKUP_UNKNOWN_OBJECT
- + sha1_file: teach packed_object_info about typename
-
- Code clean-ups.
-
-
-* rs/sha1-name-readdir-optim (2017-06-24) 4 commits
- (merged to 'next' on 2017-06-26 at a70587f2b9)
- + sha1_file: guard against invalid loose subdirectory numbers
- + sha1_file: let for_each_file_in_obj_subdir() handle subdir names
- + p4205: add perf test script for pretty log formats
- + sha1_name: cache readdir(3) results in find_short_object_filename()
-
- Optimize "what are the object names already taken in an alternate
- object database?" query that is used to derive the length of prefix
- an object name is uniquely abbreviated to.
+* ab/sha1dc-maint (2017-07-03) 1 commit
+ (merged to 'next' on 2017-07-05 at ac69c90b7e)
+ + sha1dc: update from upstream
+ (this branch is used by ab/sha1dc.)
---------------------------------------------------
-[New Topics]
+ Update the sha1dc again to fix portability glitches.
-* bc/object-id (2017-07-04) 12 commits
- - sha1_name: convert GET_SHA1* flags to GET_OID*
- - sha1_name: convert get_sha1* to get_oid*
- - Convert remaining callers of get_sha1 to get_oid.
- - builtin/verify-tag: convert to struct object_id
- - builtin/unpack-file: convert to struct object_id
- - bisect: convert bisect_checkout to struct object_id
- - builtin/update_ref: convert to struct object_id
- - sequencer: convert to struct object_id
- - remote: convert struct push_cas to struct object_id
- - submodule: convert submodule config lookup to use object_id
- - builtin/merge-tree: convert remaining caller of get_sha1 to object_id
- - builtin/fsck: convert remaining caller of get_sha1 to object_id
- Conversion from uchar[20] to struct object_id continues.
+* ab/strbuf-addftime-tzname-boolify (2017-07-01) 2 commits
+ (merged to 'next' on 2017-07-05 at 81e6795eb3)
+ + strbuf: change an always NULL/"" strbuf_addftime() param to bool
+ + strbuf.h comment: discuss strbuf_addftime() arguments in order
+ strbuf_addftime() is further getting tweaked.
-* jk/reflog-walk (2017-07-05) 7 commits
- - reflog-walk: stop using fake parents
- - rev-list: check reflog_info before showing usage
- - get_revision_1(): replace do-while with an early return
- - log: do not free parents when walking reflog
- - [SQUASH LOG MESSAGE ONLY] t1414: document some reflog-walk oddities
- - t1414: document some reflog-walk oddities
- - Merge branch 'jk/reflog-walk-maint' into jk/reflog-walk
- (this branch uses jk/reflog-walk-maint.)
- Numerous bugs in walking of reflogs via "log -g" and friends have
- been fixed.
+* aw/contrib-subtree-doc-asciidoctor (2017-06-27) 1 commit
+ (merged to 'next' on 2017-06-30 at af23bd111b)
+ + subtree: honour USE_ASCIIDOCTOR when set
+ The Makefile rule in contrib/subtree for building documentation
+ learned to honour USE_ASCIIDOCTOR just like the main documentation
+ set does.
-* jk/reflog-walk-maint (2017-07-05) 1 commit
- - reflog-walk: skip over double-null oid due to HEAD rename
- (this branch is used by jk/reflog-walk.)
- After "git branch --move" of the currently checked out branch, the
- code to walk the reflog of HEAD via "log -g" and friends
- incorrectly stopped at the reflog entry that records the renaming
- of the branch.
+* jc/utf8-fprintf (2017-06-28) 1 commit
+ (merged to 'next' on 2017-06-30 at a8cc490818)
+ + submodule--helper: do not call utf8_fprintf() unnecessarily
+
+ Code cleanup.
+
+
+* js/fsck-name-object (2017-06-28) 1 commit
+ (merged to 'next' on 2017-06-30 at 9a08514cf2)
+ + t1450: use egrep for regexp "alternation"
+
+ Test fix.
* js/t5534-rev-parse-gives-multi-line-output-fix (2017-07-05) 1 commit
did not use 'git rev-parse' to formulate the line to look for in
the certificate correctly.
- Will merge to 'master'.
-
* rs/apply-avoid-over-reading (2017-07-01) 1 commit
(merged to 'next' on 2017-07-05 at 35730f3a47)
Code clean-up to fix possible buffer over-reading.
- Will merge to 'master'.
+* sb/merge-recursive-code-cleanup (2017-06-30) 1 commit
+ (merged to 'next' on 2017-07-05 at 4228240520)
+ + merge-recursive: use DIFF_XDL_SET macro
-* sb/hashmap-cleanup (2017-07-05) 10 commits
- - t/helper/test-hashmap: use custom data instead of duplicate cmp functions
- - name-hash.c: drop hashmap_cmp_fn cast
- - submodule-config.c: drop hashmap_cmp_fn cast
- - remote.c: drop hashmap_cmp_fn cast
- - patch-ids.c: drop hashmap_cmp_fn cast
- - convert/sub-process: drop cast to hashmap_cmp_fn
- - config.c: drop hashmap_cmp_fn cast
- - builtin/describe: drop hashmap_cmp_fn cast
- - builtin/difftool.c: drop hashmap_cmp_fn cast
- - attr.c: drop hashmap_cmp_fn cast
- (this branch uses sb/hashmap-customize-comparison; is tangled with sb/diff-color-move.)
+ Code clean-up.
- Many uses of comparision callback function the hashmap API uses
- cast the callback function type when registering it to
- hashmap_init(), which defeats the compile time type checking when
- the callback interface changes (e.g. gaining more parameters).
- The callback implementations have been updated to take "void *"
- pointers and cast them to the type they expect instead.
- Will wait for feedback, then merge to and cook in 'next'.
+* xz/send-email-batch-size (2017-07-05) 1 commit
+ (merged to 'next' on 2017-07-05 at 92f3c31fbd)
+ + send-email: --batch-size to work around some SMTP server limit
+ "git send-email" learned to overcome some SMTP server limitation
+ that does not allow many pieces of e-mails to be sent over a single
+ session.
-* tb/push-to-cygwin-unc-path (2017-07-05) 1 commit
- - cygwin: allow pushing to UNC paths
+--------------------------------------------------
+[New Topics]
- On Cygwin, similar to Windows, "git push //server/share/repository"
- ought to mean a repository on a network share that can be accessed
- locally, but this did not work correctly due to stripping the double
- slashes at the beginning.
+* jc/allow-lazy-cas (2017-07-06) 1 commit
+ - push: disable lazy --force-with-lease by default
- This may need to be heavily tested before it gets unleashed to the
- wild, as the change is at a fairly low-level code and would affect
- not just the code to decide if the push destination is local. There
- may be unexpected fallouts in the path normalization.
+ Because "git push --force-with-lease[=<ref>]" that relies on the
+ stability of remote-tracking branches is unsafe when something
+ fetches into the repository behind user's back, it is now disabled
+ by default. A new configuration variable can be used to enable it
+ by users who know what they are doing. This would pave the way to
+ possibly turn `--force` into `--force-with-lease`.
Will wait for feedback, then merge to and cook in 'next'.
-* ab/sha1dc-maint (2017-07-03) 1 commit
- (merged to 'next' on 2017-07-05 at ac69c90b7e)
- + sha1dc: update from upstream
- (this branch is used by ab/sha1dc.)
+* ks/typofix-commit-c-comment (2017-07-06) 1 commit
+ (merged to 'next' on 2017-07-07 at 64e98fc832)
+ + builtin/commit.c: fix a typo in the comment
- Update the sha1dc again to fix portability glitches.
+ Typofix.
+
+ Will merge to 'master'.
+
+
+* bb/unicode-10.0 (2017-07-07) 1 commit
+ (merged to 'next' on 2017-07-07 at a9c46e097b)
+ + unicode: update the width tables to Unicode 10
+
+ Update the character width tables.
Will merge to 'master'.
cf. <d0e81b1e-5869-299e-f462-4d43dc997bd1@ramsayjones.plus.com>
-* xz/send-email-batch-size (2017-07-05) 1 commit
- (merged to 'next' on 2017-07-05 at 92f3c31fbd)
- + send-email: --batch-size to work around some SMTP server limit
-
- "git send-email" learned to overcome some SMTP server limitation
- that does not allow many pieces of e-mails to be sent over a single
- session.
-
- Will merge to 'master'.
-
-
* sg/clone-refspec-from-command-line-config (2017-06-16) 2 commits
- Documentation/clone: document ignored configuration variables
- clone: respect additional configured fetch refspecs during initial fetch
--------------------------------------------------
[Cooking]
+* bc/object-id (2017-07-04) 12 commits
+ - sha1_name: convert GET_SHA1* flags to GET_OID*
+ - sha1_name: convert get_sha1* to get_oid*
+ - Convert remaining callers of get_sha1 to get_oid.
+ - builtin/verify-tag: convert to struct object_id
+ - builtin/unpack-file: convert to struct object_id
+ - bisect: convert bisect_checkout to struct object_id
+ - builtin/update_ref: convert to struct object_id
+ - sequencer: convert to struct object_id
+ - remote: convert struct push_cas to struct object_id
+ - submodule: convert submodule config lookup to use object_id
+ - builtin/merge-tree: convert remaining caller of get_sha1 to object_id
+ - builtin/fsck: convert remaining caller of get_sha1 to object_id
+
+ Conversion from uchar[20] to struct object_id continues.
+
+
+* jk/reflog-walk (2017-07-07) 8 commits
+ - reflog-walk: apply --since/--until to reflog dates
+ - reflog-walk: stop using fake parents
+ - rev-list: check reflog_info before showing usage
+ - get_revision_1(): replace do-while with an early return
+ - log: do not free parents when walking reflog
+ - revision: disallow reflog walking with revs->limited
+ - t1414: document some reflog-walk oddities
+ - Merge branch 'jk/reflog-walk-maint' into jk/reflog-walk
+ (this branch uses jk/reflog-walk-maint.)
+
+ Numerous bugs in walking of reflogs via "log -g" and friends have
+ been fixed.
+
+ Will wait for feedback, then merge to and cook in 'next'.
+
+
+* jk/reflog-walk-maint (2017-07-07) 4 commits
+ (merged to 'next' on 2017-07-07 at 611554ba2f)
+ + reflog-walk: include all fields when freeing complete_reflogs
+ + reflog-walk: don't free reflogs added to cache
+ + reflog-walk: duplicate strings in complete_reflogs list
+ (merged to 'next' on 2017-07-06 at 7408dd80a1)
+ + reflog-walk: skip over double-null oid due to HEAD rename
+ (this branch is used by jk/reflog-walk.)
+
+ After "git branch --move" of the currently checked out branch, the
+ code to walk the reflog of HEAD via "log -g" and friends
+ incorrectly stopped at the reflog entry that records the renaming
+ of the branch.
+
+ Will merge to 'master'.
+
+
+* sb/hashmap-cleanup (2017-07-05) 10 commits
+ - t/helper/test-hashmap: use custom data instead of duplicate cmp functions
+ - name-hash.c: drop hashmap_cmp_fn cast
+ - submodule-config.c: drop hashmap_cmp_fn cast
+ - remote.c: drop hashmap_cmp_fn cast
+ - patch-ids.c: drop hashmap_cmp_fn cast
+ - convert/sub-process: drop cast to hashmap_cmp_fn
+ - config.c: drop hashmap_cmp_fn cast
+ - builtin/describe: drop hashmap_cmp_fn cast
+ - builtin/difftool.c: drop hashmap_cmp_fn cast
+ - attr.c: drop hashmap_cmp_fn cast
+ (this branch uses sb/hashmap-customize-comparison; is tangled with sb/diff-color-move.)
+
+ Many uses of comparision callback function the hashmap API uses
+ cast the callback function type when registering it to
+ hashmap_init(), which defeats the compile time type checking when
+ the callback interface changes (e.g. gaining more parameters).
+ The callback implementations have been updated to take "void *"
+ pointers and cast them to the type they expect instead.
+
+ Will wait for feedback, then merge to and cook in 'next'.
+
+
+* tb/push-to-cygwin-unc-path (2017-07-05) 1 commit
+ - cygwin: allow pushing to UNC paths
+
+ On Cygwin, similar to Windows, "git push //server/share/repository"
+ ought to mean a repository on a network share that can be accessed
+ locally, but this did not work correctly due to stripping the double
+ slashes at the beginning.
+
+ This may need to be heavily tested before it gets unleashed to the
+ wild, as the change is at a fairly low-level code and would affect
+ not just the code to decide if the push destination is local. There
+ may be unexpected fallouts in the path normalization.
+
+ Will wait for feedback, then merge to and cook in 'next'.
+
+
* ab/grep-lose-opt-regflags (2017-06-30) 6 commits
(merged to 'next' on 2017-07-05 at 375c0b92ea)
+ grep: remove redundant REG_NEWLINE when compiling fixed regex
* sb/hashmap-customize-comparison (2017-06-30) 3 commits
- - hashmap: migrate documentation from Documentation/technical into header
- - patch-ids.c: use hashmap correctly
- - hashmap.h: compare function has access to a data field
+ (merged to 'next' on 2017-07-06 at cc420805f3)
+ + hashmap: migrate documentation from Documentation/technical into header
+ + patch-ids.c: use hashmap correctly
+ + hashmap.h: compare function has access to a data field
(this branch is used by sb/diff-color-move and sb/hashmap-cleanup.)
Update the hashmap API so that data to customize the behaviour of
the comparison function can be specified at the time a hashmap is
initialized.
- Will merge to 'next'.
-
-
-* sb/merge-recursive-code-cleanup (2017-06-30) 1 commit
- (merged to 'next' on 2017-07-05 at 4228240520)
- + merge-recursive: use DIFF_XDL_SET macro
-
- Code clean-up.
-
- Will merge to 'master'.
-
-
-* ab/strbuf-addftime-tzname-boolify (2017-07-01) 2 commits
- (merged to 'next' on 2017-07-05 at 81e6795eb3)
- + strbuf: change an always NULL/"" strbuf_addftime() param to bool
- + strbuf.h comment: discuss strbuf_addftime() arguments in order
-
- strbuf_addftime() is further getting tweaked.
-
Will merge to 'master'.
* mt/p4-parse-G-output (2017-07-05) 1 commit
- - git-p4: parse marshal output "p4 -G" in p4 changes
+ . git-p4: parse marshal output "p4 -G" in p4 changes
Use "p4 -G" to make "p4 changes" output more Python-friendly
to parse.
Needs review/ack from git-p4 folks.
+ It still seems to break when merged to 'pu'.
-* aw/contrib-subtree-doc-asciidoctor (2017-06-27) 1 commit
- (merged to 'next' on 2017-06-30 at af23bd111b)
- + subtree: honour USE_ASCIIDOCTOR when set
-
- The Makefile rule in contrib/subtree for building documentation
- learned to honour USE_ASCIIDOCTOR just like the main documentation
- set does.
-
- Will merge to 'master'.
-
-
-* js/fsck-name-object (2017-06-28) 1 commit
- (merged to 'next' on 2017-06-30 at 9a08514cf2)
- + t1450: use egrep for regexp "alternation"
-
- Test fix.
-
- Will merge to 'master'.
-
-
-* jc/utf8-fprintf (2017-06-28) 1 commit
- (merged to 'next' on 2017-06-30 at a8cc490818)
- + submodule--helper: do not call utf8_fprintf() unnecessarily
+* rs/free-and-null (2017-06-29) 1 commit
+ (merged to 'next' on 2017-07-06 at 9c9e1d59a2)
+ + coccinelle: polish FREE_AND_NULL rules
Code cleanup.
Will merge to 'master'.
-* rs/free-and-null (2017-06-29) 1 commit
- - coccinelle: polish FREE_AND_NULL rules
-
- Code cleanup.
-
-
* ab/wildmatch (2017-06-23) 1 commit
- - wildmatch: remove unused wildopts parameter
+ (merged to 'next' on 2017-07-07 at 34482a9a4f)
+ + wildmatch: remove unused wildopts parameter
- Prepare the wildmatch API for future enhancements to allow a
- pattern that is repeatedly matched against many strings to be
- precompiled.
+ Minor code cleanup.
+
+ Will merge to 'master'.
* ex/deprecate-empty-pathspec-as-match-all (2017-06-23) 2 commits
"git pull --rebase --recurse-submodules" learns to rebase the
branch in the submodules to an updated base.
+ Will merge to 'next'.
+
* pw/unquote-path-in-git-pm (2017-06-30) 4 commits
(merged to 'next' on 2017-07-05 at 538ab4d599)
Doc update.
- What's the status of this thing?
+ Will merge to 'next'.
* sd/branch-copy (2017-06-18) 3 commits
"git branch" learned "-c/-C" to create and switch to a new branch
by copying an existing one.
- Has a bit of interaction with mh/packed-ref-store and bw/config-h,
- so perhaps needs to wait for the former to stabilize a bit more
- and possibly rebasing on them.
+ Undecided.
+
+ I personally do not think "branch --copy master backup" while on
+ "master" that switches to "backup" is a good UI, and I *will* say
+ "I told you so" when users complain after we merge this down to
+ 'next' and eventually to 'master'.
* ls/filter-process-delayed (2017-06-30) 7 commits
* ab/sha1dc (2017-07-03) 2 commits
- - sha1collisiondetection: automatically enable when submodule is populated
- - sha1dc: optionally use sha1collisiondetection as a submodule
- (this branch uses ab/sha1dc-maint.)
+ (merged to 'next' on 2017-07-06 at 5a783032b7)
+ + sha1collisiondetection: automatically enable when submodule is populated
+ + sha1dc: optionally use sha1collisiondetection as a submodule
The "collission-detecting" implementation of SHA-1 hash we borrowed
from is replaced by directly binding the upstream project as our
submodule. Glitches on minority platforms are still being worked out.
- Will merge to 'next'.
+ Will merge to 'master'.
* bp/fsmonitor (2017-06-12) 6 commits
We learned to talk to watchman to speed up "git status".
- No more comments or updates?
+ Expecting a reroll.
+ cf. <bade1166-e646-b05a-f65b-adb8da8ba0a7@gmail.com>
* sb/diff-color-move (2017-06-30) 26 commits
- - diff: document the new --color-moved setting
- - diff.c: add dimming to moved line detection
- - diff.c: color moved lines differently, plain mode
- - diff.c: color moved lines differently
- - diff.c: buffer all output if asked to
- - diff.c: emit_diff_symbol learns about DIFF_SYMBOL_SUMMARY
- - diff.c: emit_diff_symbol learns about DIFF_SYMBOL_STAT_SEP
- - diff.c: convert word diffing to use emit_diff_symbol
- - diff.c: convert show_stats to use emit_diff_symbol
- - diff.c: convert emit_binary_diff_body to use emit_diff_symbol
- - submodule.c: migrate diff output to use emit_diff_symbol
- - diff.c: emit_diff_symbol learns DIFF_SYMBOL_REWRITE_DIFF
- - diff.c: emit_diff_symbol learns about DIFF_SYMBOL_BINARY_FILES
- - diff.c: emit_diff_symbol learns DIFF_SYMBOL_HEADER
- - diff.c: emit_diff_symbol learns DIFF_SYMBOL_FILEPAIR_{PLUS, MINUS}
- - diff.c: emit_diff_symbol learns DIFF_SYMBOL_CONTEXT_INCOMPLETE
- - diff.c: emit_diff_symbol learns DIFF_SYMBOL_WORDS[_PORCELAIN]
- - diff.c: migrate emit_line_checked to use emit_diff_symbol
- - diff.c: emit_diff_symbol learns DIFF_SYMBOL_NO_LF_EOF
- - diff.c: emit_diff_symbol learns DIFF_SYMBOL_CONTEXT_FRAGINFO
- - diff.c: emit_diff_symbol learns DIFF_SYMBOL_CONTEXT_MARKER
- - diff.c: introduce emit_diff_symbol
- - diff.c: factor out diff_flush_patch_all_file_pairs
- - diff.c: move line ending check into emit_hunk_header
- - diff.c: readability fix
- - Merge branch 'sb/hashmap-customize-comparison' into sb/diff-color-move
+ (merged to 'next' on 2017-07-06 at 758ed40e4f)
+ + diff: document the new --color-moved setting
+ + diff.c: add dimming to moved line detection
+ + diff.c: color moved lines differently, plain mode
+ + diff.c: color moved lines differently
+ + diff.c: buffer all output if asked to
+ + diff.c: emit_diff_symbol learns about DIFF_SYMBOL_SUMMARY
+ + diff.c: emit_diff_symbol learns about DIFF_SYMBOL_STAT_SEP
+ + diff.c: convert word diffing to use emit_diff_symbol
+ + diff.c: convert show_stats to use emit_diff_symbol
+ + diff.c: convert emit_binary_diff_body to use emit_diff_symbol
+ + submodule.c: migrate diff output to use emit_diff_symbol
+ + diff.c: emit_diff_symbol learns DIFF_SYMBOL_REWRITE_DIFF
+ + diff.c: emit_diff_symbol learns about DIFF_SYMBOL_BINARY_FILES
+ + diff.c: emit_diff_symbol learns DIFF_SYMBOL_HEADER
+ + diff.c: emit_diff_symbol learns DIFF_SYMBOL_FILEPAIR_{PLUS, MINUS}
+ + diff.c: emit_diff_symbol learns DIFF_SYMBOL_CONTEXT_INCOMPLETE
+ + diff.c: emit_diff_symbol learns DIFF_SYMBOL_WORDS[_PORCELAIN]
+ + diff.c: migrate emit_line_checked to use emit_diff_symbol
+ + diff.c: emit_diff_symbol learns DIFF_SYMBOL_NO_LF_EOF
+ + diff.c: emit_diff_symbol learns DIFF_SYMBOL_CONTEXT_FRAGINFO
+ + diff.c: emit_diff_symbol learns DIFF_SYMBOL_CONTEXT_MARKER
+ + diff.c: introduce emit_diff_symbol
+ + diff.c: factor out diff_flush_patch_all_file_pairs
+ + diff.c: move line ending check into emit_hunk_header
+ + diff.c: readability fix
+ + Merge branch 'sb/hashmap-customize-comparison' into sb/diff-color-move
(this branch uses sb/hashmap-customize-comparison; is tangled with sb/hashmap-cleanup.)
"git diff" has been taught to optionally paint new lines that are
the same as deleted lines elsewhere differently from genuinely new
lines.
- Will merge to 'next'.
+ Will merge to 'master'.
--------------------------------------------------
[Discarded]
of other worktrees as the root for reachability traversal, making
objects that are in use only in other worktrees to be subject to
garbage collection.
-
-
-* ab/free-and-null (2017-06-28) 2 commits
- (merged to 'next' on 2017-06-28 at 1cf373c61a)
- + Revert "coccinelle: add a rule to make "expression" code use FREE_AND_NULL()"
- (merged to 'next' on 2017-06-28 at 1785f88122)
- + coccinelle: add a rule to make "expression" code use FREE_AND_NULL()
-
- The coccinelle rule for free-and-null refactoring got simplified.