What's cooking (2015/06 #03)

This commit is contained in:
Junio C Hamano
2015-06-10 16:32:09 -07:00
parent eb31d6fdec
commit 06b685c780

View File

@@ -1,158 +1,252 @@
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
* es/utf8-stupid-compiler-workaround (2015-06-05) 1 commit
- utf8: NO_ICONV: silence uninitialized variable warning
"git init empty && git -C empty log" said "bad default revision 'HEAD'",
which was found to be a bit confusing to new users.
A compilation workaround.
Will merge to 'next'.
* 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
* fk/doc-format-patch-vn (2015-06-10) 1 commit
- doc: format-patch: fix typo
An earlier optimization broke index-pack for a large object
transfer; this fixes it before the breakage hits any released
version.
Docfix.
Will merge to 'master'.
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]
@@ -361,6 +455,38 @@ of the repositories listed at
--------------------------------------------------
[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
@@ -379,7 +505,9 @@ of the repositories listed at
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
@@ -395,7 +523,7 @@ of the repositories listed at
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
@@ -472,12 +600,15 @@ of the repositories listed at
"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
@@ -508,6 +639,8 @@ of the repositories listed at
"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)
@@ -527,6 +660,8 @@ of the repositories listed at
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)
@@ -703,7 +838,7 @@ of the repositories listed at
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
@@ -714,7 +849,7 @@ of the repositories listed at
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