To: git@vger.kernel.org
Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Jan 2017, #01; Tue, 10)
+Subject: What's cooking in git.git (Jan 2017, #02; Sun, 15)
X-master-at: d7dffce1cebde29a0c4b309a79e4345450bf352a
-X-next-at: 087da7b7c1bc403d36120b5e97c342e00ebbf16a
+X-next-at: 8553c6e5137d7fde1cda49817bcc035d3ce35aeb
-What's cooking in git.git (Jan 2017, #01; Tue, 10)
+What's cooking in git.git (Jan 2017, #02; Sun, 15)
--------------------------------------------------
Here are the topics that have been cooking. Commits prefixed with
http://git-blame.blogspot.com/p/git-public-repositories.html
--------------------------------------------------
-[Graduated to "master"]
+[New Topics]
+
+* bw/read-blob-data-does-not-modify-index-state (2017-01-11) 1 commit
+ - index: improve constness for reading blob data
+
+ Code clean-up.
+
+ Will merge to 'next'.
+
+
+* ep/commit-static-buf-cleanup (2017-01-13) 2 commits
+ - builtin/commit.c: switch to xstrfmt(), instead of snprintf()
+ - builtin/commit.c: remove the PATH_MAX limitation via dynamic allocation
+
+ Code clean-up.
+
+ Expecting a reroll.
+ The tip one would instead be done with strbuf.
+ cf. <CA+EOSB=4-TKpi6mr-yVbwRsFrVzE=vo4Y9Qm3VMm7pn=UB1_hQ@mail.gmail.com>
+
+
+* jk/grep-e-could-be-extended-beyond-posix (2017-01-11) 1 commit
+ - t7810: avoid assumption about invalid regex syntax
+
+ Tighten a test to avoid mistaking an extended ERE regexp engine as
+ a PRE regexp engine.
+
+ Will merge to 'next'.
+
+
+* jk/vreport-sanitize (2017-01-11) 2 commits
+ - vreport: sanitize ASCII control chars
+ - Revert "vreportf: avoid intermediate buffer"
+
+ An error message with an ASCII control character like '\r' in it
+ can alter the message to hide its early part, which is problematic
+ when a remote side gives such an error message that the local side
+ will relay with a "remote: " prefix.
+
+ Will merge to 'next'.
+
+
+* sb/unpack-trees-super-prefix (2017-01-12) 5 commits
+ - SQUASH
+ - unpack-trees: support super-prefix option
+ - t1001: modernize style
+ - t1000: modernize style
+ - read-tree: use OPT_BOOL instead of OPT_SET_INT
+
+ "git read-tree" and its underlying unpack_trees() machinery learned
+ to report problematic paths prefixed with the --super-prefix option.
+
+ Expecting a reroll.
+ The first three are in good shape. The last one needs a better
+ explanation and possibly an update to its test.
+ cf. <CAGZ79kaHDnVLQr8WLoaD5KKs7EqeW=KbkptF=iHpU5t054Xcdw@mail.gmail.com>
+
* bw/grep-recurse-submodules (2016-12-22) 12 commits
(merged to 'next' on 2016-12-22 at 1ede815b8d)
+ real_path: resolve symlinks by hand
(this branch is tangled with bw/realpath-wo-chdir.)
- "git grep" learns to optionally recurse into submodules.
+ "git grep" has been taught to optionally recurse into submodules.
+
+ Will merge to 'master'.
+
+
+* sb/submodule-config-tests (2017-01-12) 2 commits
+ - t7411: test lookup of uninitialized submodules
+ - t7411: quote URLs
+
+ Will merge to 'next'.
-* dt/smart-http-detect-server-going-away (2016-11-18) 2 commits
- (merged to 'next' on 2016-12-05 at 3ea70d01af)
- + upload-pack: optionally allow fetching any sha1
- + remote-curl: don't hang when a server dies before any output
+* sb/submodule-doc (2017-01-12) 3 commits
+ - submodules: add a background story
+ - submodule update documentation: don't repeat ourselves
+ - submodule documentation: add options to the subcommand
- Originally merged to 'next' on 2016-11-21
+ Needs review.
- When the http server gives an incomplete response to a smart-http
- rpc call, it could lead to client waiting for a full response that
- will never come. Teach the client side to notice this condition
- and abort the transfer.
- An improvement counterproposal has failed.
- cf. <20161114194049.mktpsvgdhex2f4zv@sigill.intra.peff.net>
+* sb/submodule-embed-gitdir (2017-01-12) 1 commit
+ - submodule absorbgitdirs: mention in docstring help
+ Help-text fix.
-* jc/abbrev-autoscale-config (2016-12-22) 1 commit
- (merged to 'next' on 2016-12-27 at 631e4200e2)
- + config.abbrev: document the new default that auto-scales
+ Will merge to 'next'.
- Recent update to the default abbreviation length that auto-scales
- lacked documentation update, which has been corrected.
+* sb/submodule-init (2017-01-12) 1 commit
+ - submodule update --init: display correct path from submodule
-* jc/compression-config (2016-11-15) 1 commit
- (merged to 'next' on 2016-12-05 at 323769ca07)
- + compression: unify pack.compression configuration parsing
+ Error message fix.
- Originally merged to 'next' on 2016-11-23
+ Will merge to 'next'.
- Compression setting for producing packfiles were spread across
- three codepaths, one of which did not honor any configuration.
- Unify these so that all of them honor core.compression and
- pack.compression variables the same way.
+* vn/diff-ihc-config (2017-01-12) 1 commit
+ - diff: add interhunk context config option
-* jc/git-open-cloexec (2016-11-02) 3 commits
- (merged to 'next' on 2016-12-27 at 487682eb6e)
- + sha1_file: stop opening files with O_NOATIME
- + git_open_cloexec(): use fcntl(2) w/ FD_CLOEXEC fallback
- + git_open(): untangle possible NOATIME and CLOEXEC interactions
+ "git diff" learned diff.interHunkContext configuration variable
+ that gives the default value for its --inter-hunk-context option.
- The codeflow of setting NOATIME and CLOEXEC on file descriptors Git
- opens has been simplified.
- We may want to drop the tip one, but we'll see.
+ Will merge to 'next'.
-* jc/latin-1 (2016-09-26) 2 commits
- (merged to 'next' on 2016-12-05 at fb549caa12)
- + utf8: accept "latin-1" as ISO-8859-1
- + utf8: refactor code to decide fallback encoding
+* ad/bisect-terms (2017-01-13) 1 commit
+ - Documentation/bisect: improve on (bad|new) and (good|bad)
- Originally merged to 'next' on 2016-09-28
+ Documentation fix.
- Some platforms no longer understand "latin-1" that is still seen in
- the wild in e-mail headers; replace them with "iso-8859-1" that is
- more widely known when conversion fails from/to it.
+ Will merge to 'next'.
-* jc/retire-compaction-heuristics (2016-12-23) 1 commit
- (merged to 'next' on 2016-12-27 at c69c2f50cf)
- + diff: retire "compaction" heuristics
+* bw/attr (2017-01-15) 27 commits
+ - attr: reformat git_attr_set_direction() function
+ - attr: push the bare repo check into read_attr()
+ - attr: store attribute stacks in hashmap
+ - attr: tighten const correctness with git_attr and match_attr
+ - attr: remove maybe-real, maybe-macro from git_attr
+ - attr: eliminate global check_all_attr array
+ - attr: use hashmap for attribute dictionary
+ - attr: change validity check for attribute names to use positive logic
+ - attr: pass struct attr_check to collect_some_attrs
+ - attr: retire git_check_attrs() API
+ - attr: convert git_check_attrs() callers to use the new API
+ - attr: convert git_all_attrs() to use "struct attr_check"
+ - attr: (re)introduce git_check_attr() and struct attr_check
+ - attr: rename function and struct related to checking attributes
+ - attr.c: outline the future plans by heavily commenting
+ - Documentation/gitattributes.txt: fix a typo
+ - attr.c: add push_stack() helper
+ - attr: support quoting pathname patterns in C style
+ - attr.c: plug small leak in parse_attr_line()
+ - attr.c: tighten constness around "git_attr" structure
+ - attr.c: simplify macroexpand_one()
+ - attr.c: mark where #if DEBUG ends more clearly
+ - attr.c: complete a sentence in a comment
+ - attr.c: explain the lack of attr-name syntax check in parse_attr()
+ - attr.c: update a stale comment on "struct match_attr"
+ - attr.c: use strchrnul() to scan for one line
+ - commit.c: use strchrnul() to scan for one line
- "git diff" and its family had two experimental heuristics to shift
- the contents of a hunk to make the patch easier to read. One of
- them turns out to be better than the other, so leave only the
- "--indent-heuristic" option and remove the other one.
+ The gitattributes machinery is being taught to work better in a
+ multi-threaded environment.
+ Needs review.
-* jt/fetch-no-redundant-tag-fetch-map (2016-11-11) 1 commit
- (merged to 'next' on 2016-12-05 at 432f9469a7)
- + fetch: do not redundantly calculate tag refmap
- Originally merged to 'next' on 2016-11-16
+* jk/loose-object-fsck (2017-01-15) 6 commits
+ - fsck: detect trailing garbage in all object types
+ - fsck: parse loose object paths directly
+ - sha1_file: add read_loose_object() function
+ - t1450: test fsck of packed objects
+ - sha1_file: fix error message for alternate objects
+ - t1450: refactor loose-object removal
- Code cleanup to avoid using redundant refspecs while fetching with
- the --tags option.
+ "git fsck" inspects loose objects more carefully now.
+ Needs review.
-* mh/fast-import-notes-fix-new (2016-12-20) 1 commit
- (merged to 'next' on 2016-12-27 at b63805e6f6)
- + fast-import: properly fanout notes when tree is imported
- "git fast-import" sometimes mishandled while rebalancing notes
- tree, which has been fixed.
+* rh/diff-orderfile-doc (2017-01-15) 2 commits
+ - diff: document the format of the -O (diff.orderFile) file
+ - diff: document behavior of relative diff.orderFile
+ Documentation fix.
-* mm/gc-safety-doc (2016-11-16) 1 commit
- (merged to 'next' on 2016-12-05 at 031ecc1886)
- + git-gc.txt: expand discussion of races with other processes
+ Will merge to 'next'.
- Originally merged to 'next' on 2016-11-17
- Doc update.
+* sb/cd-then-git-can-be-written-as-git-c (2017-01-13) 1 commit
+ - lib-submodule-update.sh: reduce use of subshell by using "git -C"
+ Test clean-up.
-* mm/push-social-engineering-attack-doc (2016-11-14) 1 commit
- (merged to 'next' on 2016-12-05 at 9a2b5bd1a9)
- + doc: mention transfer data leaks in more places
+ Will merge to 'next'.
- Originally merged to 'next' on 2016-11-16
- Doc update on fetching and pushing.
+* vn/xdiff-func-context (2017-01-15) 1 commit
+ - xdiff -W: relax end-of-file function detection
+ "git diff -W" has been taught to handle the case where a new
+ function is added at the end of the file better.
-* nd/config-misc-fixes (2016-12-22) 3 commits
- (merged to 'next' on 2016-12-27 at 6be64a8671)
- + config.c: handle lock file in error case in git_config_rename_...
- + config.c: rename label unlock_and_out
- + config.c: handle error case for fstat() calls
+ Will hold.
+ An follow-up change to go back from the line that matches the
+ funcline to show comments before the function definition is still
+ being discussed.
- Leakage of lockfiles in the config subsystem has been fixed.
+* ws/request-pull-code-cleanup (2017-01-15) 1 commit
+ - request-pull: drop old USAGE stuff
-* sb/submodule-embed-gitdir (2016-12-27) 7 commits
- (merged to 'next' on 2016-12-27 at 2b43c15479)
- + worktree: initialize return value for submodule_uses_worktrees
- (merged to 'next' on 2016-12-21 at e6cdbcf013)
- + submodule: add absorb-git-dir function
- + move connect_work_tree_and_git_dir to dir.h
- + worktree: check if a submodule uses worktrees
- + test-lib-functions.sh: teach test_commit -C <dir>
- + submodule helper: support super prefix
- + submodule: use absolute path for computing relative path connecting
- (this branch is used by sb/submodule-rm-absorb.)
+ Code clean-up.
- A new submodule helper "git submodule embedgitdirs" to make it
- easier to move embedded .git/ directory for submodules in a
- superproject to .git/modules/ (and point the latter with the former
- that is turned into a "gitdir:" file) has been added.
+ Will merge to 'next'.
--------------------------------------------------
-[New Topics]
+[Stalled]
+
+* jk/nofollow-attr-ignore (2016-11-02) 5 commits
+ . exclude: do not respect symlinks for in-tree .gitignore
+ . attr: do not respect symlinks for in-tree .gitattributes
+ . exclude: convert "check_index" into a flags field
+ . attr: convert "macro_ok" into a flags field
+ . add open_nofollow() helper
+
+ As we do not follow symbolic links when reading control files like
+ .gitignore and .gitattributes from the index, match the behaviour
+ and not follow symbolic links when reading them from the working
+ tree. This also tightens security a bit by not leaking contents of
+ an unrelated file in the error messages when it is pointed at by
+ one of these files that is a symbolic link.
+
+ Perhaps we want to cover .gitmodules too with the same mechanism?
+
+ Ejected for now.
+
+
+* jc/bundle (2016-03-03) 6 commits
+ - index-pack: --clone-bundle option
+ - Merge branch 'jc/index-pack' into jc/bundle
+ - bundle v3: the beginning
+ - bundle: keep a copy of bundle file name in the in-core bundle header
+ - bundle: plug resource leak
+ - bundle doc: 'verify' is not about verifying the bundle
+
+ The beginning of "split bundle", which could be one of the
+ ingredients to allow "git clone" traffic off of the core server
+ network to CDN.
+
+ While I think it would make it easier for people to experiment and
+ build on if the topic is merged to 'next', I am at the same time a
+ bit reluctant to merge an unproven new topic that introduces a new
+ file format, which we may end up having to support til the end of
+ time. It is likely that to support a "prime clone from CDN", it
+ would need a lot more than just "these are the heads and the pack
+ data is over there", so this may not be sufficient.
+
+ Will discard.
+
+
+* jc/diff-b-m (2015-02-23) 5 commits
+ . WIPWIP
+ . WIP: diff-b-m
+ - diffcore-rename: allow easier debugging
+ - diffcore-rename.c: add locate_rename_src()
+ - diffcore-break: allow debugging
+
+ "git diff -B -M" produced incorrect patch when the postimage of a
+ completely rewritten file is similar to the preimage of a removed
+ file; such a resulting file must not be expressed as a rename from
+ other place.
+
+ The fix in this patch is broken, unfortunately.
+
+ Will discard.
+
+--------------------------------------------------
+[Cooking]
* ls/p4-retry-thrice (2016-12-29) 1 commit
(merged to 'next' on 2017-01-10 at c733e27410)
Will merge to 'master'.
-* js/asciidoctor-tweaks (2017-01-07) 1 commit
+* js/asciidoctor-tweaks (2017-01-13) 2 commits
+ (merged to 'next' on 2017-01-15 at 8553c6e513)
+ + asciidoctor: fix user-manual to be built by `asciidoctor`
(merged to 'next' on 2017-01-10 at 087da7b7c1)
+ giteveryday: unbreak rendering with AsciiDoctor
Will merge to 'master'.
-* sb/remove-gitview (2017-01-07) 1 commit
+* sb/remove-gitview (2017-01-13) 4 commits
+ (merged to 'next' on 2017-01-15 at 7c9eae479e)
+ + doc: git-gui browser does not default to HEAD
+ + doc: gitk: add the upstream repo location
+ + doc: gitk: remove gitview reference
(merged to 'next' on 2017-01-10 at dcb3abd146)
+ contrib: remove gitview
Will merge to 'master'.
---------------------------------------------------
-[Stalled]
-
-* jk/nofollow-attr-ignore (2016-11-02) 5 commits
- - exclude: do not respect symlinks for in-tree .gitignore
- - attr: do not respect symlinks for in-tree .gitattributes
- - exclude: convert "check_index" into a flags field
- - attr: convert "macro_ok" into a flags field
- - add open_nofollow() helper
-
- As we do not follow symbolic links when reading control files like
- .gitignore and .gitattributes from the index, match the behaviour
- and not follow symbolic links when reading them from the working
- tree. This also tightens security a bit by not leaking contents of
- an unrelated file in the error messages when it is pointed at by
- one of these files that is a symbolic link.
-
- Perhaps we want to cover .gitmodules too with the same mechanism?
-
-
-* jc/bundle (2016-03-03) 6 commits
- - index-pack: --clone-bundle option
- - Merge branch 'jc/index-pack' into jc/bundle
- - bundle v3: the beginning
- - bundle: keep a copy of bundle file name in the in-core bundle header
- - bundle: plug resource leak
- - bundle doc: 'verify' is not about verifying the bundle
-
- The beginning of "split bundle", which could be one of the
- ingredients to allow "git clone" traffic off of the core server
- network to CDN.
-
- While I think it would make it easier for people to experiment and
- build on if the topic is merged to 'next', I am at the same time a
- bit reluctant to merge an unproven new topic that introduces a new
- file format, which we may end up having to support til the end of
- time. It is likely that to support a "prime clone from CDN", it
- would need a lot more than just "these are the heads and the pack
- data is over there", so this may not be sufficient.
-
- Will discard.
-
-
-* jc/diff-b-m (2015-02-23) 5 commits
- . WIPWIP
- . WIP: diff-b-m
- - diffcore-rename: allow easier debugging
- - diffcore-rename.c: add locate_rename_src()
- - diffcore-break: allow debugging
-
- "git diff -B -M" produced incorrect patch when the postimage of a
- completely rewritten file is similar to the preimage of a removed
- file; such a resulting file must not be expressed as a rename from
- other place.
-
- The fix in this patch is broken, unfortunately.
-
- Will discard.
-
---------------------------------------------------
-[Cooking]
* nd/worktree-move (2017-01-09) 6 commits
- worktree remove: new command
cf. <20161007210721.20437-1-santiago@nyu.edu>
-* sb/attr (2016-11-11) 35 commits
- . completion: clone can initialize specific submodules
- . clone: add --init-submodule=<pathspec> switch
- . submodule update: add `--init-default-path` switch
- . pathspec: allow escaped query values
- . pathspec: allow querying for attributes
- . pathspec: move prefix check out of the inner loop
- . pathspec: move long magic parsing out of prefix_pathspec
- - Documentation: fix a typo
- - attr: keep attr stack for each check
- - attr: convert to new threadsafe API
- - attr: make git_check_attr_counted static
- - attr.c: outline the future plans by heavily commenting
- - attr.c: always pass check[] to collect_some_attrs()
- - attr.c: introduce empty_attr_check_elems()
- - attr.c: correct ugly hack for git_all_attrs()
- - attr.c: rename a local variable check
- - attr.c: pass struct git_attr_check down the callchain
- - attr.c: add push_stack() helper
- - attr: support quoting pathname patterns in C style
- - attr: expose validity check for attribute names
- - attr: add counted string version of git_check_attr()
- - attr: retire git_check_attrs() API
- - attr: convert git_check_attrs() callers to use the new API
- - attr: convert git_all_attrs() to use "struct git_attr_check"
- - attr: (re)introduce git_check_attr() and struct git_attr_check
- - attr: rename function and struct related to checking attributes
- - attr.c: plug small leak in parse_attr_line()
- - attr.c: tighten constness around "git_attr" structure
- - attr.c: simplify macroexpand_one()
- - attr.c: mark where #if DEBUG ends more clearly
- - attr.c: complete a sentence in a comment
- - attr.c: explain the lack of attr-name syntax check in parse_attr()
- - attr.c: update a stale comment on "struct match_attr"
- - attr.c: use strchrnul() to scan for one line
- - commit.c: use strchrnul() to scan for one line
-
- The attributes API has been updated so that it can later be
- optimized using the knowledge of which attributes are queried.
- Building on top of the updated API, the pathspec machinery learned
- to select only paths with given attributes set.
-
- The parts near the tip about pathspec would need to work better
- with bw/pathspec-cleanup topic and has been dropped for now.
-
-
-* sg/fix-versioncmp-with-common-suffix (2016-12-08) 8 commits
+* sg/fix-versioncmp-with-common-suffix (2017-01-12) 8 commits
- versioncmp: generalize version sort suffix reordering
- - squash! versioncmp: use earliest-longest contained suffix to determine sorting order
+ - versioncmp: factor out helper for suffix matching
- versioncmp: use earliest-longest contained suffix to determine sorting order
- versioncmp: cope with common part overlapping with prerelease suffix
- versioncmp: pass full tagnames to swap_prereleases()
same release were present (e.g. when 2.0, 2.0-beta1, and 2.0-beta2
are there and the code needs to compare 2.0-beta1 and 2.0-beta2).
- Will merge to 'next' after squashing.
- cf. <20161208142401.1329-1-szeder.dev@gmail.com>
+ Will merge to 'next'.
* jc/merge-drop-old-syntax (2015-04-29) 1 commit
--------------------------------------------------
[Discarded]
-* rs/unpack-trees-reduce-file-scope-global (2016-12-31) 1 commit
- . unpack-trees: move checkout state into check_updates
-
- Code cleanup.
-
- Superseded by sb/unpack-trees-cleanup
-
-
-* jc/reset-unmerge (2016-10-24) 1 commit
- . reset: --unmerge
-
- After "git add" is run prematurely during a conflict resolution,
- "git diff" can no longer be used as a way to sanity check by
- looking at the combined diff. "git reset" learned a new
- "--unmerge" option to recover from this situation.
-
- This may not be needed, given that update-index has a similar
- option.
-
-
-* jc/merge-base-fp-only (2016-10-19) 8 commits
- . merge-base: fp experiment
- . merge: allow to use only the fp-only merge bases
- . merge-base: limit the output to bases that are on first-parent chain
- . merge-base: mark bases that are on first-parent chain
- . merge-base: expose get_merge_bases_many_0() a bit more
- . merge-base: stop moving commits around in remove_redundant()
- . sha1_name: remove ONELINE_SEEN bit
- . commit: simplify fastpath of merge-base
-
- An experiment of merge-base that ignores common ancestors that are
- not on the first parent chain.
-
- The whole premise feels wrong.
-
-
-* tb/convert-stream-check (2016-10-27) 2 commits
- . convert.c: stream and fast search for binary
- . read-cache: factor out get_sha1_from_index() helper
-
- End-of-line conversion sometimes needs to see if the current blob
- in the index has NULs and CRs to base its decision. We used to
- always get a full statistics over the blob, but in many cases we
- can return early when we have seen "enough" (e.g. if we see a
- single NUL, the blob will be handled as binary). The codepaths
- have been optimized by using streaming interface.
-
- Retracted.
- cf. <20161102071646.GA5094@tb-raspi>
-
-
-* mh/connect (2016-06-06) 10 commits
- . connect: [host:port] is legacy for ssh
- . connect: move ssh command line preparation to a separate function
- . connect: actively reject git:// urls with a user part
- . connect: change the --diag-url output to separate user and host
- . connect: make parse_connect_url() return the user part of the url as a separate value
- . connect: group CONNECT_DIAG_URL handling code
- . connect: make parse_connect_url() return separated host and port
- . connect: re-derive a host:port string from the separate host and port variables
- . connect: call get_host_and_port() earlier
- . connect: document why we sometimes call get_port after get_host_and_port
-
- Rewrite Git-URL parsing routine (hopefully) without changing any
- behaviour.
-
- It has been months without any support.
-
-
-* ec/annotate-deleted (2015-11-20) 1 commit
- . annotate: skip checking working tree if a revision is provided
-
- Usability fix for annotate-specific "<file> <rev>" syntax with deleted
- files.
-
- Has been waiting for a review for too long without seeing anything.
-
-
-* dk/gc-more-wo-pack (2016-01-13) 4 commits
- . gc: clean garbage .bitmap files from pack dir
- . t5304: ensure non-garbage files are not deleted
- . t5304: test .bitmap garbage files
- . prepare_packed_git(): find more garbage
+* sb/attr (2016-11-11) 35 commits
+ . completion: clone can initialize specific submodules
+ . clone: add --init-submodule=<pathspec> switch
+ . submodule update: add `--init-default-path` switch
+ . pathspec: allow escaped query values
+ . pathspec: allow querying for attributes
+ . pathspec: move prefix check out of the inner loop
+ . pathspec: move long magic parsing out of prefix_pathspec
+ . Documentation: fix a typo
+ . attr: keep attr stack for each check
+ . attr: convert to new threadsafe API
+ . attr: make git_check_attr_counted static
+ . attr.c: outline the future plans by heavily commenting
+ . attr.c: always pass check[] to collect_some_attrs()
+ . attr.c: introduce empty_attr_check_elems()
+ . attr.c: correct ugly hack for git_all_attrs()
+ . attr.c: rename a local variable check
+ . attr.c: pass struct git_attr_check down the callchain
+ . attr.c: add push_stack() helper
+ . attr: support quoting pathname patterns in C style
+ . attr: expose validity check for attribute names
+ . attr: add counted string version of git_check_attr()
+ . attr: retire git_check_attrs() API
+ . attr: convert git_check_attrs() callers to use the new API
+ . attr: convert git_all_attrs() to use "struct git_attr_check"
+ . attr: (re)introduce git_check_attr() and struct git_attr_check
+ . attr: rename function and struct related to checking attributes
+ . attr.c: plug small leak in parse_attr_line()
+ . attr.c: tighten constness around "git_attr" structure
+ . attr.c: simplify macroexpand_one()
+ . attr.c: mark where #if DEBUG ends more clearly
+ . attr.c: complete a sentence in a comment
+ . attr.c: explain the lack of attr-name syntax check in parse_attr()
+ . attr.c: update a stale comment on "struct match_attr"
+ . attr.c: use strchrnul() to scan for one line
+ . commit.c: use strchrnul() to scan for one line
- Follow-on to dk/gc-idx-wo-pack topic, to clean up stale
- .bitmap and .keep files.
+ The attributes API has been updated so that it can later be
+ optimized using the knowledge of which attributes are queried.
+ Building on top of the updated API, the pathspec machinery learned
+ to select only paths with given attributes set.
- Has been waiting for a reroll for too long.
- cf. <xmqq60ypbeng.fsf@gitster.mtv.corp.google.com>
+ Superseded by bw/attr topic.