To: git@vger.kernel.org
Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Jul 2015, #07; Mon, 27)
+Subject: What's cooking in git.git (Jul 2015, #08; Fri, 31)
X-master-at: a17c56c056d5fea0843b429132904c429a900229
-X-next-at: 0029c496ce1b91f10b75ade16604b8e9f5d8d20b
+X-next-at: d2dd00455917b2356208ce67ac57c55cac7c4abd
-What's cooking in git.git (Jul 2015, #07; Mon, 27)
+What's cooking in git.git (Jul 2015, #08; Fri, 31)
--------------------------------------------------
Here are the topics that have been cooking. Commits prefixed with
--------------------------------------------------
[New Topics]
-* da/subtree-date-confusion (2015-07-23) 1 commit
- - contrib/subtree: ignore log.date configuration
+* dt/reflog-tests (2015-07-28) 2 commits
+ - tests: remove some direct access to .git/logs
+ - t/t7509: remove unnecessary manipulation of reflog
- "git subtree" (in contrib/) depended on "git log" output to be
- stable, which was a no-no. Apply a workaround to force a
- particular date format.
+ Update tests not to assume how reflogs are represented on the
+ filesystem too much.
Will merge to 'next'.
-* db/send-pack-user-signingkey (2015-07-21) 1 commit
- - builtin/send-pack.c: respect user.signingkey
+* dt/unpack-trees-cache-tree-revalidate (2015-07-28) 1 commit
+ - unpack-trees: populate cache-tree on successful merge
- The low-level "git send-pack" did not honor 'user.signingkey'
- configuration variable when sending a signed-push.
+ Upon a successful merge into the index, repopulate the cache-tree,
+ so that subsequent "diff-index --cached" (hence "status") and
+ "write-tree" (hence "commit") will go faster.
+
+ The same logic in "git checkout" may now be removed, but that is a
+ separate issue.
Will merge to 'next'.
-* jk/refspec-parse-wildcard (2015-07-27) 2 commits
- - refs: loosen restriction on wildcard "*" refspecs
- - refs: cleanup comments regarding check_refname_component()
+* jk/negative-hiderefs (2015-07-28) 2 commits
+ - refs: support negative transfer.hideRefs
+ - docs/config.txt: reorder hideRefs config
- Allow an asterisk as a substring (as opposed to the entirety) of
- a path component for both side of a refspec, e.g.
- "refs/heads/o*:refs/remotes/heads/i*".
+ Allow negative !ref entry in multi-value transfer.hideRefs
+ configuration to say "don't hide this one".
+
+ An update to test coming?
+
+
+* mh/get-remote-group-fix (2015-07-28) 4 commits
+ - get_remote_group(): use skip_prefix()
+ - get_remote_group(): eliminate superfluous call to strcspn()
+ - get_remote_group(): rename local variable "space" to "wordlen"
+ - get_remote_group(): handle remotes with single-character names
+
+ An off-by-one error made "git remote" to mishandle a remote with a
+ single letter nickname.
Will merge to 'next'.
-* jx/do-not-crash-receive-pack-wo-head (2015-07-22) 1 commit
- - receive-pack: crash when checking with non-exist HEAD
+* ta/docfix-index-format-tech (2015-07-28) 1 commit
+ - typofix for index-format.txt
Will merge to 'next'.
-* kd/pull-rebase-autostash (2015-07-22) 1 commit
- - pull: allow dirty tree when rebase.autostash enabled
- (this branch uses pt/pull-builtin; is tangled with pt/am-builtin.)
+* dt/notes-multiple (2015-07-31) 2 commits
+ - notes: handle multiple worktrees
+ - worktrees: add die_if_shared_symref
+ (this branch uses es/worktree-add and es/worktree-add-cleanup.)
- Teach "git pull --rebase" to pay attention to rebase.autostash
- configuration.
+ Forbid simultaneous "notes merge" to happen for the same ref in
+ refs/notes/* when linked worktree is used.
+
+
+* dt/refs-pseudo (2015-07-31) 5 commits
+ - sequencer: replace write_cherry_pick_head with update_ref
+ - bisect: use update_ref
+ - pseudorefs: create and use pseudoref update and delete functions
+ - refs: add ref_type function
+ - refs: introduce pseudoref and per-worktree ref concepts
+ (this branch uses dt/refs-backend-preamble.)
+
+ To prepare for allowing a different "ref" backend to be plugged in
+ to the system, teach update_ref()/delete_ref() about ref-like
+ things like MERGE_HEAD that are per-worktree (they will always be
+ written to the filesystem inside $GIT_DIR).
+
+ Will merge to 'next'.
+
+
+* dt/untracked-sparse (2015-07-31) 1 commit
+ - untracked-cache: support sparse checkout
+
+ Allow untracked cache (experimental) to be used when sparse
+ checkout (experimental) is also in use.
+
+
+* mm/for-each-ref-fixup (2015-07-29) 1 commit
+ (merged to 'next' on 2015-07-29 at 32760e8)
+ + fixup 39c528f0 ref-filter: fix indentation
+ (this branch uses kn/for-each-ref; is tangled with kn/for-each-tag-branch.)
+
+ Will squash into kn/for-each-tag-branch and rebuild 'next'.
+
+
+* pt/am-builtin-fix (2015-07-28) 1 commit
+ - am: let command-line options override saved options
+ (this branch uses pt/am-builtin and pt/pull-builtin; is tangled with kd/pull-rebase-autostash.)
+
+ With "git am --options" followed by "git am --other-options", the
+ options given in a later invocation should override the initial
+ options for a single invocation, but the rewritten "git am" didn't.
+
+ Expecting a reroll.
+
+
+* rj/bisect-terms-fixup (2015-07-30) 1 commit
+ - bisect: add read_bisect_terms() to the public interface
+ (this branch uses ad/bisect-cleanup and ad/bisect-terms.)
+
+ Will squash into ad/bisect-cleanup.
-* es/doc-clean-outdated-tools (2015-07-25) 5 commits
- - Documentation/git-tools: drop references to defunct tools
- - Documentation/git-tools: drop references to defunct tools
- - Documentation/git-tools: fix item text formatting
- - Documentation/git-tools: improve discoverability of Git wiki
- - Documentation/git: drop outdated Cogito reference
+* sb/parse-options-codeformat (2015-07-29) 1 commit
+ - parse-options: align curly braces for all options
+
+ Will merge to 'next'.
+
+
+* sb/remove-unused-var-from-builtin-add (2015-07-31) 1 commit
+ - add: remove dead code
Will merge to 'next'.
What's the status of this one?
-* bc/object-id (2015-06-17) 10 commits
- . remote.c: use struct object_id in many functions
- . object-id: use struct object_id in struct object
- . remote.c: use struct object_id in ref_newer()
- . transport-helper.c: use struct object_id in push_refs_with_export()
- . connect.c: use struct object_id in get_remote_heads()
- . remote-curl: use struct object_id in parse_fetch()
- . fetch-pack: use struct object_id in add_sought_entry_mem()
- . object_id: convert struct ref to use object_id.
- . sha1_file: introduce has_object_file() helper
- . refs: convert some internal functions to use object_id
-
- More transition from "unsigned char[40]" to "struct object_id".
-
- While GSoC and other topics are actively moving existing code
- around, this cannot go in; ejected from 'pu'.
-
-
* wp/sha1-name-negative-match (2015-06-08) 2 commits
- sha1_name.c: introduce '^{/!-<negative pattern>}' notation
- test for '!' handling in rev-parse's named commits
- bisect: add 'git bisect terms' to view the current terms
- bisect: add the terms old/new
- bisect: sanity check on terms
- (this branch uses ad/bisect-cleanup.)
+ (this branch is used by rj/bisect-terms-fixup; uses ad/bisect-cleanup.)
The use of 'good/bad' in "git bisect" made it confusing to use when
hunting for a state change that is not a regression (e.g. bugfix).
* mh/numparse (2015-03-19) 14 commits
- - diff_opt_parse(): use convert_i() when handling --abbrev=<num>
- - diff_opt_parse(): use convert_i() when handling "-l<num>"
- - opt_arg(): simplify pointer handling
- - opt_arg(): report errors parsing option values
- - opt_arg(): use convert_i() in implementation
- - opt_arg(): val is always non-NULL
- - builtin_diff(): detect errors when parsing --unified argument
- - handle_revision_opt(): use convert_ui() when handling "--abbrev="
- - strtoul_ui(), strtol_i(): remove functions
- - handle_revision_opt(): use convert_i() when handling "-<digit>"
- - handle_revision_opt(): use skip_prefix() in many places
- - write_subdirectory(): use convert_ui() for parsing mode
- - cacheinfo_callback(): use convert_ui() when handling "--cacheinfo"
- - numparse: new module for parsing integral numbers
+ . diff_opt_parse(): use convert_i() when handling --abbrev=<num>
+ . diff_opt_parse(): use convert_i() when handling "-l<num>"
+ . opt_arg(): simplify pointer handling
+ . opt_arg(): report errors parsing option values
+ . opt_arg(): use convert_i() in implementation
+ . opt_arg(): val is always non-NULL
+ . builtin_diff(): detect errors when parsing --unified argument
+ . handle_revision_opt(): use convert_ui() when handling "--abbrev="
+ . strtoul_ui(), strtol_i(): remove functions
+ . handle_revision_opt(): use convert_i() when handling "-<digit>"
+ . handle_revision_opt(): use skip_prefix() in many places
+ . write_subdirectory(): use convert_ui() for parsing mode
+ . cacheinfo_callback(): use convert_ui() when handling "--cacheinfo"
+ . numparse: new module for parsing integral numbers
Many codepaths use unchecked use of strtol() and friends (or even
worse, atoi()). Introduce a set of wrappers that try to be more
($gmane/268058).
-* jc/a-lone-dash-stands-for-previous-branch (2015-03-16) 1 commit
- - "-" and "@{-1}" on various programs
-
- Lose special case code to make a lone dash "-" mean the previous
- branch aka "@{-1}" from a handful subcommands, and instead support
- the notation throughout the system by reimplementing it at the
- revisions layer.
-
- Needs tests, documentation updates, etc. Also does only a half-way
- job dealing with range notation, which needs to be fixed before the
- series goes anywhere.
-
-
* nd/list-files (2015-02-09) 21 commits
- t3080: tests for git-list-files
- list-files: -M aka diff-cached
Waiting for a further polished reroll ($gmane/265534).
-* nd/pathspec-strip-fix (2015-04-18) 1 commit
- - pathspec: adjust prefixlen after striping trailing slash
-
- Does not quite fix ($gmane/267614).
- Will discard.
-
-
* jc/diff-b-m (2015-02-23) 5 commits
. WIPWIP
. WIP: diff-b-m
--------------------------------------------------
[Cooking]
+* da/subtree-date-confusion (2015-07-23) 1 commit
+ (merged to 'next' on 2015-07-29 at 01016b1)
+ + contrib/subtree: ignore log.date configuration
+
+ "git subtree" (in contrib/) depended on "git log" output to be
+ stable, which was a no-no. Apply a workaround to force a
+ particular date format.
+
+ Will merge to 'master'.
+
+
+* db/send-pack-user-signingkey (2015-07-21) 1 commit
+ (merged to 'next' on 2015-07-29 at b0d62e9)
+ + builtin/send-pack.c: respect user.signingkey
+
+ The low-level "git send-pack" did not honor 'user.signingkey'
+ configuration variable when sending a signed-push.
+
+ Will merge to 'master'.
+
+
+* jk/refspec-parse-wildcard (2015-07-27) 2 commits
+ (merged to 'next' on 2015-07-29 at eb48d2f)
+ + refs: loosen restriction on wildcard "*" refspecs
+ + refs: cleanup comments regarding check_refname_component()
+
+ Allow an asterisk as a substring (as opposed to the entirety) of
+ a path component for both side of a refspec, e.g.
+ "refs/heads/o*:refs/remotes/heads/i*".
+
+ Will merge to 'master'.
+
+
+* jx/do-not-crash-receive-pack-wo-head (2015-07-22) 1 commit
+ (merged to 'next' on 2015-07-29 at 227d0d9)
+ + receive-pack: crash when checking with non-exist HEAD
+
+ Will merge to 'master'.
+
+
+* kd/pull-rebase-autostash (2015-07-22) 1 commit
+ - pull: allow dirty tree when rebase.autostash enabled
+ (this branch uses pt/pull-builtin; is tangled with pt/am-builtin and pt/am-builtin-fix.)
+
+ Teach "git pull --rebase" to pay attention to rebase.autostash
+ configuration.
+
+ Will hold until the dependant topics graduates and then rebase to
+ 'master' after that.
+
+
+* es/doc-clean-outdated-tools (2015-07-28) 5 commits
+ (merged to 'next' on 2015-07-29 at 6d80251)
+ + Documentation/git-tools: retire manually-maintained list
+ + Documentation/git-tools: drop references to defunct tools
+ + Documentation/git-tools: fix item text formatting
+ + Documentation/git-tools: improve discoverability of Git wiki
+ + Documentation/git: drop outdated Cogito reference
+
+ Will merge to 'master'.
+
+
* zb/userdiff-fountain (2015-07-23) 1 commit
(merged to 'next' on 2015-07-23 at e177995)
+ userdiff: add support for Fountain documents
+ Documentation/config: fix stale "git prune --worktree" reference
+ Documentation/git-worktree: fix incorrect reference to file "locked"
+ Documentation/git-worktree: consistently use term "linked working tree"
- (this branch is used by es/worktree-add-cleanup.)
+ (this branch is used by dt/notes-multiple and es/worktree-add-cleanup.)
Will merge to 'master'.
Will merge to 'master'.
-* es/worktree-add-cleanup (2015-07-24) 24 commits
- - Documentation/config: mention "now" and "never" for 'expire' settings
+* es/worktree-add-cleanup (2015-07-28) 24 commits
+ (merged to 'next' on 2015-07-29 at d2dd004)
+ + Documentation/config: mention "now" and "never" for 'expire' settings
(merged to 'next' on 2015-07-27 at 25f086d)
+ Documentation/git-worktree: fix broken 'linkgit' invocation
(merged to 'next' on 2015-07-23 at ecb1e1a)
+ checkout: improve die_if_checked_out() robustness
+ checkout: name check_linked_checkouts() more meaningfully
+ checkout: avoid resolving HEAD unnecessarily
- (this branch uses es/worktree-add.)
+ (this branch is used by dt/notes-multiple; uses es/worktree-add.)
Remove the "new-worktree-mode" hack in "checkout" that was added in
nd/multiple-work-trees topic by updating the implementation of new
"worktree add".
- $gmane/274647
+ Will merge to 'master'.
* ib/scripted-parse-opt-better-hint-string (2015-07-15) 1 commit
+ ref-filter: implement '--points-at' option
+ tag: libify parse_opt_points_at()
+ t6302: for-each-ref tests for ref-filter APIs
- (this branch uses kn/for-each-ref.)
+ (this branch uses kn/for-each-ref; is tangled with mm/for-each-ref-fixup.)
Port features over from tag -l and branch -l to for-each-ref
so that eventually the unified implementation can be used to
reimplement tag -l and branch -l, shared across all three, in
a follow-up series or two.
- Will merge to 'master'.
+ Squash mm/for-each-ref-fixup into "move code from 'for-each-ref',
+ and then keep in 'next'.
* pt/am-builtin (2015-07-20) 46 commits
+ wrapper: implement xfopen()
+ wrapper: implement xopen()
+ Merge branch 'pt/pull-builtin' into pt/am-builtin
- (this branch uses pt/pull-builtin; is tangled with kd/pull-rebase-autostash.)
+ (this branch is used by pt/am-builtin-fix; uses pt/pull-builtin; is tangled with kd/pull-rebase-autostash.)
Rewrite "am" in "C".
- Still buggy around "am" and then "am -3" workflow.
+ Almost there.
* ad/bisect-cleanup (2015-06-29) 6 commits
+ Documentation/bisect: revise overall content
+ Documentation/bisect: move getting help section to the end
+ bisect: correction of typo
- (this branch is used by ad/bisect-terms.)
+ (this branch is used by ad/bisect-terms and rj/bisect-terms-fixup.)
Code and documentation clean-up to "git bisect".
- Will merge to 'master'.
+ Will squash rj/bisect-terms-fixup in and rebuild 'next'.
* mh/fast-import-get-mark (2015-07-01) 1 commit
+ refs: new public ref function: safe_create_reflog
+ refs: break out check for reflog autocreation
+ refs.c: add err arguments to reflog functions
+ (this branch is used by dt/refs-pseudo.)
In preparation for allowing different "backends" to store the refs
in a way different from the traditional "one ref per file in $GIT_DIR
Will merge to 'master'.
-* jc/rerere (2015-07-24) 21 commits
+* jc/rerere (2015-07-30) 21 commits
- rerere: un-nest merge() further
- rerere: use "struct rerere_id" instead of "char *" for conflict ID
- rerere: call conflict-ids IDs
Code clean-up and minor fixes (so far).
-* jc/rerere-multi (2015-07-24) 6 commits
- . t4200: rerere a merge with two identical conflicts
+* jc/rerere-multi (2015-07-31) 8 commits
. WIP
+ . t4200: rerere a merge with two identical conflicts
+ . fixup! rerere: allow multiple variants to exist
+ . rerere: allow multiple variants to exist
- rerere: delay the recording of preimage
- rerere: handle leftover rr-cache/$ID directory and postimage files
- rerere: scan $GIT_DIR/rr-cache/$ID when instantiating a rerere_id
+ for-each-ref: rename 'refinfo' to 'ref_array_item'
+ for-each-ref: clean up code
+ for-each-ref: extract helper functions out of grab_single_ref()
- (this branch is used by kn/for-each-tag-branch.)
+ (this branch is used by kn/for-each-tag-branch and mm/for-each-ref-fixup.)
GSoC project to rebuild ref listing by branch and tag based on the
for-each-ref machinery. This is its first part.
+ argv-array: implement argv_array_pushv()
+ parse-options-cb: implement parse_opt_passthru_argv()
+ parse-options-cb: implement parse_opt_passthru()
- (this branch is used by kd/pull-rebase-autostash and pt/am-builtin.)
+ (this branch is used by kd/pull-rebase-autostash, pt/am-builtin and pt/am-builtin-fix.)
Reimplement 'git pull' in C.
Will merge to 'master'.
-* jc/push-tags-also (2015-05-29) 1 commit
- - push --tags: push tags *in addition to* other stuff
-
- "git fetch --tags" learned to fetch tags in addition to other stuff
- a few years ago, but "git push --tags" didn't. Now it does.
-
- A change to push out more than before always invites "what if the
- user makes a mistake" worries.
-
- Will discard.
-
-
* jc/commit-slab (2015-05-22) 1 commit
(merged to 'next' on 2015-07-15 at 4c83475)
+ commit-slab: introduce slabname##_peek() function
A fresh restart will not be rejected, but ejected from my tree for
now.
+
+
+* jc/a-lone-dash-stands-for-previous-branch (2015-03-16) 1 commit
+ - "-" and "@{-1}" on various programs
+
+ Lose special case code to make a lone dash "-" mean the previous
+ branch aka "@{-1}" from a handful subcommands, and instead support
+ the notation throughout the system by reimplementing it at the
+ revisions layer.
+
+ Needs tests, documentation updates, etc. Also does only a half-way
+ job dealing with range notation, which needs to be fixed before the
+ series goes anywhere.
+
+
+* jc/push-tags-also (2015-05-29) 1 commit
+ - push --tags: push tags *in addition to* other stuff
+
+ "git fetch --tags" learned to fetch tags in addition to other stuff
+ a few years ago, but "git push --tags" didn't. Now it does.
+
+ A change to push out more than before always invites "what if the
+ user makes a mistake" worries.
+
+ Will discard.
+
+
+* nd/pathspec-strip-fix (2015-04-18) 1 commit
+ - pathspec: adjust prefixlen after striping trailing slash
+
+ Does not quite fix ($gmane/267614).
+ Will discard.