Skip to content
GitLab
Next
Menu
Why GitLab
Pricing
Contact Sales
Explore
Why GitLab
Pricing
Contact Sales
Explore
Sign in
Get free trial
Primary navigation
Search or go to…
Project
Git
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Privacy statement
Keyboard shortcuts
?
What's new
6
Snippets
Groups
Projects
Show more breadcrumbs
GitLab.org
Git
Commits
d0d88d62
Commit
d0d88d62
authored
7 years ago
by
Junio C Hamano
Browse files
Options
Downloads
Patches
Plain Diff
What's cooking (2018/03
#4
)
parent
692cc129
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
whats-cooking.txt
+339
-566
339 additions, 566 deletions
whats-cooking.txt
with
339 additions
and
566 deletions
whats-cooking.txt
+
339
−
566
View file @
d0d88d62
To: git@vger.kernel.org
Bcc: lwn@lwn.net
Subject: What's cooking in git.git (Mar 2018, #0
3
;
Wed, 14
)
X-master-at:
7fb6aefd2aaffe66e614f7f7b83e5b7ab16d4806
X-next-at:
6dcf76e1189e32b367ea053200d21aa31432517e
Subject: What's cooking in git.git (Mar 2018, #0
4
;
Tue, 20
)
X-master-at:
0afbf6caa5b16dcfa3074982e5b48e27d452dbbb
X-next-at:
9ac9d02b0bb5a12c247f9cbeaa8c30b8aed3f167
What's cooking in git.git (Mar 2018, #0
3
;
Wed, 14
)
What's cooking in git.git (Mar 2018, #0
4
;
Tue, 20
)
--------------------------------------------------
Here are the topics that have been cooking. Commits prefixed with
...
...
@@ -20,430 +20,227 @@ of the repositories listed at
--------------------------------------------------
[Graduated to "master"]
* ab/
gc-auto-in-commi
t (2018-03-0
1
) 1 commit
(merged to 'next' on 2018-03-0
2
at 96
a5a4d629
)
+
commit: run git gc --auto just before the post-commit hook
* ab/
man-sec-lis
t (2018-03-0
8
) 1 commit
(merged to 'next' on 2018-03-0
9
at 96
26b691e2
)
+
git manpage: note git-security@googlegroups.com
"git commit" used to run "gc --auto" near the end, which was lost
when the command was reimplemented in C by mistake.
Doc update.
* ab/pre-auto-gc-battery (2018-02-28) 1 commit
(merged to 'next' on 2018-03-06 at ca9cb273cb)
+ hooks/pre-auto-gc-battery: allow gc to run on non-laptops
* ab/perl-fixes (2018-03-05) 13 commits
(merged to 'next' on 2018-03-09 at 262d84c1ba)
+ perl Git::LoadCPAN: emit better errors under NO_PERL_CPAN_FALLBACKS
+ Makefile: add NO_PERL_CPAN_FALLBACKS knob
+ perl: move the perl/Git/FromCPAN tree to perl/FromCPAN
+ perl: generalize the Git::LoadCPAN facility
+ perl: move CPAN loader wrappers to another namespace
+ perl: update our copy of Mail::Address
+ perl: update our ancient copy of Error.pm
+ git-send-email: unconditionally use Net::{SMTP,Domain}
+ Git.pm: hard-depend on the File::{Temp,Spec} modules
+ gitweb: hard-depend on the Digest::MD5 5.8 module
+ Git.pm: add the "use warnings" pragma
+ Git.pm: remove redundant "use strict" from sub-package
+ perl: *.pm files should not have the executable bit
Clean-up to various pieces of Perl code we have.
* cl/send-email-reply-to (2018-03-06) 2 commits
(merged to 'next' on 2018-03-09 at 3d3c3ab441)
+ send-email: support separate Reply-To address
+ send-email: rename variable for clarity
(this branch uses np/send-email-header-parsing.)
"git send-email" learned "--reply-to=<address>" option.
A sample auto-gc hook (in contrib/) to skip auto-gc while on
battery has been updated to almost always allow running auto-gc
unless on_ac_power command is absolutely sure that we are on
battery power (earlier, it skipped unless the command is sure that
we are on ac power).
* np/send-email-header-parsing (2017-12-15) 1 commit
(merged to 'next' on 2018-03-09 at 91ef7216f7)
+ send-email: extract email-parsing code into a subroutine
(this branch is used by cl/send-email-reply-to.)
* ag/userdiff-go-funcname (2018-03-01) 1 commit
(merged to 'next' on 2018-03-02 at ea404d1be9)
+ userdiff: add built-in pattern for golang
Code refactoring.
"git diff" and friends learned funcname patterns for Go language
source files.
* sg/cvs-tests-with-x (2018-03-08) 2 commits
(merged to 'next' on 2018-03-09 at 6ec749c7b7)
+ t9402-git-cvsserver-refs: don't check the stderr of a subshell
+ t9400-git-cvsserver-server: don't rely on the output of 'test_cmp'
* bp/untracked-cache-noflush (2018-02-28) 2 commits
(merged to 'next' on 2018-03-02 at 709887971b)
+ untracked cache: use git_env_bool() not getenv() for customization
+ dir.c: don't flag the index as dirty for changes to the untracked cache
Allow running a couple of tests with "sh -x".
Writing out the index file when the only thing that changed in it
is the untracked cache information is often wasteful, and this has
been optimized out.
* tl/userdiff-csharp-async (2018-03-08) 1 commit
(merged to 'next' on 2018-03-09 at 6dcf76e118)
+ userdiff.c: add C# async keyword in diff pattern
* ds/find-unique-abbrev-optim (2018-02-27) 1 commit
(merged to 'next' on 2018-03-02 at 0b6d4f9335)
+ sha1_name: fix uninitialized memory errors
Update funcname pattern used for C# to recognize "async" keyword.
While finding unique object name abbreviation, the code may
accidentally have read beyond the end of the array of object names
in a pack.
--------------------------------------------------
[New Topics]
* bp/refresh-cache-ent-rehash-fix (2018-03-15) 1 commit
(merged to 'next' on 2018-03-15 at bac8745f08)
+ Fix bugs preventing adding updated cache entries to the name hash
* ds/mark-parents-uninteresting-optim (2018-02-27) 1 commit
(merged to 'next' on 2018-03-02 at 5a42c79806)
+ revision.c: reduce object database queries
The codepath to replace an existing entry in the index had a bug in
updating the name hash structure, which has been fixed.
Micro optimization in revision traversal code
.
Will merge to 'master'
.
* jc/test-must-be-empty (2018-02-27) 1 commit
(merged to 'next' on 2018-03-02 at ec129f1b97)
+ test_must_be_empty: make sure the file exists, not just empty
* jt/transfer-fsck-with-promissor (2018-03-15) 2 commits
(merged to 'next' on 2018-03-15 at 6d1ccc965b)
+ fetch-pack: do not check links for partial fetch
+ index-pack: support checking objects but not links
Test framework tweak to catch developer thinko.
The transfer.fsckobjects configuration tells "git fetch" to
validate the data and connected-ness of objects in the received
pack; the code to perform this check has been taught about the
narrow clone's convention that missing objects that are reachable
from objects in a pack that came from a promissor remote is OK.
Will merge to 'master'.
* jh/status-no-ahead-behind (2018-01-24) 4 commits
(merged to 'next' on 2018-03-02 at 68bde8d571)
+ status: support --no-ahead-behind in long format
+ status: update short status to respect --no-ahead-behind
+ status: add --[no-]ahead-behind to status and commit for V2 format.
+ stat_tracking_info: return +1 when branches not equal
"git status" can spend a lot of cycles to compute the relation
between the current branch and its upstream, which can now be
disabled with "--no-ahead-behind" option.
* ml/filter-branch-no-op-error (2018-03-15) 1 commit
(merged to 'next' on 2018-03-15 at ba8ac48dec)
+ filter-branch: return 2 when nothing to rewrite
"git filter-branch" learned to use a different exit code to allow
the callers to tell the case where there was no new commits to
rewrite from other error cases.
* jk/add-i-diff-filter (2018-03-05) 2 commits
(merged to 'next' on 2018-03-08 at 6ef737add3)
+ add--interactive: detect bogus diffFilter output
+ t3701: add a test for interactive.diffFilter
The "interactive.diffFilter" used by "git add -i" must retain
one-to-one correspondence between its input and output, but it was
not enforced and caused end-user confusion. We now at least make
sure the filtered result has the same number of lines as its input
to detect a broken filter.
* jk/smart-http-protocol-doc-fix (2018-03-05) 1 commit
(merged to 'next' on 2018-03-08 at 599b1a7c42)
+ smart-http: document flush after "# service" line
A doc update.
* ma/roll-back-lockfiles (2018-02-28) 5 commits
(merged to 'next' on 2018-03-06 at be29bf891c)
+ sequencer: do not roll back lockfile unnecessarily
+ merge: always roll back lock in `checkout_fast_forward()`
+ merge-recursive: always roll back lock in `merge_recursive_generic()`
+ sequencer: always roll back lock in `do_recursive_merge()`
+ sequencer: make lockfiles non-static
(this branch is used by ma/skip-writing-unchanged-index.)
Some codepaths used to take a lockfile and did not roll it back;
they are automatically rolled back at program exit, so there is no
real "breakage", but it still is a good practice to roll back when
you are done with a lockfile.
* mk/doc-pretty-fill (2018-02-27) 1 commit
(merged to 'next' on 2018-03-02 at 623461b127)
+ docs/pretty-formats: fix typo '% <(<N>)' -> '%<|(<N>)'
Docfix.
* nd/diff-stat-with-summary (2018-02-27) 2 commits
(merged to 'next' on 2018-03-06 at d543f92f5e)
+ diff: add --compact-summary
+ diff.c: refactor pprint_rename() to use strbuf
"git diff" and friends learned "--compact-summary" that shows the
information usually given with the "--summary" option on the same
line as the diffstat output of the "--stat" option (which saves
vertical space and keeps info on a single path at the same place).
* nd/object-allocation-comments (2018-03-06) 2 commits
(merged to 'next' on 2018-03-08 at 91d553a339)
+ object.h: realign object flag allocation comment
+ object.h: update flag allocation comment
Code doc update.
* nd/parseopt-completion (2018-03-07) 45 commits
(merged to 'next' on 2018-03-08 at 2461b7035d)
+ completion: more subcommands in _git_notes()
+ completion: complete --{reuse,reedit}-message= for all notes subcmds
+ completion: simplify _git_notes
+ completion: don't set PARSE_OPT_NOCOMPLETE on --rerere-autoupdate
(merged to 'next' on 2018-03-02 at d72a6525fd)
+ completion: use __gitcomp_builtin in _git_worktree
+ completion: use __gitcomp_builtin in _git_tag
+ completion: use __gitcomp_builtin in _git_status
+ completion: use __gitcomp_builtin in _git_show_branch
+ completion: use __gitcomp_builtin in _git_rm
+ completion: use __gitcomp_builtin in _git_revert
+ completion: use __gitcomp_builtin in _git_reset
+ completion: use __gitcomp_builtin in _git_replace
+ remote: force completing --mirror= instead of --mirror
+ completion: use __gitcomp_builtin in _git_remote
+ completion: use __gitcomp_builtin in _git_push
+ completion: use __gitcomp_builtin in _git_pull
+ completion: use __gitcomp_builtin in _git_notes
+ completion: use __gitcomp_builtin in _git_name_rev
+ completion: use __gitcomp_builtin in _git_mv
+ completion: use __gitcomp_builtin in _git_merge_base
+ completion: use __gitcomp_builtin in _git_merge
+ completion: use __gitcomp_builtin in _git_ls_remote
+ completion: use __gitcomp_builtin in _git_ls_files
+ completion: use __gitcomp_builtin in _git_init
+ completion: use __gitcomp_builtin in _git_help
+ completion: use __gitcomp_builtin in _git_grep
+ completion: use __gitcomp_builtin in _git_gc
+ completion: use __gitcomp_builtin in _git_fsck
+ completion: use __gitcomp_builtin in _git_fetch
+ completion: use __gitcomp_builtin in _git_difftool
+ completion: use __gitcomp_builtin in _git_describe
+ completion: use __gitcomp_builtin in _git_config
+ completion: use __gitcomp_builtin in _git_commit
+ completion: use __gitcomp_builtin in _git_clone
+ completion: use __gitcomp_builtin in _git_clean
+ completion: use __gitcomp_builtin in _git_cherry_pick
+ completion: use __gitcomp_builtin in _git_checkout
+ completion: use __gitcomp_builtin in _git_branch
+ completion: use __gitcomp_builtin in _git_apply
+ completion: use __gitcomp_builtin in _git_am
+ completion: use __gitcomp_builtin in _git_add
+ git-completion.bash: introduce __gitcomp_builtin
+ parse-options: let OPT__FORCE take optional flags argument
+ parse-options: add OPT_xxx_F() variants
+ parse-options: support --git-completion-helper
The parse-options API has been taught an option to help the
completion script; the command line completion has been updated to
take advantage of this mechanism.
* nd/worktree-move (2018-03-06) 8 commits
(merged to 'next' on 2018-03-06 at a26271e7de)
+ t2028: fix minor error and issues in newly-added "worktree move" tests
(merged to 'next' on 2018-03-02 at 5c514dfc92)
+ worktree remove: allow it when $GIT_WORK_TREE is already gone
+ worktree remove: new command
+ worktree move: refuse to move worktrees with submodules
+ worktree move: accept destination as directory
+ worktree move: new command
+ worktree.c: add update_worktree_location()
+ worktree.c: add validate_worktree()
"git worktree" learned move and remove subcommands.
* ot/ref-filter-cleanup (2018-02-21) 2 commits
(merged to 'next' on 2018-03-02 at 3b4c39a4b5)
+ ref-filter: get rid of goto
+ ref-filter: get rid of duplicate code
Code cleanup.
* pw/add-p-recount (2018-03-05) 9 commits
(merged to 'next' on 2018-03-06 at 68952f9bb0)
+ add -p: don't rely on apply's '--recount' option
+ add -p: fix counting when splitting and coalescing
+ add -p: calculate offset delta for edited patches
+ add -p: adjust offsets of subsequent hunks when one is skipped
+ t3701: add failing test for pathological context lines
+ t3701: don't hard code sha1 hash values
+ t3701: use test_write_lines and write_script
+ t3701: indent here documents
+ add -i: add function to format hunk header
(this branch is used by pw/add-p-select.)
"git add -p" has been lazy in coalescing split patches before
passing the result to underlying "git apply", leading to corner
case bugs; the logic to prepare the patch to be applied after hunk
selections has been tightened.
* rj/test-i18ngrep (2018-02-28) 2 commits
(merged to 'next' on 2018-03-06 at 7ea1a2352c)
+ t5536: simplify checking of messages output to stderr
+ t4151: consolidate multiple calls to test_i18ngrep
Test updates.
* rs/perf-repeat-thrice-by-default (2018-02-27) 1 commit
(merged to 'next' on 2018-03-02 at 4898b3c450)
+ perf: use GIT_PERF_REPEAT_COUNT=3 by default even without config file
Perf test regression fix.
* rv/grep-cleanup (2018-02-23) 2 commits
(merged to 'next' on 2018-03-02 at 4aafca15f9)
+ grep: simplify grep_oid and grep_file
+ grep: move grep_source_init outside critical section
Threaded "git grep" has been optimized to avoid allocation in code
section that is covered under a mutex.
* sg/subtree-signed-commits (2018-02-23) 1 commit
(merged to 'next' on 2018-03-02 at c5f6fd33e6)
+ subtree: fix add and pull for GPG-signed commits
"git subtree" script (in contrib/) scripted around "git log", whose
output got affected by end-user configuration like log.showsignature
* sg/test-x (2018-02-28) 11 commits
(merged to 'next' on 2018-03-06 at ab0684b27c)
+ travis-ci: run tests with '-x' tracing
+ t/README: add a note about don't saving stderr of compound commands
+ t1510-repo-setup: mark as untraceable with '-x'
+ t9903-bash-prompt: don't check the stderr of __git_ps1()
+ t5570-git-daemon: don't check the stderr of a subshell
+ t5526: use $TRASH_DIRECTORY to specify the path of GIT_TRACE log file
+ t5500-fetch-pack: don't check the stderr of a subshell
+ t3030-merge-recursive: don't check the stderr of a subshell
+ t1507-rev-parse-upstream: don't check the stderr of a shell function
+ t: add means to disable '-x' tracing for individual test scripts
+ t: prevent '-x' tracing from interfering with test helpers' stderr
Will cook in 'next'.
Running test scripts under -x option of the shell is often not a
useful way to debug them, because the error messages from the
commands tests try to capture and inspect are contaminated by the
tracing output by the shell. An earlier work done to make it more
pleasant to run tests under -x with recent versions of bash is
extended to cover posix shells that do not support BASH_XTRACEFD.
* ab/install-symlinks (2018-03-15) 3 commits
(merged to 'next' on 2018-03-15 at 99d6bd6cb3)
+ Makefile: optionally symlink libexec/git-core binaries to bin/git
+ Makefile: add a gitexecdir_relative variable
+ Makefile: fix broken bindir_relative variable
* sg/travis-build-during-script-phase (2018-01-08) 1 commit
(
merged to 'next' on 2018-03-02 at 29e1585ae7)
+ travis-ci: build Git during the 'script' phase
The build procedure learned to optionally use symbolic links
(
instead of hardlinks and copies) to install "git-foo" for built-in
commands, whose binaries are all identical.
Build the executable in 'script' phase in Travis CI integration, to
follow the established practice, rather than during 'before_script'
phase. This allows the CI categorize the failures better ('failed'
is project's fault, 'errored' is build environment's).
Will cook in 'next'.
--------------------------------------------------
[New Topics]
*
ab/man-sec-list
(2018-03-
08
) 1 commit
(merged to 'next' on 2018-03-
09
at
9626b691e2
)
+
git manpage: note git-security@googlegroups.com
*
ks/t3200-typofix
(2018-03-
15
) 1 commit
(merged to 'next' on 2018-03-
15
at
8b8d397787
)
+
t/t3200: fix a typo in a test description
Doc update
.
Test typofix
.
Will merge to 'master'.
* sg/cvs-tests-with-x (2018-03-08) 2 commits
(merged to 'next' on 2018-03-09 at 6ec749c7b7)
+ t9402-git-cvsserver-refs: don't check the stderr of a subshell
+ t9400-git-cvsserver-server: don't rely on the output of 'test_cmp'
* rj/http-code-cleanup (2018-03-15) 1 commit
(merged to 'next' on 2018-03-15 at 0dfd462ff8)
+ http: fix an unused variable warning for 'curl_no_proxy'
Allow running a couple of tests with "sh -x".
There was an unused file-scope static variable left in http.c when
building for versions of libCURL that is older than 7.19.4, which
has been fixed.
Will merge to 'master'.
This will become unnecessary, when we follow-through the
jk/drop-ancient-curl topic.
* tl/userdiff-csharp-async (2018-03-08) 1 commit
(merged to 'next' on 2018-03-09 at 6dcf76e118)
+ userdiff.c: add C# async keyword in diff pattern
* tg/stash-untracked-with-pathspec-fix (2018-03-20) 3 commits
- stash push -u: don't create empty stash
- stash push: avoid printing errors
- stash: fix nonsense pipeline
"git stash push -u -- <pathspec>" gave an unnecessary and confusing
error message when there was no tracked files that match the
<pathspec>, which has been fixed.
Will merge to 'next'.
Update funcname pattern used for C# to recognize "async" keyword.
* dp/merge-strategy-doc-fix (2018-03-19) 1 commit
(merged to 'next' on 2018-03-20 at 317e077588)
+ Documentation/merge-strategies: typofix
Doc fix.
Will merge to 'master'.
* ti/fetch-everything-local-optim (2018-03-14) 1 commit
- fetch-pack.c: use oidset to check existence of loose object
* js/ming-strftime (2018-03-19) 1 commit
(merged to 'next' on 2018-03-20 at a9ca8172c7)
+ mingw: abort on invalid strftime formats
A "git fetch" from a repository with insane number of refs into a
repository that is already up-to-date still wasted too many cycles
making many lstat(2) calls to see if these objects at the tips
exist as loose objects locally. These lstat(2) calls are optimized
away by enumerating all loose objects beforehand.
Will merge to 'master'.
It is unknown if the new strategy negatively affects existing use
cases, fetching into a repository with many loose objects from a
repository with small number of refs.
Will merge to 'next'.
* ml/filter-branch-portability-fix (2018-03-19) 1 commit
(merged to 'next' on 2018-03-20 at c7c17cfc8b)
+ filter-branch: use printf instead of echo -e
Shell script portability fix.
* ab/nuke-emacs-contrib (2018-03-13) 1 commit
- git{,-blame}.el: remove old bitrotting Emacs code
Will merge to 'master'.
The scripts in contrib/emacs/ have outlived their usefulness and
have been removed.
Will merge to 'next'.
* rj/warning-uninitialized-fix (2018-03-20) 2 commits
(merged to 'next' on 2018-03-20 at 9ac9d02b0b)
+ read-cache: fix an -Wmaybe-uninitialized warning
+ -Wuninitialized: remove some 'init-self' workarounds
Compilation fix.
* bc/object-id (2018-03-14) 36 commits
- convert: convert to struct object_id
- sha1_file: introduce a constant for max header length
- Convert lookup_replace_object to struct object_id
- sha1_file: convert read_sha1_file to struct object_id
- sha1_file: convert read_object_with_reference to object_id
- tree-walk: convert tree entry functions to object_id
- streaming: convert istream internals to struct object_id
- tree-walk: convert get_tree_entry_follow_symlinks internals to object_id
- builtin/notes: convert static functions to object_id
- builtin/fmt-merge-msg: convert remaining code to object_id
- sha1_file: convert sha1_object_info* to object_id
- Convert remaining callers of sha1_object_info_extended to object_id
- packfile: convert unpack_entry to struct object_id
- sha1_file: convert retry_bad_packed_offset to struct object_id
- sha1_file: convert assert_sha1_type to object_id
- builtin/mktree: convert to struct object_id
- streaming: convert open_istream to use struct object_id
- sha1_file: convert check_sha1_signature to struct object_id
- sha1_file: convert read_loose_object to use struct object_id
- builtin/index-pack: convert struct ref_delta_entry to object_id
- archive: convert sha1_file_to_archive to struct object_id
- archive: convert write_archive_entry_fn_t to object_id
- builtin/mktag: convert to struct object_id
- replace_object: convert struct replace_object to object_id
- send-pack: convert remaining functions to struct object_id
- http-walker: convert struct object_request to use struct object_id
- Convert find_unique_abbrev* to struct object_id
- wt-status: convert struct wt_status_state to object_id
- strbuf: convert strbuf_add_unique_abbrev to use struct object_id
- ref-filter: convert grab_objectname to struct object_id
- tree: convert read_tree_recursive to struct object_id
- resolve-undo: convert struct resolve_undo_info to object_id
- cache-tree: convert remnants to struct object_id
- cache-tree: convert write_*_as_tree to object_id
- builtin/write-tree: convert to struct object_id
- bulk-checkin: convert index_bulk_checkin to struct object_id
Will merge to 'master'.
Conversion from uchar[20] to struct object_id continues.
Will merge to 'next'.
* tz/complete-tag-delete-tagname (2018-03-19) 1 commit
(merged to 'next' on 2018-03-20 at d63d45ff16)
+ completion: complete tags with git tag --delete/--verify
Will merge to 'master'.
* jh/fsck-promisors (2018-03-13) 1 commit
- sha1_file: restore OBJECT_INFO_QUICK functionality
A hotfix to a topic that graduated recently.
* tz/relnotes-1.7-on-perl (2018-03-16) 1 commit
(merged to 'next' on 2018-03-20 at ed4b26e581)
+ RelNotes: add details on Perl module changes
Will merge to '
next
'.
Will merge to '
master
'.
* ma/shortlog-revparse (2018-03-13) 3 commits
- shortlog: do not accept revisions when run outside repo
- shortlog: add usage-string for stdin-reading
- git-shortlog.txt: reorder usages
* jk/attributes-path-doc (2018-03-20) 1 commit
(merged to 'next' on 2018-03-20 at e965f0c68c)
+ doc/gitattributes: mention non-recursive behavior
"git shortlog cruft" aborted with a BUG message when run outside a
Git repository. The command has been taught to complain about
extra and unwanted arguments on its command line instead in such a
case.
Doc update.
Expecting a reroll.
cf. <CAN0heSoDSf+3VmRowHmiTPDDzfdvUjQi+tjpPF6RW172ZE5BWw@mail.gmail.com>
Will merge to 'master'.
* ab/pcre-v2 (2018-03-14) 3 commits
- Makefile: make USE_LIBPCRE=YesPlease mean v2, not v1
- configure: detect redundant --with-libpcre & --with-libpcre1
- configure: fix a regression in PCRE v1 detection
* pw/rebase-keep-empty-fixes (2018-03-20) 4 commits
- SQUASH???
- rebase: respect --no-keep-empty
- rebase -i --keep-empty: don't prune empty commits
- rebase --root: stop assuming squash_onto is unset
(this branch is used by pw/rebase-signoff.)
Git can be built to use either v1 or v2 of the PCRE library, and so
far, the build-time configuration USE_LIBPCRE=YesPlease instructed
the build procedure to use v1, but now it means v2. USE_LIBPCRE1
and USE_LIBPCRE2 can be used to explicitly choose which version to
use, as before.
"git rebase --keep-empty" still removed an empty commit if the
other side contained an empty commit (due to the "does an
equivalent patch exist already?" check), which has been corrected.
Will merge to 'next'.
* pw/rebase-signoff (2018-03-20) 4 commits
- rebase --keep-empty: always use interactive rebase
- rebase -p: error out if --signoff is given
- rebase: extend --signoff support
- Merge branch 'pw/rebase-keep-empty-fixes' into pw/rebase-signoff
(this branch uses pw/rebase-keep-empty-fixes.)
"git rebase" has learned to honor "--signoff" option when using
backends other than "am" (but not "--preserve-merges").
--------------------------------------------------
[Stalled]
...
...
@@ -487,20 +284,6 @@ of the repositories listed at
cf. <0102015f5e5ee171-f30f4868-886f-47a1-a4e4-b4936afc545d-000000@eu-west-1.amazonses.com>
* dj/runtime-prefix (2017-12-05) 4 commits
. exec_cmd: RUNTIME_PREFIX on some POSIX systems
. Makefile: add Perl runtime prefix support
. Makefile: add support for "perllibdir"
. Makefile: generate Perl header from template file
A build-time option has been added to allow Git to be told to refer
to its associated files relative to the main binary, in the same
way that has been possible on Windows for quite some time, for
Linux, BSDs and Darwin.
Perhaps it is about time to reboot the effort?
* mk/http-backend-content-length (2017-11-27) 4 commits
- SQUASH???
- t5560-http-backend-noserver.sh: add CONTENT_LENGTH cases
...
...
@@ -545,6 +328,126 @@ of the repositories listed at
--------------------------------------------------
[Cooking]
* dj/runtime-prefix (2018-03-19) 3 commits
- exec_cmd: RUNTIME_PREFIX on some POSIX systems
- Makefile: add Perl runtime prefix support
- Makefile: generate Perl header from template file
A build-time option has been added to allow Git to be told to refer
to its associated files relative to the main binary, in the same
way that has been possible on Windows for quite some time, for
Linux, BSDs and Darwin.
* ti/fetch-everything-local-optim (2018-03-14) 1 commit
(merged to 'next' on 2018-03-15 at 2be87aa7a7)
+ fetch-pack.c: use oidset to check existence of loose object
A "git fetch" from a repository with insane number of refs into a
repository that is already up-to-date still wasted too many cycles
making many lstat(2) calls to see if these objects at the tips
exist as loose objects locally. These lstat(2) calls are optimized
away by enumerating all loose objects beforehand.
It is unknown if the new strategy negatively affects existing use
cases, fetching into a repository with many loose objects from a
repository with small number of refs.
Will cook in 'next'.
* ab/nuke-emacs-contrib (2018-03-13) 1 commit
(merged to 'next' on 2018-03-15 at 13eb4e2d8b)
+ git{,-blame}.el: remove old bitrotting Emacs code
The scripts in contrib/emacs/ have outlived their usefulness and
have been removed.
Will cook in 'next'.
* bc/object-id (2018-03-14) 36 commits
(merged to 'next' on 2018-03-20 at f1800a33ff)
+ convert: convert to struct object_id
+ sha1_file: introduce a constant for max header length
+ Convert lookup_replace_object to struct object_id
+ sha1_file: convert read_sha1_file to struct object_id
+ sha1_file: convert read_object_with_reference to object_id
+ tree-walk: convert tree entry functions to object_id
+ streaming: convert istream internals to struct object_id
+ tree-walk: convert get_tree_entry_follow_symlinks internals to object_id
+ builtin/notes: convert static functions to object_id
+ builtin/fmt-merge-msg: convert remaining code to object_id
+ sha1_file: convert sha1_object_info* to object_id
+ Convert remaining callers of sha1_object_info_extended to object_id
+ packfile: convert unpack_entry to struct object_id
+ sha1_file: convert retry_bad_packed_offset to struct object_id
+ sha1_file: convert assert_sha1_type to object_id
+ builtin/mktree: convert to struct object_id
+ streaming: convert open_istream to use struct object_id
+ sha1_file: convert check_sha1_signature to struct object_id
+ sha1_file: convert read_loose_object to use struct object_id
+ builtin/index-pack: convert struct ref_delta_entry to object_id
+ archive: convert sha1_file_to_archive to struct object_id
+ archive: convert write_archive_entry_fn_t to object_id
+ builtin/mktag: convert to struct object_id
+ replace_object: convert struct replace_object to object_id
+ send-pack: convert remaining functions to struct object_id
+ http-walker: convert struct object_request to use struct object_id
+ Convert find_unique_abbrev* to struct object_id
+ wt-status: convert struct wt_status_state to object_id
+ strbuf: convert strbuf_add_unique_abbrev to use struct object_id
+ ref-filter: convert grab_objectname to struct object_id
+ tree: convert read_tree_recursive to struct object_id
+ resolve-undo: convert struct resolve_undo_info to object_id
+ cache-tree: convert remnants to struct object_id
+ cache-tree: convert write_*_as_tree to object_id
+ builtin/write-tree: convert to struct object_id
+ bulk-checkin: convert index_bulk_checkin to struct object_id
Conversion from uchar[20] to struct object_id continues.
Will cook in 'next'.
* jh/fsck-promisors (2018-03-13) 1 commit
(merged to 'next' on 2018-03-15 at 0c283dbe5e)
+ sha1_file: restore OBJECT_INFO_QUICK functionality
A hotfix to a topic that graduated recently.
Will merge to 'master'.
* ma/shortlog-revparse (2018-03-15) 3 commits
(merged to 'next' on 2018-03-15 at 2c2de7eb95)
+ shortlog: disallow left-over arguments outside repo
+ shortlog: add usage-string for stdin-reading
+ git-shortlog.txt: reorder usages
"git shortlog cruft" aborted with a BUG message when run outside a
Git repository. The command has been taught to complain about
extra and unwanted arguments on its command line instead in such a
case.
Will cook in 'next'.
* ab/pcre-v2 (2018-03-14) 3 commits
(merged to 'next' on 2018-03-15 at e77b116903)
+ Makefile: make USE_LIBPCRE=YesPlease mean v2, not v1
+ configure: detect redundant --with-libpcre & --with-libpcre1
+ configure: fix a regression in PCRE v1 detection
Git can be built to use either v1 or v2 of the PCRE library, and so
far, the build-time configuration USE_LIBPCRE=YesPlease instructed
the build procedure to use v1, but now it means v2. USE_LIBPCRE1
and USE_LIBPCRE2 can be used to explicitly choose which version to
use, as before.
Will cook in 'next'.
* bb/git-gui-ssh-key-files (2018-03-02) 2 commits
- Merge branch 'bb/ssh-key-files' of git-gui into bb/git-gui-ssh-key-files
- git-gui: search for all current SSH key types
...
...
@@ -571,23 +474,23 @@ of the repositories listed at
the current theme.
* nd/pack-objects-pack-struct (2018-03-05) 9 commits
- pack-objects: reorder 'hash' to pack struct object_entry
- pack-objects: refer to delta objects by index instead of pointer
- pack-objects: move in_pack out of struct object_entry
- pack-objects: move in_pack_pos out of struct object_entry
- pack-objects: note about in_pack_header_size
- pack-objects: use bitfield for object_entry::depth
- pack-objects: use bitfield for object_entry::dfs_state
- pack-objects: turn type and in_pack_type to bitfields
- pack-objects: document holes in struct object_entry.h
* nd/pack-objects-pack-struct (2018-03-19) 11 commits
. pack-objects: reorder members to shrink struct object_entry
. pack-objects: shrink delta_size field in struct object_entry
. pack-objects: shrink size field in struct object_entry
. pack-objects: shrink z_delta_size field in struct object_entry
. pack-objects: refer to delta objects by index instead of pointer
. pack-objects: move in_pack out of struct object_entry
. pack-objects: move in_pack_pos out of struct object_entry
. pack-objects: use bitfield for object_entry::depth
. pack-objects: use bitfield for object_entry::dfs_state
. pack-objects: turn type and in_pack_type to bitfields
. pack-objects: a bit of document about struct object_entry
"git pack-objects" needs to allocate tons of "struct object_entry"
while doing its work, and shrinking its size helps the performance
quite a bit.
Will merge to 'next'.
* nd/repack-keep-pack (2018-03-07) 6 commits
- SQUASH???
...
...
@@ -603,25 +506,24 @@ of the repositories listed at
marked with ".keep" so that it is left untouched while objects in
other packs and loose ones are repacked.
Expecting a reroll.
cf. <CACsJy8BW_EtxQvgL=YrCXCQY7cEWCQxgfkeH=Gd=X=uVYhPJcw@mail.gmail.com>
Except for final finishing touches, this looked more-or-less ready
for 'next'.
Reroll exists, but it seems to be still slushy.
cf. <20180316192745.19557-1-pclouds@gmail.com>
* nd/worktree-prune (2018-03-06) 3 commits
- worktree prune: improve prune logic when worktree is moved
- worktree: delete dead code
- gc.txt: more details about what gc does
* nd/worktree-prune (2018-03-15) 3 commits
(merged to 'next' on 2018-03-20 at e2d9677b20)
+ worktree prune: improve prune logic when worktree is moved
+ worktree: delete dead code
+ gc.txt: more details about what gc does
The way "git worktree prune" worked internally has been simplified,
by assuming how "git worktree move" moves an existing worktree to a
different place.
Will
merge to
'next'.
Will
cook in
'next'.
* pw/add-p-select (2018-03-
0
6) 3 commits
* pw/add-p-select (2018-03-
1
6) 3 commits
- add -p: optimize line selection for short hunks
- add -p: allow line selection to be inverted
- add -p: select individual hunk lines
...
...
@@ -630,9 +532,6 @@ of the repositories listed at
individual added/removed lines to be used in the operation, instead
of accepting or rejecting a whole hunk.
Expecting a reroll.
cf. <6476d776-dbf7-09cf-1c65-e413798b9987@talktalk.net>
* ld/p4-unshelve (2018-02-22) 1 commit
- git-p4: add unshelve command
...
...
@@ -643,28 +542,25 @@ of the repositories listed at
cf. <CAE5ih7_ooDMqVtTMoQ70s5XCkncr04HY0JkqSp1UmKQeG81oaA@mail.gmail.com>
* ps/contains-id-error-message (2018-03-
06
) 1 commit
-
parse-
options
: squelch usage help on certain errors
* ps/contains-id-error-message (2018-03-
19
) 1 commit
-
Make
options
that expect object ids less chatty if id is invalid
"git tag --contains no-such-commit" gave a full list of options
after giving an error message.
Expecting a reroll.
cf. <CAN0heSrnERYggyJ8bL1nAV=X2JQYS8aOkc6nWZhnZu3oqhzAfA@mail.gmail.com>
Rebooted and fixed the root cause of the issue at a lower level.
* nd/remove-ignore-env-field (2018-03-05) 5 commits
- repository: delete ignore_env member
- sha1_file.c: move delayed getenv(altdb) back to setup_git_env()
- repository.c: delete dead functions
- repository.c: move env-related setup code back to environment.c
- repository: initialize the_repository in main()
(merged to 'next' on 2018-03-15 at 802b6ea1cb)
+ repository: delete ignore_env member
+ sha1_file.c: move delayed getenv(altdb) back to setup_git_env()
+ repository.c: delete dead functions
+ repository.c: move env-related setup code back to environment.c
+ repository: initialize the_repository in main()
(this branch is used by sb/object-store and sb/packfiles-in-repository.)
Code clean-up for the "repository" abstraction.
Will
merge to
'next'.
Will
cook in
'next'.
* sb/object-store (2018-03-05) 27 commits
...
...
@@ -727,32 +623,12 @@ of the repositories listed at
* ma/skip-writing-unchanged-index (2018-03-01) 1 commit
- write_locked_index(): add flag to avoid writing unchanged index
(merged to 'next' on 2018-03-15 at cdbbc66464)
+ write_locked_index(): add flag to avoid writing unchanged index
Internal API clean-up to allow write_locked_index() optionally skip
writing the in-core index when it is not modified.
Will merge to 'next'.
* ab/perl-fixes (2018-03-05) 13 commits
(merged to 'next' on 2018-03-09 at 262d84c1ba)
+ perl Git::LoadCPAN: emit better errors under NO_PERL_CPAN_FALLBACKS
+ Makefile: add NO_PERL_CPAN_FALLBACKS knob
+ perl: move the perl/Git/FromCPAN tree to perl/FromCPAN
+ perl: generalize the Git::LoadCPAN facility
+ perl: move CPAN loader wrappers to another namespace
+ perl: update our copy of Mail::Address
+ perl: update our ancient copy of Error.pm
+ git-send-email: unconditionally use Net::{SMTP,Domain}
+ Git.pm: hard-depend on the File::{Temp,Spec} modules
+ gitweb: hard-depend on the Digest::MD5 5.8 module
+ Git.pm: add the "use warnings" pragma
+ Git.pm: remove redundant "use strict" from sub-package
+ perl: *.pm files should not have the executable bit
Clean-up to various pieces of Perl code we have.
Will merge to 'master'.
...
...
@@ -782,16 +658,17 @@ of the repositories listed at
* ma/config-page-only-in-list-mode (2018-02-21) 3 commits
- config: change default of `pager.config` to "on"
- config: respect `pager.config` in list/get-mode only
- t7006: add tests for how git config paginates
(merged to 'next' on 2018-03-15 at 652430af12)
+ config: change default of `pager.config` to "on"
+ config: respect `pager.config` in list/get-mode only
+ t7006: add tests for how git config paginates
In a way similar to how "git tag" learned to honor the pager
setting only in the list mode, "git config" learned to ignore the
pager setting when it is used for setting values (i.e. when the
purpose of the operation is not to "show").
Will merge to '
next
'.
Will merge to '
master
'.
* pc/submodule-helper-foreach (2018-02-02) 5 commits
...
...
@@ -805,62 +682,38 @@ of the repositories listed at
e.g. cf. <20180206150044.1bffbb573c088d38c8e44bf5@google.com>
* tg/worktree-add-existing-branch (2018-0
2-05
)
3
commits
* tg/worktree-add-existing-branch (2018-0
3-19
)
4
commits
- worktree: teach "add" to check out existing branches
- worktree: factor out dwim_branch function
- worktree: be clearer when "add" dwim-ery kicks in
- worktree: improve message when creating a new worktree
"git worktree add" learned to check out an existing branch.
Expecting a reroll.
cf. <CAPig+cRLohiqR_Drh7P0q3XbvC22WLjNwH0YLZo3dqFzZZuAPw@mail.gmail.com>
cf. <CACsJy8BEKYqW+Ne_WY2RBaSbb9OKcjREtrawStj=eJsVsia_Jw@mail.gmail.com>
The general idea is good, just end-user facing messages are found
suboptimal.
* np/send-email-header-parsing (2017-12-15) 1 commit
(merged to 'next' on 2018-03-09 at 91ef7216f7)
+ send-email: extract email-parsing code into a subroutine
(this branch is used by cl/send-email-reply-to.)
Code refactoring.
Will merge to 'master'.
* cl/send-email-reply-to (2018-03-06) 2 commits
(merged to 'next' on 2018-03-09 at 3d3c3ab441)
+ send-email: support separate Reply-To address
+ send-email: rename variable for clarity
(this branch uses np/send-email-header-parsing.)
"git send-email" learned "--reply-to=<address>" option.
Will merge to 'master'.
* js/rebase-recreate-merge (2018-02-23) 12 commits
- rebase -i: introduce --recreate-merges=[no-]rebase-cousins
- pull: accept --rebase=recreate to recreate the branch topology
- sequencer: handle post-rewrite for merge commands
- sequencer: make refs generated by the `label` command worktree-local
- rebase: introduce the --recreate-merges option
- rebase-helper --make-script: introduce a flag to recreate merges
- sequencer: fast-forward merge commits, if possible
- sequencer: introduce the `merge` command
- sequencer: introduce new commands to reset the revision
- git-rebase--interactive: clarify arguments
- sequencer: make rearrange_squash() a bit more obvious
- sequencer: avoid using errno clobbered by rollback_lock_file()
(merged to 'next' on 2018-03-15 at 3d1671756f)
+ rebase -i: introduce --recreate-merges=[no-]rebase-cousins
+ pull: accept --rebase=recreate to recreate the branch topology
+ sequencer: handle post-rewrite for merge commands
+ sequencer: make refs generated by the `label` command worktree-local
+ rebase: introduce the --recreate-merges option
+ rebase-helper --make-script: introduce a flag to recreate merges
+ sequencer: fast-forward merge commits, if possible
+ sequencer: introduce the `merge` command
+ sequencer: introduce new commands to reset the revision
+ git-rebase--interactive: clarify arguments
+ sequencer: make rearrange_squash() a bit more obvious
+ sequencer: avoid using errno clobbered by rollback_lock_file()
"git rebase" learned "--recreate-merges" to transplant the whole
topology of commit graph elsewhere.
Will merge to 'next'.
This serise has been reverted out of 'next', expecting that it will
be replaced by a reroll on top of a couple of topics by Phillip.
* bw/protocol-v2 (2018-03-1
4
) 35 commits
* bw/protocol-v2 (2018-03-1
5
) 35 commits
- remote-curl: don't request v2 when pushing
- remote-curl: implement stateless-connect command
- http: eliminate "# service" line when using protocol v2
...
...
@@ -899,15 +752,19 @@ of the repositories listed at
The beginning of the next-gen transfer protocol.
Is everybody happy with this version? One design decision with
larger consequence "to or not to build in?" has been settled in
favor of status quo, IIRC.
* ls/checkout-encoding (2018-03-09) 10 commits
* ls/checkout-encoding (2018-03-16) 10 commits
- convert: add round trip check based on 'core.checkRoundtripEncoding'
- convert: add tracing for 'working-tree-encoding' attribute
- convert: advise canonical UTF encoding names
- convert: check for detectable errors in UTF encodings
- convert: add 'working-tree-encoding' attribute
- utf8: add function to detect a missing UTF-16/32 BOM
- utf8: add function to detect prohibited UTF-16/32 BOM
- utf8: teach same_encoding() alternative UTF encoding names
- strbuf: add a case insensitive starts_with()
- strbuf: add xstrdup_toupper()
- strbuf: remove unnecessary NUL assignment in xstrdup_tolower()
...
...
@@ -916,10 +773,6 @@ of the repositories listed at
contents to the specified encoding when checking out to the working
tree (and the other way around when checking in).
Expecting a reroll.
cf. <66370A41-A048-44E7-9BF8-4631C50AAE63@gmail.com>
Modulo minor design decision corrections, the series is almost there.
* en/rename-directory-detection (2018-02-27) 29 commits
(merged to 'next' on 2018-03-06 at d42470f86e)
...
...
@@ -961,84 +814,4 @@ of the repositories listed at
to be overwritten during merge has also been fixed as part of this
work.
Will merge to 'master'.
--------------------------------------------------
[Discarded]
* cc/require-tcl-tk-for-build (2017-11-29) 2 commits
- travis-ci: avoid new tcl/tk build requirement
- Makefile: check that tcl/tk is installed
A first-time builder of Git may have installed neither tclsh nor
msgfmt, in which case git-gui and gitk part will fail and break the
build. As a workaround, refuse to run a build when tclsh is not
installed and NO_TCLTK is not set.
Stalled for too long without any response; will discard.
I still feel that requring tclsh to be installed, with or without
"escape hatch" for experts, may be too heavy-handed.
* mg/merge-base-fork-point (2017-09-17) 3 commits
- merge-base: find fork-point outside partial reflog
- merge-base: return fork-point outside reflog
- t6010: test actual test output
"merge-base --fork-point $branch $commit" is used to guess on which
commit among the commits that were once at the tip of the $branch the
$commit was built on top of, and it learns these historical tips from
the reflog of the $branch. When the true fork-point is lost due to
pruning of old reflog entries, the command does not give any output,
because it has no way to guess correctly and does not want to mislead
the user with a wrong guess.
The command has been updated to give the best but not known to be
correct guess, based on a hope that a merge-base between $commit and a
virtual merge across all the reflog entries that still are available
for $branch may still be a closer to the true fork-point than the
merge-base between $commit and the current tip of the $branch.
This may have to be offered by an additional option, to allow the
users that are prepared to see a potentially incorrect guess to opt
into the feature, without affecting the current callers that may not
be prepared to accept a guess that is not known to be correct.
Stalled for too long without any response; will discard.
* mg/status-in-progress-info (2017-05-10) 2 commits
- status --short --inprogress: spell it as --in-progress
- status: show in-progress info for short status
"git status" learns an option to report various operations
(e.g. "merging") that the user is in the middle of.
Stalled for too long without any response; will discard.
cf. <xmqqmvakcdqw.fsf@gitster.mtv.corp.google.com>
* nd/tilde-expand-opt-file-value (2018-02-14) 2 commits
- init-db: change --template type to OPTION_FILENAME
- parse-options: expand $HOME on filename options
"git cmd --opt=~u/path/to/file" did not tilde-expand "~u" part to
the path to the home directory of user 'u'
This may make the resulting whole more confusing, though.
cf. <87wozffavp.fsf@evledraar.gmail.com>
* dp/git-el-ls-files-excludes (2018-03-05) 1 commit
. git.el: handle default excludesfile properly
The "git.el" script (in contrib/) has been taught to use
"--exclude-standard" option when driving "ls-files", instead of
locating the exclude files on its own. With this change, it now
honors $XDG_CONFIG_HOME when it is set.
The author of "git.el" recommends that users consider switching to
"magit", though.
Discarded, as contrib/emacs/ hierarchy is being emptied by the
ab/nuke-emacs-contrib topic.
Will cook in 'next'.
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment