What's cooking (2017/02 #07)
parent
ff89f868b1
commit
7be9902743
|
|
@ -1,10 +1,10 @@
|
|||
To: git@vger.kernel.org
|
||||
Bcc: lwn@lwn.net
|
||||
Subject: What's cooking in git.git (Feb 2017, #06; Tue, 21)
|
||||
Subject: What's cooking in git.git (Feb 2017, #07; Thu, 23)
|
||||
X-master-at: 80ba04ed9b07c34af9cc644f2183b3b80fd81744
|
||||
X-next-at: 302250072e59acfdf6a5a069d54402b4f1478844
|
||||
X-next-at: cbe923c8da4a7f6cf4861a317ae620497394d507
|
||||
|
||||
What's cooking in git.git (Feb 2017, #06; Tue, 21)
|
||||
What's cooking in git.git (Feb 2017, #07; Thu, 23)
|
||||
--------------------------------------------------
|
||||
|
||||
Here are the topics that have been cooking. Commits prefixed with
|
||||
|
|
@ -12,10 +12,6 @@ Here are the topics that have been cooking. Commits prefixed with
|
|||
'+' are in 'next'. The ones marked with '.' do not appear in any of
|
||||
the integration branches, but I am still holding onto them.
|
||||
|
||||
The tip of the 'master' is still at -rc2 but with a git-svn update
|
||||
from Eric. I'd like to get pull requests for gitk and git-gui
|
||||
updates soonish, if we are to have one during this cycle.
|
||||
|
||||
You can find the changes described here in the integration branches
|
||||
of the repositories listed at
|
||||
|
||||
|
|
@ -24,127 +20,84 @@ of the repositories listed at
|
|||
--------------------------------------------------
|
||||
[New Topics]
|
||||
|
||||
* jk/tempfile-ferror-fclose-confusion (2017-02-17) 1 commit
|
||||
(merged to 'next' on 2017-02-21 at 479ba0131f)
|
||||
+ tempfile: set errno to a known value before calling ferror()
|
||||
* js/curl-empty-auth-set-by-default (2017-02-22) 1 commit
|
||||
- http(s): automatically try NTLM authentication first
|
||||
|
||||
A caller of tempfile API that uses stdio interface to write to
|
||||
files may ignore errors while writing, which is detected when
|
||||
tempfile is closed (with a call to ferror()). By that time, the
|
||||
original errno that may have told us what went wrong is likely to
|
||||
be long gone and was overwritten by an irrelevant value.
|
||||
close_tempfile() now resets errno to EIO to make errno at least
|
||||
predictable.
|
||||
Flip "http.emptyAuth" on by default to help OOB experience for
|
||||
users of HTTP Negotiate authentication scheme.
|
||||
|
||||
Will cook in 'next'.
|
||||
Under discussion.
|
||||
cf. <20170222233419.q3fxqmrscosumbjm@genre.crustytoothpaste.net>
|
||||
|
||||
|
||||
* ah/doc-ls-files-quotepath (2017-02-20) 1 commit
|
||||
- Documentation: link git-ls-files to core.quotePath variable
|
||||
|
||||
Documentation for "git ls-files" did not refer to core.quotePath
|
||||
|
||||
Needs review.
|
||||
|
||||
|
||||
* dr/doc-check-ref-format-normalize (2017-02-21) 1 commit
|
||||
(merged to 'next' on 2017-02-21 at 5e88b7a93d)
|
||||
+ git-check-ref-format: clarify documentation for --normalize
|
||||
* bc/blame-doc-fix (2017-02-22) 1 commit
|
||||
(merged to 'next' on 2017-02-22 at 81c0ff2283)
|
||||
+ Documentation: use brackets for optional arguments
|
||||
|
||||
Doc update.
|
||||
|
||||
Will cook in 'next'.
|
||||
Will merge to 'master'.
|
||||
|
||||
|
||||
* gp/document-dotfiles-in-templates-are-not-copied (2017-02-17) 1 commit
|
||||
(merged to 'next' on 2017-02-21 at bbfa2bb7d4)
|
||||
+ init: document dotfiles exclusion on template copy
|
||||
* bc/worktree-doc-fix-detached (2017-02-22) 1 commit
|
||||
(merged to 'next' on 2017-02-22 at 8257025363)
|
||||
+ Documentation: correctly spell git worktree --detach
|
||||
|
||||
Doc update.
|
||||
|
||||
Will cook in 'next'.
|
||||
Will merge to 'master'.
|
||||
|
||||
|
||||
* jc/config-case-cmdline (2017-02-21) 2 commits
|
||||
(merged to 'next' on 2017-02-21 at 354f023a3a)
|
||||
+ config: reject invalid VAR in 'git -c VAR=VAL command'
|
||||
+ config: preserve <subsection> case for one-shot config on the command line
|
||||
* rt/align-add-i-help-text (2017-02-22) 1 commit
|
||||
(merged to 'next' on 2017-02-22 at a8573afb9a)
|
||||
+ git add -i: replace \t with blanks in the help message
|
||||
|
||||
The code to parse "git -c VAR=VAL cmd" and set configuration
|
||||
variable for the duration of cmd had two small bugs, which have
|
||||
been fixed.
|
||||
Doc update.
|
||||
|
||||
Will cook in 'next'.
|
||||
Will merge to 'master'.
|
||||
|
||||
|
||||
* jh/memihash-opt (2017-02-17) 5 commits
|
||||
- name-hash: remember previous dir_entry during lazy_init_name_hash
|
||||
- name-hash: specify initial size for istate.dir_hash table
|
||||
- name-hash: precompute hash values during preload-index
|
||||
- hashmap: allow memihash computation to be continued
|
||||
- name-hash: eliminate duplicate memihash call
|
||||
* jh/send-email-one-cc (2017-02-23) 1 commit
|
||||
- send-email: only allow one address per body tag
|
||||
|
||||
Expecting an update for perf?
|
||||
"Cc:" on the trailer part does not have to conform to RFC strictly,
|
||||
unlike in the e-mail header. "git send-email" has been updated to
|
||||
ignore anything after '>' when picking addresses, to allow non-address
|
||||
cruft like " # stable 4.4" after the address.
|
||||
|
||||
Will merge to and then cook in 'next'.
|
||||
|
||||
|
||||
* km/delete-ref-reflog-message (2017-02-20) 4 commits
|
||||
(merged to 'next' on 2017-02-21 at 4ee4ce3f64)
|
||||
+ branch: record creation of renamed branch in HEAD's log
|
||||
+ rename_ref: replace empty message in HEAD's log
|
||||
+ update-ref: pass reflog message to delete_ref()
|
||||
+ delete_ref: accept a reflog message argument
|
||||
* jk/http-auth (2017-02-23) 1 commit
|
||||
- http: restrict auth methods to what the server advertises
|
||||
|
||||
"git update-ref -d" and other operations to delete references did
|
||||
not leave any entry in HEAD's reflog when the reference being
|
||||
deleted was the current branch. This is not a problem in practice
|
||||
because you do not want to delete the branch you are currently on,
|
||||
but caused renaming of the current branch to something else not to
|
||||
be logged in a useful way.
|
||||
Reduce authentication round-trip over HTTP when the server supports
|
||||
just a single authentication method.
|
||||
|
||||
Will cook in 'next'.
|
||||
Will merge to and then cook in 'next'.
|
||||
There is a follow-up that would supersede js/curl-empty-auth-set-by-default
|
||||
topic; as it expected to be refined further, it is not queued here yet.
|
||||
|
||||
|
||||
* nd/prune-in-worktree (2017-02-19) 15 commits
|
||||
- rev-list: expose and document --single-worktree
|
||||
- revision.c: --reflog add HEAD reflog from all worktrees
|
||||
- files-backend: make reflog iterator go through per-worktree reflog
|
||||
- refs: add refs_for_each_reflog[_ent]()
|
||||
- revision.c: --all adds HEAD from all worktrees
|
||||
- refs: remove dead for_each_*_submodule()
|
||||
- revision.c: use refs_for_each*() instead of for_each_*_submodule()
|
||||
- refs: add a refs_for_each_in() and friends
|
||||
- refs: add refs_for_each_ref()
|
||||
- refs: add refs_head_ref()
|
||||
- refs: add refs_read_ref[_full]()
|
||||
- refs: move submodule slash stripping code to get_submodule_ref_store
|
||||
- revision.c: --indexed-objects add objects from all worktrees
|
||||
- revision.c: refactor add_index_objects_to_pending()
|
||||
- revision.h: new flag in struct rev_info wrt. worktree-related refs
|
||||
(this branch uses mh/ref-remove-empty-directory, mh/submodule-hash, nd/files-backend-git-dir and nd/worktree-kill-parse-ref.)
|
||||
* jk/ident-empty (2017-02-23) 4 commits
|
||||
- ident: do not ignore empty config name/email
|
||||
- ident: reject all-crud ident name
|
||||
- ident: handle NULL email when complaining of empty name
|
||||
- ident: mark error messages for translation
|
||||
|
||||
"git gc" and friends when multiple worktrees are used off of a
|
||||
single repository did not consider the index and per-worktree refs
|
||||
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.
|
||||
user.email that consists of only cruft chars should have
|
||||
consistently errored out, but didn't.
|
||||
|
||||
Will merge to and then cook in 'next'.
|
||||
|
||||
|
||||
* mm/fetch-show-error-message-on-unadvertised-object (2017-02-21) 1 commit
|
||||
- fetch: print an error when declining to request an unadvertised object
|
||||
* jt/upload-pack-error-report (2017-02-23) 1 commit
|
||||
- upload-pack: report "not our ref" to client
|
||||
|
||||
"git fetch" that requests a commit by object name, when the other
|
||||
side does not allow such an request, failed without much
|
||||
explanation.
|
||||
|
||||
Expecting a split series?
|
||||
|
||||
|
||||
* rl/remote-allow-missing-branch-name-merge (2017-02-21) 1 commit
|
||||
- remote: ignore failure to remove missing branch.<name>.merge
|
||||
|
||||
"git remote rm X", when a branch has remote X configured as the
|
||||
value of its branch.*.remote, tried to remove branch.*.remote and
|
||||
branch.*.merge and failed if either is unset.
|
||||
"git upload-pack", which is a counter-part of "git fetch", did not
|
||||
report a request for a ref that was not advertised as invalid.
|
||||
This is generally not a problem (because "git fetch" will stop
|
||||
before making such a request), but is the right thing to do.
|
||||
|
||||
Will merge to and then cook in 'next'.
|
||||
|
||||
|
|
@ -283,6 +236,136 @@ of the repositories listed at
|
|||
--------------------------------------------------
|
||||
[Cooking]
|
||||
|
||||
* jk/tempfile-ferror-fclose-confusion (2017-02-17) 1 commit
|
||||
(merged to 'next' on 2017-02-21 at 479ba0131f)
|
||||
+ tempfile: set errno to a known value before calling ferror()
|
||||
|
||||
A caller of tempfile API that uses stdio interface to write to
|
||||
files may ignore errors while writing, which is detected when
|
||||
tempfile is closed (with a call to ferror()). By that time, the
|
||||
original errno that may have told us what went wrong is likely to
|
||||
be long gone and was overwritten by an irrelevant value.
|
||||
close_tempfile() now resets errno to EIO to make errno at least
|
||||
predictable.
|
||||
|
||||
Will cook in 'next'.
|
||||
|
||||
|
||||
* ah/doc-ls-files-quotepath (2017-02-22) 1 commit
|
||||
- Documentation: clarify core.quotePath and update git-ls-files doc
|
||||
|
||||
Documentation for "git ls-files" did not refer to core.quotePath
|
||||
|
||||
Looked good, but another reroll is still incoming?
|
||||
cf. <3c801e54-28c7-52d0-6915-ee7aaf1d89c9@gmail.com>
|
||||
|
||||
|
||||
* dr/doc-check-ref-format-normalize (2017-02-21) 1 commit
|
||||
(merged to 'next' on 2017-02-21 at 5e88b7a93d)
|
||||
+ git-check-ref-format: clarify documentation for --normalize
|
||||
|
||||
Doc update.
|
||||
|
||||
Will merge to 'master'.
|
||||
|
||||
|
||||
* gp/document-dotfiles-in-templates-are-not-copied (2017-02-17) 1 commit
|
||||
(merged to 'next' on 2017-02-21 at bbfa2bb7d4)
|
||||
+ init: document dotfiles exclusion on template copy
|
||||
|
||||
Doc update.
|
||||
|
||||
Will merge to 'master'.
|
||||
|
||||
|
||||
* jc/config-case-cmdline (2017-02-21) 3 commits
|
||||
(merged to 'next' on 2017-02-21 at 63d3652c77)
|
||||
+ config: squelch stupid compiler
|
||||
(merged to 'next' on 2017-02-21 at 354f023a3a)
|
||||
+ config: reject invalid VAR in 'git -c VAR=VAL command'
|
||||
+ config: preserve <subsection> case for one-shot config on the command line
|
||||
|
||||
The code to parse "git -c VAR=VAL cmd" and set configuration
|
||||
variable for the duration of cmd had two small bugs, which have
|
||||
been fixed.
|
||||
|
||||
Will cook in 'next'.
|
||||
|
||||
|
||||
* jh/memihash-opt (2017-02-17) 5 commits
|
||||
- name-hash: remember previous dir_entry during lazy_init_name_hash
|
||||
- name-hash: specify initial size for istate.dir_hash table
|
||||
- name-hash: precompute hash values during preload-index
|
||||
- hashmap: allow memihash computation to be continued
|
||||
- name-hash: eliminate duplicate memihash call
|
||||
|
||||
Expecting an update for perf?
|
||||
|
||||
|
||||
* km/delete-ref-reflog-message (2017-02-20) 4 commits
|
||||
(merged to 'next' on 2017-02-21 at 4ee4ce3f64)
|
||||
+ branch: record creation of renamed branch in HEAD's log
|
||||
+ rename_ref: replace empty message in HEAD's log
|
||||
+ update-ref: pass reflog message to delete_ref()
|
||||
+ delete_ref: accept a reflog message argument
|
||||
|
||||
"git update-ref -d" and other operations to delete references did
|
||||
not leave any entry in HEAD's reflog when the reference being
|
||||
deleted was the current branch. This is not a problem in practice
|
||||
because you do not want to delete the branch you are currently on,
|
||||
but caused renaming of the current branch to something else not to
|
||||
be logged in a useful way.
|
||||
|
||||
Will cook in 'next'.
|
||||
|
||||
|
||||
* nd/prune-in-worktree (2017-02-19) 15 commits
|
||||
. rev-list: expose and document --single-worktree
|
||||
. revision.c: --reflog add HEAD reflog from all worktrees
|
||||
. files-backend: make reflog iterator go through per-worktree reflog
|
||||
. refs: add refs_for_each_reflog[_ent]()
|
||||
. revision.c: --all adds HEAD from all worktrees
|
||||
. refs: remove dead for_each_*_submodule()
|
||||
. revision.c: use refs_for_each*() instead of for_each_*_submodule()
|
||||
. refs: add a refs_for_each_in() and friends
|
||||
. refs: add refs_for_each_ref()
|
||||
. refs: add refs_head_ref()
|
||||
. refs: add refs_read_ref[_full]()
|
||||
. refs: move submodule slash stripping code to get_submodule_ref_store
|
||||
. revision.c: --indexed-objects add objects from all worktrees
|
||||
. revision.c: refactor add_index_objects_to_pending()
|
||||
. revision.h: new flag in struct rev_info wrt. worktree-related refs
|
||||
(this branch uses mh/ref-remove-empty-directory, mh/submodule-hash and nd/worktree-kill-parse-ref; is tangled with nd/files-backend-git-dir.)
|
||||
|
||||
"git gc" and friends when multiple worktrees are used off of a
|
||||
single repository did not consider the index and per-worktree refs
|
||||
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.
|
||||
|
||||
|
||||
* mm/fetch-show-error-message-on-unadvertised-object (2017-02-22) 4 commits
|
||||
- fetch-pack: add specific error for fetching an unadvertised object
|
||||
- fetch_refs_via_pack: call report_unmatched_refs
|
||||
- squash??? remove unfinished sentence
|
||||
- fetch-pack: move code to report unmatched refs to a function
|
||||
|
||||
"git fetch" that requests a commit by object name, when the other
|
||||
side does not allow such an request, failed without much
|
||||
explanation.
|
||||
|
||||
|
||||
* rl/remote-allow-missing-branch-name-merge (2017-02-21) 1 commit
|
||||
(merged to 'next' on 2017-02-22 at cbe923c8da)
|
||||
+ remote: ignore failure to remove missing branch.<name>.merge
|
||||
|
||||
"git remote rm X", when a branch has remote X configured as the
|
||||
value of its branch.*.remote, tried to remove branch.*.remote and
|
||||
branch.*.merge and failed if either is unset.
|
||||
|
||||
Will cook in 'next'.
|
||||
|
||||
|
||||
* vn/xdiff-func-context (2017-01-15) 1 commit
|
||||
(merged to 'next' on 2017-02-21 at 838eab8d93)
|
||||
+ xdiff -W: relax end-of-file function detection
|
||||
|
|
@ -293,13 +376,30 @@ of the repositories listed at
|
|||
Will cook in 'next'.
|
||||
|
||||
|
||||
* nd/worktree-kill-parse-ref (2017-02-19) 5 commits
|
||||
- refs: kill set_worktree_head_symref()
|
||||
- refs: add refs_create_symref()
|
||||
- worktree.c: kill parse_ref() in favor of refs_resolve_ref_unsafe()
|
||||
- refs.c: add refs_resolve_ref_unsafe()
|
||||
- refs: introduce get_worktree_ref_store()
|
||||
(this branch is used by nd/prune-in-worktree; uses mh/ref-remove-empty-directory, mh/submodule-hash and nd/files-backend-git-dir.)
|
||||
* nd/worktree-kill-parse-ref (2017-02-19) 22 commits
|
||||
. refs: kill set_worktree_head_symref()
|
||||
. refs: add refs_create_symref()
|
||||
. worktree.c: kill parse_ref() in favor of refs_resolve_ref_unsafe()
|
||||
. refs.c: add refs_resolve_ref_unsafe()
|
||||
. refs: introduce get_worktree_ref_store()
|
||||
. refs: rename get_ref_store() to get_submodule_ref_store() and make it public
|
||||
. files-backend: remove submodule_allowed from files_downcast()
|
||||
. refs: move submodule code out of files-backend.c
|
||||
. path.c: move some code out of strbuf_git_path_submodule()
|
||||
. refs.c: make get_main_ref_store() public and use it
|
||||
. refs.c: kill register_ref_store(), add register_submodule_ref_store()
|
||||
. refs.c: flatten get_ref_store() a bit
|
||||
. refs: rename lookup_ref_store() to lookup_submodule_ref_store()
|
||||
. refs.c: introduce get_main_ref_store()
|
||||
. files-backend: remove the use of git_path()
|
||||
. refs.c: share is_per_worktree_ref() to files-backend.c
|
||||
. files-backend: replace *git_path*() with files_path()
|
||||
. files-backend: add files_path()
|
||||
. files-backend: convert git_path() to strbuf_git_path()
|
||||
. refs-internal.c: make files_log_ref_write() static
|
||||
. Merge branch 'mh/ref-remove-empty-directory' into nd/files-backend-git-dir
|
||||
. Merge branch 'mh/submodule-hash' into nd/files-backend-git-dir
|
||||
(this branch is used by nd/prune-in-worktree; uses mh/ref-remove-empty-directory and mh/submodule-hash; is tangled with nd/files-backend-git-dir.)
|
||||
|
||||
(hopefully) a beginning of safer "git worktree" that is resistant
|
||||
to "gc".
|
||||
|
|
@ -307,25 +407,34 @@ of the repositories listed at
|
|||
Needs review.
|
||||
|
||||
|
||||
* nd/files-backend-git-dir (2017-02-19) 17 commits
|
||||
- refs: rename get_ref_store() to get_submodule_ref_store() and make it public
|
||||
- files-backend: remove submodule_allowed from files_downcast()
|
||||
- refs: move submodule code out of files-backend.c
|
||||
- path.c: move some code out of strbuf_git_path_submodule()
|
||||
- refs.c: make get_main_ref_store() public and use it
|
||||
- refs.c: kill register_ref_store(), add register_submodule_ref_store()
|
||||
- refs.c: flatten get_ref_store() a bit
|
||||
- refs: rename lookup_ref_store() to lookup_submodule_ref_store()
|
||||
- refs.c: introduce get_main_ref_store()
|
||||
- files-backend: remove the use of git_path()
|
||||
- refs.c: share is_per_worktree_ref() to files-backend.c
|
||||
- files-backend: replace *git_path*() with files_path()
|
||||
- files-backend: add files_path()
|
||||
- files-backend: convert git_path() to strbuf_git_path()
|
||||
- refs-internal.c: make files_log_ref_write() static
|
||||
- Merge branch 'mh/ref-remove-empty-directory' into nd/files-backend-git-dir
|
||||
- Merge branch 'mh/submodule-hash' into nd/files-backend-git-dir
|
||||
(this branch is used by nd/prune-in-worktree and nd/worktree-kill-parse-ref; uses mh/ref-remove-empty-directory and mh/submodule-hash.)
|
||||
* nd/files-backend-git-dir (2017-02-22) 26 commits
|
||||
. t1406: new tests for submodule ref store
|
||||
. t1405: some basic tests on main ref store
|
||||
. t/helper: add test-ref-store to test ref-store functions
|
||||
. refs: delete pack_refs() in favor of refs_pack_refs()
|
||||
. files-backend: avoid ref api targetting main ref store
|
||||
. refs: new transaction related ref-store api
|
||||
. refs: add new ref-store api
|
||||
. refs: rename get_ref_store() to get_submodule_ref_store() and make it public
|
||||
. files-backend: replace submodule_allowed check in files_downcast()
|
||||
. refs: move submodule code out of files-backend.c
|
||||
. path.c: move some code out of strbuf_git_path_submodule()
|
||||
. refs.c: make get_main_ref_store() public and use it
|
||||
. refs.c: kill register_ref_store(), add register_submodule_ref_store()
|
||||
. refs.c: flatten get_ref_store() a bit
|
||||
. refs: rename lookup_ref_store() to lookup_submodule_ref_store()
|
||||
. refs.c: introduce get_main_ref_store()
|
||||
. files-backend: remove the use of git_path()
|
||||
. files-backend: add and use files_refname_path()
|
||||
. files-backend: add and use files_reflog_path()
|
||||
. files-backend: move "logs/" out of TMP_RENAMED_LOG
|
||||
. files-backend: convert git_path() to strbuf_git_path()
|
||||
. files-backend: add and use files_packed_refs_path()
|
||||
. files-backend: make files_log_ref_write() static
|
||||
. refs.h: add forward declaration for structs used in this file
|
||||
. Merge branch 'mh/ref-remove-empty-directory' into nd/files-backend-git-dir
|
||||
. Merge branch 'mh/submodule-hash' into nd/files-backend-git-dir
|
||||
(this branch uses mh/ref-remove-empty-directory and mh/submodule-hash; is tangled with nd/prune-in-worktree and nd/worktree-kill-parse-ref.)
|
||||
|
||||
The "submodule" specific field in the ref_store structure is
|
||||
replaced with a more generic "gitdir" that can later be used also
|
||||
|
|
@ -402,7 +511,7 @@ of the repositories listed at
|
|||
cf. <xmqqmvdfh4az.fsf@gitster.mtv.corp.google.com>
|
||||
|
||||
|
||||
* bc/object-id (2017-02-20) 19 commits
|
||||
* bc/object-id (2017-02-22) 19 commits
|
||||
- wt-status: convert to struct object_id
|
||||
- builtin/merge-base: convert to struct object_id
|
||||
- Convert object iteration callbacks to struct object_id
|
||||
|
|
@ -425,8 +534,8 @@ of the repositories listed at
|
|||
|
||||
"uchar [40]" to "struct object_id" conversion continues.
|
||||
|
||||
Expecting a reroll.
|
||||
cf. <20170221011058.cpx7uio6ibkvrtbv@genre.crustytoothpaste.net>
|
||||
Now at v5; looked alright.
|
||||
cf. <20170221234737.894681-1-sandals@crustytoothpaste.net>
|
||||
|
||||
|
||||
* jk/grep-no-index-fix (2017-02-14) 7 commits
|
||||
|
|
|
|||
Loading…
Reference in New Issue