To: git@vger.kernel.org
Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Jun 2015, #02; Fri, 5)
+Subject: What's cooking in git.git (Jun 2015, #03; Wed, 10)
X-master-at: 7974889a053574e449b55ca543a486e38e74864f
X-next-at: 1a18470cb8c6fbcf40b535cf669aa165844706d5
-What's cooking in git.git (Jun 2015, #02; Fri, 5)
+What's cooking in git.git (Jun 2015, #03; Wed, 10)
--------------------------------------------------
Here are the topics that have been cooking. Commits prefixed with
'-' are only in 'pu' (proposed updates) while commits prefixed with
'+' are in 'next'.
-A handful of topics that graduated to 'master' a few weeks ago are
-now in 'maint', the tip of which has been tagged as v2.4.3.
+Somehow we are getting quite a many new topics in the past few
+weeks. All the new contributors we acquired recently, including but
+not limited to the GSoC and Matthieu's students, are making good
+progress, throwing patches and responding to reviews in a reasonable
+way, proving themselves to be real assets to the community.
-On the 'master' front, another huge batch of "struct object_id"
-thing is now in. So is Peff's 'master@{push}' series.
+Which, I am very happy about, even though I am a bit behind catching
+up with them. "Let's skip commute to gain an extra productive hour"
+I tried yesterday did not help enough X-<. I am sure I've either
+missed or postponed more than a few topics. I'll try to get to them
+but some of them may fall in the cracks; please help by reviewing on
+uncommented patches.
You can find the changes described here in the integration branches
of the repositories listed at
http://git-blame.blogspot.com/p/git-public-repositories.html
---------------------------------------------------
-[Graduated to "master"]
-
-* bc/object-id (2015-05-25) 56 commits
- (merged to 'next' on 2015-05-26 at 8d9f645)
- + struct ref_lock: convert old_sha1 member to object_id
- + warn_if_dangling_symref(): convert local variable "junk" to object_id
- + each_ref_fn_adapter(): remove adapter
- + rev_list_insert_ref(): remove unneeded arguments
- + rev_list_insert_ref_oid(): new function, taking an object_oid
- + mark_complete(): remove unneeded arguments
- + mark_complete_oid(): new function, taking an object_oid
- + clear_marks(): rewrite to take an object_id argument
- + mark_complete(): rewrite to take an object_id argument
- + send_ref(): convert local variable "peeled" to object_id
- + upload-pack: rewrite functions to take object_id arguments
- + find_symref(): convert local variable "unused" to object_id
- + find_symref(): rewrite to take an object_id argument
- + write_one_ref(): rewrite to take an object_id argument
- + write_refs_to_temp_dir(): convert local variable sha1 to object_id
- + submodule: rewrite to take an object_id argument
- + shallow: rewrite functions to take object_id arguments
- + handle_one_ref(): rewrite to take an object_id argument
- + add_info_ref(): rewrite to take an object_id argument
- + handle_one_reflog(): rewrite to take an object_id argument
- + register_replace_ref(): rewrite to take an object_id argument
- + remote: rewrite functions to take object_id arguments
- + add_one_ref(): rewrite to take an object_id argument
- + string_list_add_one_ref(): rewrite to take an object_id argument
- + add_ref_decoration(): convert local variable original_sha1 to object_id
- + add_ref_decoration(): rewrite to take an object_id argument
- + show_head_ref(): convert local variable "unused" to object_id
- + http-backend: rewrite to take an object_id argument
- + append_similar_ref(): rewrite to take an object_id argument
- + builtin/show-ref: rewrite to take an object_id argument
- + show_ref(): convert local variable peeled to object_id
- + builtin/show-ref: rewrite to use object_id
- + fsck: change functions to use object_id
- + cmd_show_branch(): fix error message
- + builtin/show-branch: rewrite functions to work with object_id
- + append_one_rev(): rewrite to work with object_id
- + builtin/show-branch: rewrite functions to take object_id arguments
- + append_matching_ref(): rewrite to take an object_id argument
- + show_reference(): rewrite to take an object_id argument
- + builtin/remote: rewrite functions to take object_id arguments
- + add_branch_for_removal(): don't set "util" field of string_list entries
- + add_branch_for_removal(): rewrite to take an object_id argument
- + builtin/reflog: rewrite ref functions to take an object_id argument
- + show_ref_cb(): rewrite to take an object_id argument
- + builtin/pack-objects: rewrite to take an object_id argument
- + name_ref(): rewrite to take an object_id argument
- + grab_single_ref(): rewrite to take an object_id argument
- + builtin/fetch: rewrite to take an object_id argument
- + get_name(): rewrite to take an object_id argument
- + add_pending_uninteresting_ref(): rewrite to take an object_id argument
- + append_ref(): rewrite to take an object_id argument
- + register_ref(): rewrite to take an object_id argument
- + handle_one_ref(): rewrite to take an object_id argument
- + builtin/rev-parse: rewrite to take an object_id argument
- + each_ref_fn: change to take an object_id parameter
- + refs: convert struct ref_entry to use struct object_id
-
- for_each_ref() callback functions were taught to name the objects
- not with "unsigned char sha1[20]" but with "struct object_id".
-
-
-* jk/at-push-sha1 (2015-05-22) 16 commits
- (merged to 'next' on 2015-05-26 at d9d342f)
- + for-each-ref: accept "%(push)" format
- + for-each-ref: use skip_prefix instead of starts_with
- + sha1_name: implement @{push} shorthand
- + sha1_name: refactor interpret_upstream_mark
- + sha1_name: refactor upstream_mark
- + remote.c: add branch_get_push
- + remote.c: return upstream name from stat_tracking_info
- + remote.c: untangle error logic in branch_get_upstream
- + remote.c: report specific errors from branch_get_upstream
- + remote.c: introduce branch_get_upstream helper
- + remote.c: hoist read_config into remote_get_1
- + remote.c: provide per-branch pushremote name
- + remote.c: hoist branch.*.remote lookup out of remote_get_1
- + remote.c: drop "remote" pointer from "struct branch"
- + remote.c: refactor setup of branch->merge list
- + remote.c: drop default_remote_name variable
-
- Introduce <branch>@{push} short-hand to denote the remote-tracking
- branch that tracks the branch at the remote the <branch> would be
- pushed to.
-
-
-* ld/p4-editor-multi-words (2015-05-26) 3 commits
- (merged to 'next' on 2015-05-28 at a368a47)
- + git-p4: tests: use test-chmtime in place of touch
- + git-p4: fix handling of multi-word P4EDITOR
- + git-p4: add failing test for P4EDITOR handling
-
- Unlike "$EDITOR" and "$GIT_EDITOR" that can hold the path to the
- command and initial options (e.g. "/path/to/emacs -nw"), 'git p4'
- did not let the shell interpolate the contents of the environment
- variable that name the editor "$P4EDITOR" (and "$EDITOR", too).
- Make it in line with the rest of Git, as well as with Perforce.
-
--------------------------------------------------
[New Topics]
-* jc/ll-merge-expose-path (2015-06-04) 1 commit
- - ll-merge: pass the original path to external drivers
+* af/tcsh-completion-noclobber (2015-06-09) 1 commit
+ - git-completion.tcsh: fix redirect with noclobber
- Traditionally, external low-level 3-way merge drivers are expected
- to produce their results based solely on the contents of the three
- variants given in temporary files named by %O, %A and %B on their
- command line. Additionally allow them to look at the final path
- (given by %P).
+ The tcsh completion writes a bash scriptlet but that would have
+ failed for users with noclobber set.
+ Will merge to 'next'.
-* jk/log-missing-default-HEAD (2015-06-03) 1 commit
- - log: diagnose empty HEAD more clearly
- "git init empty && git -C empty log" said "bad default revision 'HEAD'",
- which was found to be a bit confusing to new users.
+* es/utf8-stupid-compiler-workaround (2015-06-05) 1 commit
+ - utf8: NO_ICONV: silence uninitialized variable warning
+ A compilation workaround.
-* nd/slim-index-pack-memory-usage (2015-06-04) 1 commit
- (merged to 'next' on 2015-06-04 at 328fd50)
- + index-pack: fix truncation of off_t in comparison
+ Will merge to 'next'.
- An earlier optimization broke index-pack for a large object
- transfer; this fixes it before the breakage hits any released
- version.
- Will merge to 'master'.
+* fk/doc-format-patch-vn (2015-06-10) 1 commit
+ - doc: format-patch: fix typo
+
+ Docfix.
+
+ Will merge to 'next'.
+
+
+* gp/status-rebase-i-info (2015-06-09) 5 commits
+ - SQUASH??? fix misindent
+ - status: add new tests for status during rebase -i
+ - status: give more information during rebase -i
+ - status: differentiate interactive from non-interactive rebases
+ - status: factor two rebase-related messages together
+
+ Teach "git status" to show a more detailed information regarding
+ the "rebase -i" session in progress.
+
+ Expecting a reroll.
+
+
+* jc/prompt-document-ps1-state-separator (2015-06-10) 1 commit
+ - git-prompt.sh: document GIT_PS1_STATESEPARATOR
+
+ Docfix.
+
+ Will merge to 'next'.
+
+
+* jk/index-pack-reduce-recheck (2015-06-09) 1 commit
+ - index-pack: avoid excessive re-reading of pack directory
+
+ Disable "have we lost a race with competing repack?" check while
+ receiving a huge object transfer that runs index-pack.
+
+ Will merge to 'next'.
+
+
+* js/sleep-without-select (2015-06-05) 4 commits
+ - lockfile: wait using sleep_millisec() instead of select()
+ - lockfile: convert retry timeout computations to millisecond
+ - help.c: wrap wait-only poll() invocation in sleep_millisec()
+ - lockfile: replace random() by rand()
+
+ Portability fix.
+
+ Will merge to 'next'.
+
+
+* ld/p4-changes-block-size (2015-06-10) 4 commits
+ - git-p4: fixing --changes-block-size handling
+ - git-p4: add tests for non-numeric revision range
+ - git-p4: test with limited p4 server results
+ - git-p4: additional testing of --changes-block-size
+
+ More Perforce row number limit workaround for "git p4".
+
+ Will merge to 'next'.
+
+
+* mh/fsck-reflog-entries (2015-06-08) 2 commits
+ - fsck: report errors if reflog entries point at invalid objects
+ - fsck_handle_reflog_sha1(): new function
+
+ "git fsck" used to ignore missing or invalid objects recorded in reflog.
+
+ Will merge to 'next'.
+
+
+* mk/utf8-no-iconv-warn (2015-06-08) 1 commit
+ - utf8.c: print warning about disabled iconv
+
+ Warn when a reencoding is requested in a build without iconv
+ support, as the end user is likely to get an unexpected result. I
+ think the same level of safety should be added to a build with
+ iconv support when the specified encoding is not available, but the
+ patch does not go there.
+
+ Expecting a reroll.
+
+
+* mr/rebase-i-customize-insn-sheet (2015-06-08) 1 commit
+ - git-rebase--interactive.sh: add config option for custom instruction format
+
+ Breaks tests.
+
+ Expecting a reroll.
+
+
+* nd/untracked-cache (2015-06-08) 1 commit
+ - read-cache: fix untracked cache invalidation when split-index is used
+
+ Hotfix for a topic already in 'master'.
+
+ Will merge to 'next'.
+
+
+* pt/am-abort-fix (2015-06-08) 6 commits
+ - am --abort: keep unrelated commits on unborn branch
+ - am --abort: support aborting to unborn branch
+ - am --abort: revert changes introduced by failed 3way merge
+ - am --skip: support skipping while on unborn branch
+ - am -3: support 3way merge on unborn branch
+ - am --skip: revert changes introduced by failed 3way merge
+
+ Various fixes around "git am" that applies a patch to a history
+ that is not there yet.
+
+ Will merge to 'next'.
+
+
+* pt/am-foreign (2015-06-08) 6 commits
+ - SQUASH??? do not cat a single file into a pipe
+ - am: teach mercurial patch parser how to read from stdin
+ - am: use gmtime() to parse mercurial patch date
+ - t4150: test applying StGit series
+ - am: teach StGit patch parser how to read from stdin
+ - t4150: test applying StGit patch
+
+ Various enhancements around "git am" reading patches generated by
+ foreign SCM.
+
+ Expecting a reroll.
+
+
+* pt/pull-builtin (2015-06-09) 20 commits
+ . SQUASH??? adjust to new world order after 9e3751d4 (remote.c: drop "remote" pointer from "struct branch", 2015-05-21)
+ . pull: remove redirection to git-pull.sh
+ . pull --rebase: error on no merge candidate cases
+ . pull --rebase: exit early when the working directory is dirty
+ . pull: configure --rebase via branch.<name>.rebase or pull.rebase
+ . pull: teach git pull about --rebase
+ . pull: set reflog message
+ . pull: implement pulling into an unborn branch
+ . pull: fast-forward working tree if head is updated
+ . pull: check if in unresolved merge state
+ - pull: support pull.ff config
+ - pull: error on no merge candidates
+ - pull: pass git-fetch's options to git-fetch
+ - pull: pass git-merge's options to git-merge
+ - pull: pass verbosity, --progress flags to fetch and merge
+ - pull: implement fetch + merge
+ - pull: implement skeletal builtin pull
+ - argv-array: implement argv_array_pushv()
+ - parse-options-cb: implement parse_opt_pass_argv_array()
+ - parse-options-cb: implement parse_opt_pass_strbuf()
+
+ Expecting a reroll.
+
+
+* rl/send-email-aliases (2015-06-08) 5 commits
+ - send-email: refactor address list process
+ - send-email: allow multiple emails using --cc, --to and --bcc
+ - t9001-send-email: refactor header variable fields replacement
+ - send-email: allow aliases in patch header and command script outputs
+ - t9001-send-email: move script creation in a setup test
+
+ "git send-email" now performs alias-expansion on names that are
+ given via --cccmd, etc.
+
+ Expecting a reroll.
+
+
+* sg/commit-cleanup-scissors (2015-06-09) 1 commit
+ - commit: cope with scissors lines in commit message
+
+ "git commit --cleanup=scissors" was not careful enough to protect
+ against getting fooled by a line that looked like scissors.
+
+ Will merge to 'next'.
+
+
+* sg/completion-commit-cleanup (2015-06-08) 1 commit
+ - completion: teach 'scissors' mode to 'git commit --cleanup='
+
+ Will merge to 'next'.
+
+
+* 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
+
+ Introduce "branch^{/!-<pattern>}" notation to name a commit
+ reachable from branch that does not match the given pattern.
+
+ Expecting a reroll.
+
+
+* bc/object-id (2015-06-10) 7 commits
+ - ref_newer: convert to use struct object_id
+ - parse_fetch: convert to use struct object_id
+ - add_sought_entry_mem: convert to struct object_id
+ - Add a utility function to make parsing hex values easier.
+ - Convert struct ref to use object_id.
+ - sha1_file: introduce has_object_file helper.
+ - refs: convert some internal functions to use object_id
+
+ (incomplete)
--------------------------------------------------
[Stalled]
--------------------------------------------------
[Cooking]
+* jc/ll-merge-expose-path (2015-06-04) 1 commit
+ - ll-merge: pass the original path to external drivers
+
+ Traditionally, external low-level 3-way merge drivers are expected
+ to produce their results based solely on the contents of the three
+ variants given in temporary files named by %O, %A and %B on their
+ command line. Additionally allow them to look at the final path
+ (given by %P).
+
+ Will merge to 'next'.
+
+
+* jk/log-missing-default-HEAD (2015-06-03) 1 commit
+ - log: diagnose empty HEAD more clearly
+
+ "git init empty && git -C empty log" said "bad default revision 'HEAD'",
+ which was found to be a bit confusing to new users.
+
+ What's the status of this one?
+
+
+* nd/slim-index-pack-memory-usage (2015-06-04) 1 commit
+ (merged to 'next' on 2015-06-04 at 328fd50)
+ + index-pack: fix truncation of off_t in comparison
+
+ An earlier optimization broke index-pack for a large object
+ transfer; this fixes it before the breakage hits any released
+ version.
+
+ Will merge to 'master'.
+
+
* gr/rebase-i-drop-warn (2015-06-01) 2 commits
- git rebase -i: warn about removed commits
- git-rebase -i: add command "drop" to remove a commit
Avoid one extra iteration and strbuf_grow() of 8kB in
strbuf_read().
- Looked reasonable; perhaps a log message clarification is coming?
+ Looked reasonable; perhaps a log message clarification is needed.
+
+ Expecting a reroll.
* jk/squelch-missing-link-warning-for-unreachable (2015-06-01) 3 commits
Will merge to 'master'.
-* mh/reporting-broken-refs-from-for-each-ref (2015-06-03) 4 commits
+* mh/reporting-broken-refs-from-for-each-ref (2015-06-08) 4 commits
- read_loose_refs(): treat NULL_SHA1 loose references as broken
- read_loose_refs(): simplify function logic
- for-each-ref: report broken references correctly
"git format-patch --ignore-if-upstream A..B" did not like to be fed
tags as boundary commits.
+ Will merge to 'next'.
+
* mg/index-read-error-messages (2015-06-01) 2 commits
- messages: uniform error messages for index write
- show-index: uniform error messages for index read
The tip was RFC.
+ Expecting a reroll.
* pt/pull-optparse (2015-06-02) 3 commits
"git am" learned am.threeWay configuration variable.
+ Will merge to 'next'.
+
* sb/pack-protocol-mention-smart-http (2015-06-02) 1 commit
(merged to 'next' on 2015-06-04 at 8041cf6)
The gitmodules API accessed from the C code learned to cache stuff
lazily.
+ What's the doneness of this one?
+
* jc/diff-ws-error-highlight (2015-05-26) 4 commits
(merged to 'next' on 2015-06-01 at 6046560)
Still an early WIP
-* ee/clean-remove-dirs (2015-04-26) 5 commits
+* ee/clean-remove-dirs (2015-06-09) 5 commits
- clean: improve performance when removing lots of directories
- p7300: add performance tests for clean
- t7300: add tests to document behavior of clean and nested git
be touched?" check "git clean" does by checking if it has .git/HEAD
using the submodule-related code with a more optimized check.
- Waiting for a reroll.
+ Haven't seen reviews on this updated round, and I haven't read it myself.
* jc/merge-drop-old-syntax (2015-04-29) 1 commit