To: git@vger.kernel.org
Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Feb 2018, #01; Wed, 7)
-X-master-at: 5be1f00a9a701532232f57958efab4be8c959a29
-X-next-at: fa21fb2ec8acbede1bf0ed3cca9e96e2445d38d1
+Subject: What's cooking in git.git (Feb 2018, #02; Tue, 13)
+X-master-at: b2e45c695d09f6a31ce09347ae0a5d2cdfe9dd4e
+X-next-at: e5215aaa5c9875adf01d63ed4237f0870ec897f1
-What's cooking in git.git (Feb 2018, #01; Wed, 7)
+What's cooking in git.git (Feb 2018, #02; Tue, 13)
--------------------------------------------------
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.
-Many new topics appeared and are not yet marked with "Will do what"
-labels. Except for some large ones, I think most are already in
-good shape, but I'd want to double check by re-reading them.
+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"]
+
+* ab/simplify-perl-makefile (2018-01-03) 3 commits
+ (merged to 'next' on 2018-01-23 at 1506e0651a)
+ + perl: treat PERLLIB_EXTRA as an extra path again
+ + perl: avoid *.pmc and fix Error.pm further
+ + Makefile: replace perl/Makefile.PL with simple make rules
+
+ Originally merged to 'next' on 2018-01-03
+
+ The build procedure for perl/ part has been greatly simplified by
+ weaning ourselves off of MakeMaker.
+
+
+* cc/sha1-file-name (2018-01-19) 2 commits
+ (merged to 'next' on 2018-02-07 at a50b171a84)
+ + sha1_file: improve sha1_file_name() perfs
+ + sha1_file: remove static strbuf from sha1_file_name()
+
+ Code clean-up.
+
+
+* cl/t9001-cleanup (2018-01-12) 1 commit
+ (merged to 'next' on 2018-02-07 at 9b194a9999)
+ + t9001: use existing helper in send-email test
+
+ Test clean-up.
+
+
+* ds/use-get-be64 (2018-01-19) 1 commit
+ (merged to 'next' on 2018-02-07 at 6d6d5ba71d)
+ + packfile: use get_be64() for large offsets
+
+ Code clean-up.
+
+
+* ew/svn-branch-segfault-fix (2018-01-30) 1 commit
+ (merged to 'next' on 2018-02-07 at 1bf8d8f74f)
+ + git-svn: control destruction order to avoid segfault
+
+ Workaround for segfault with more recent versions of SVN.
+
+
+* gs/retire-mru (2018-01-24) 1 commit
+ (merged to 'next' on 2018-02-07 at 4b2e893911)
+ + mru: Replace mru.[ch] with list.h implementation
+ (this branch uses ot/mru-on-list.)
+
+ Retire mru API as it does not give enough abstraction over
+ underlying list API to be worth it.
+
+
+* jc/mailinfo-cleanup-fix (2018-01-24) 1 commit
+ (merged to 'next' on 2018-02-07 at 65d41f993b)
+ + mailinfo: avoid segfault when can't open files
+
+ Corner case bugfix.
+
+
+* jh/fsck-promisors (2017-12-08) 10 commits
+ (merged to 'next' on 2018-01-23 at ca59f5c18e)
+ + gc: do not repack promisor packfiles
+ + rev-list: support termination at promisor objects
+ + sha1_file: support lazily fetching missing objects
+ + introduce fetch-object: fetch one promisor object
+ + index-pack: refactor writing of .keep files
+ + fsck: support promisor objects as CLI argument
+ + fsck: support referenced promisor objects
+ + fsck: support refs pointing to promisor objects
+ + fsck: introduce partialclone extension
+ + extension.partialclone: introduce partial clone extension
+ (this branch is used by jh/partial-clone.)
+
+ Originally merged to 'next' on 2018-01-17
+
+ In preparation for implementing narrow/partial clone, the machinery
+ for checking object connectivity used by gc and fsck has been
+ taught that a missing object is OK when it is referenced by a
+ packfile specially marked as coming from trusted repository that
+ promises to make them available on-demand and lazily.
+
+
+* jh/partial-clone (2017-12-08) 13 commits
+ (merged to 'next' on 2018-01-23 at de0f0111ea)
+ + t5616: test bulk prefetch after partial fetch
+ + fetch: inherit filter-spec from partial clone
+ + t5616: end-to-end tests for partial clone
+ + fetch-pack: restore save_commit_buffer after use
+ + unpack-trees: batch fetching of missing blobs
+ + clone: partial clone
+ + partial-clone: define partial clone settings in config
+ + fetch: support filters
+ + fetch: refactor calculation of remote list
+ + fetch-pack: test support excluding large blobs
+ + fetch-pack: add --no-filter
+ + fetch-pack, index-pack, transport: partial clone
+ + upload-pack: add object filtering for partial clone
+ (this branch uses jh/fsck-promisors.)
+
+ Originally merged to 'next' on 2018-01-17
+
+ The machinery to clone & fetch, which in turn involves packing and
+ unpacking objects, have been told how to omit certain objects using
+ the filtering mechanism introduced by the jh/object-filtering
+ topic, and also mark the resulting pack as a promisor pack to
+ tolerate missing objects, taking advantage of the mechanism
+ introduced by the jh/fsck-promisors topic.
+
+
+* jk/daemon-fixes (2018-01-25) 6 commits
+ (merged to 'next' on 2018-02-07 at 0e4fe8f8cc)
+ + daemon: fix length computation in newline stripping
+ + t/lib-git-daemon: add network-protocol helpers
+ + daemon: handle NULs in extended attribute string
+ + daemon: fix off-by-one in logging extended attributes
+ + t/lib-git-daemon: record daemon log
+ + t5570: use ls-remote instead of clone for interp tests
+
+ Assorted fixes to "git daemon".
+
+
+* jt/http-redact-cookies (2018-01-19) 2 commits
+ (merged to 'next' on 2018-02-07 at a8c3416a7d)
+ + http: support omitting data from traces
+ + http: support cookie redaction when tracing
+
+ The http tracing code, often used to debug connection issues,
+ learned to redact potentially sensitive information from its output
+ so that it can be more safely sharable.
+
+
+* jt/long-running-process-doc (2018-01-25) 1 commit
+ (merged to 'next' on 2018-02-07 at 8bbb42ad3c)
+ + Docs: split out long-running subprocess handshake
+
+ Doc updates.
+
+
+* ks/submodule-doc-updates (2018-01-16) 2 commits
+ (merged to 'next' on 2018-02-07 at aff2fa1650)
+ + Doc/git-submodule: improve readability and grammar of a sentence
+ + Doc/gitsubmodules: make some changes to improve readability and syntax
+
+ Doc updates.
+
+
+* mr/packed-ref-store-fix (2018-01-19) 1 commit
+ (merged to 'next' on 2018-02-07 at 17d32e99da)
+ + files_initial_transaction_commit(): only unlock if locked
+
+ Crash fix for a corner case where an error codepath tried to unlock
+ what it did not acquire lock on.
+
+
+* nd/diff-flush-before-warning (2018-01-16) 1 commit
+ (merged to 'next' on 2018-02-07 at 9c67f58ae0)
+ + diff.c: flush stdout before printing rename warnings
+
+ Avoid showing a warning message in the middle of a line of "git
+ diff" output.
+
+
+* nd/list-merge-strategy (2018-01-26) 1 commit
+ (merged to 'next' on 2018-02-07 at a75d04a675)
+ + completion: fix completing merge strategies on non-C locales
+
+ Completion of "git merge -s<strategy>" (in contrib/) did not work
+ well in non-C locale.
+
+
+* nd/shared-index-fix (2018-01-24) 3 commits
+ (merged to 'next' on 2018-02-07 at c5d6e68c91)
+ + read-cache: don't write index twice if we can't write shared index
+ + read-cache.c: move tempfile creation/cleanup out of write_shared_index
+ + read-cache.c: change type of "temp" in write_shared_index()
+
+ Code clean-up.
+
+
+* nd/trace-with-env (2018-01-19) 7 commits
+ (merged to 'next' on 2018-02-07 at 68399411d9)
+ + run-command.c: print new cwd in trace_run_command()
+ + run-command.c: print env vars in trace_run_command()
+ + run-command.c: print program 'git' when tracing git_cmd mode
+ + run-command.c: introduce trace_run_command()
+ + trace.c: move strbuf_release() out of print_trace_line()
+ + trace: avoid unnecessary quoting
+ + sq_quote_argv: drop maxlen parameter
+
+ The tracing machinery learned to report tweaking of environment
+ variables as well.
+
+
+* ot/mru-on-list (2017-10-01) 1 commit
+ (merged to 'next' on 2018-02-07 at ee1ee4ac79)
+ + mru: use double-linked list from list.h
+ (this branch is used by gs/retire-mru.)
+
+ The first step to getting rid of mru API and using the
+ doubly-linked list API directly instead.
+
+
+* pc/submodule-helper (2018-01-16) 2 commits
+ (merged to 'next' on 2018-02-07 at 53b4524eca)
+ + submodule: port submodule subcommand 'deinit' from shell to C
+ + submodule: port submodule subcommand 'sync' from shell to C
+
+ Rewrite two more "git submodule" subcommands in C.
+
+
+* po/clang-format-functype-weight (2018-01-24) 1 commit
+ (merged to 'next' on 2018-02-07 at 0724aaae38)
+ + clang-format: adjust penalty for return type line break
+
+ Prevent "clang-format" from breaking line after function return type.
+
+
+* po/http-push-error-message (2018-01-24) 1 commit
+ (merged to 'next' on 2018-02-07 at 3dccd32857)
+ + http-push: improve error log
+
+ Debugging aid.
+
+
+* pw/sequencer-in-process-commit (2018-01-24) 14 commits
+ (merged to 'next' on 2018-02-07 at ab5961edd9)
+ + sequencer: run 'prepare-commit-msg' hook
+ + t7505: add tests for cherry-pick and rebase -i/-p
+ + t7505: style fixes
+ + sequencer: assign only free()able strings to gpg_sign
+ + sequencer: improve config handling
+ + t3512/t3513: remove KNOWN_FAILURE_CHERRY_PICK_SEES_EMPTY_COMMIT=1
+ + sequencer: try to commit without forking 'git commit'
+ + sequencer: load commit related config
+ + sequencer: simplify adding Signed-off-by: trailer
+ + commit: move print_commit_summary() to libgit
+ + commit: move post-rewrite code to libgit
+ + Add a function to update HEAD after creating a commit
+ + commit: move empty message checks to libgit
+ + t3404: check intermediate squash messages
+
+ The sequencer infrastructure is shared across "git cherry-pick",
+ "git rebase -i", etc., and has always spawned "git commit" when it
+ needs to create a commit. It has been taught to do so internally,
+ when able, by reusing the codepath "git commit" itself uses, which
+ gives performance boost for a few tens of percents in some sample
+ scenarios.
+
+
+* rb/hashmap-h-compilation-fix (2018-01-16) 1 commit
+ (merged to 'next' on 2018-02-07 at 780bc6d06b)
+ + hashmap.h: remove unused variable
+
+ Code clean-up.
+
+
+* rs/describe-unique-abbrev (2018-01-16) 1 commit
+ (merged to 'next' on 2018-02-07 at b5383e2d05)
+ + describe: use strbuf_add_unique_abbrev() for adding short hashes
+
+ Code clean-up.
+
+
+* rs/strbuf-cocci-workaround (2018-01-19) 1 commit
+ (merged to 'next' on 2018-02-07 at 73a2c4c769)
+ + cocci: use format keyword instead of a literal string
+
+ Update Coccinelle rules to catch and optimize strbuf_addf(&buf, "%s", str)
+
+
+* sg/cocci-move-array (2018-01-22) 1 commit
+ (merged to 'next' on 2018-02-07 at 6ced765979)
+ + Use MOVE_ARRAY
+
+ Code clean-up.
+
+
+* sg/travis-linux32-sanity (2018-01-30) 5 commits
+ (merged to 'next' on 2018-02-07 at 0349cf505c)
+ + travis-ci: don't fail if user already exists on 32 bit Linux build job
+ + travis-ci: don't run the test suite as root in the 32 bit Linux build
+ + travis-ci: don't repeat the path of the cache directory
+ + travis-ci: use 'set -e' in the 32 bit Linux build job
+ + travis-ci: use 'set -x' for the commands under 'su' in the 32 bit Linux build
-I am migrating my build and integration environment to a different
-machine; if you notice anything out of ordinary, please let me know
-before I decomission and reimage my usual environment ;-)
+ Travis updates.
-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
+* tb/crlf-conv-flags (2018-01-16) 1 commit
+ (merged to 'next' on 2018-02-07 at 1981be1b46)
+ + convert_to_git(): safe_crlf/checksafe becomes int conv_flags
+ (this branch is used by ls/checkout-encoding.)
+
+ Code clean-up.
+
+
+* tg/split-index-fixes (2018-01-19) 3 commits
+ (merged to 'next' on 2018-02-07 at 52d7a92ec5)
+ + travis: run tests with GIT_TEST_SPLIT_INDEX
+ + split-index: don't write cache tree with null oid entries
+ + read-cache: fix reading the shared index for other repos
+
+ The split-index mode had a few corner case bugs fixed.
+
+
+* tz/doc-show-defaults-to-head (2018-01-30) 1 commit
+ (merged to 'next' on 2018-02-07 at fa21fb2ec8)
+ + doc: mention 'git show' defaults to HEAD
+
+ Doc update.
--------------------------------------------------
[New Topics]
-* bc/hash-algo (2018-02-02) 12 commits
- - bulk-checkin: abstract SHA-1 usage
- - csum-file: abstract uses of SHA-1
- - csum-file: rename sha1file to hashfile
- - read-cache: abstract away uses of SHA-1
- - pack-write: switch various SHA-1 values to abstract forms
- - pack-check: convert various uses of SHA-1 to abstract forms
- - fast-import: switch various uses of SHA-1 to the_hash_algo
- - sha1_file: switch uses of SHA-1 to the_hash_algo
- - builtin/unpack-objects: switch uses of SHA-1 to the_hash_algo
- - builtin/index-pack: improve hash function abstraction
- - hash: create union for hash context allocation
- - hash: move SHA-1 macros to hash.h
+* bp/name-hash-dirname-fix (2018-02-08) 1 commit
+ - name-hash: properly fold directory names in adjust_dirname_case()
- More abstraction of hash function from the codepath.
+ "git add" files in the same directory, but spelling the directory
+ path in different cases on case insensitive filesystem, corrupted
+ the name hash data structure and led to unexpected results. This
+ has been corrected.
Will merge to 'next'.
-* bp/untracked-cache-noflush (2018-02-05) 1 commit
- - dir.c: don't flag the index as dirty for changes to the untracked cache
+* jk/doc-do-not-write-extern (2018-02-08) 1 commit
+ - CodingGuidelines: mention "static" and "extern"
- 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.
+ Devdoc update.
- Waiting for the discussion to finish.
- cf. <CACsJy8DLP=j-h3knwX9zOpejAfUbv1YJwfB-iw4476oy0hTfxg@mail.gmail.com>
+ Will merge to 'next'.
-* cc/perf-aggregate (2018-02-02) 3 commits
- - perf/aggregate: sort JSON fields in output
- - perf/aggregate: add --reponame option
- - perf/aggregate: add --subsection option
+* jk/gettext-poison (2018-02-08) 2 commits
+ - git-sh-i18n: check GETTEXT_POISON before USE_GETTEXT_SCHEME
+ - t0205: drop redundant test
+
+ Test updates.
Will merge to 'next'.
-* gs/rebase-allow-empty-message (2018-02-07) 1 commit
- - rebase: add --allow-empty-message option
+* js/fix-merge-arg-quoting-in-rebase-p (2018-02-08) 1 commit
+ - rebase -p: fix incorrect commit message when calling `git merge`.
- "git rebase" learned to take "--allow-empty-message" option.
+ "git rebase -p" mangled log messages of a merge commit, which is
+ now fixed.
Will merge to 'next'.
-* jc/blame-missing-path (2018-02-07) 1 commit
- - blame: tighten command line parser
+* js/packet-read-line-check-null (2018-02-08) 2 commits
+ - always check for NULL return from packet_read_line()
+ - correct error messages for NULL packet_read_line()
- "git blame HEAD COPYING" in a bare repository failed to run, while
- "git blame HEAD -- COPYING" run just fine.
+ Some low level protocol codepath could crash when they get an
+ unexpected flush packet, which is now fixed.
Will merge to 'next'.
-* jt/binsearch-with-fanout (2018-02-02) 2 commits
- - packfile: refactor hash search with fanout table
- - packfile: remove GIT_DEBUG_LOOKUP log statements
+* sb/color-h-cleanup (2018-02-13) 1 commit
+ - color.h: document and modernize header
+ (this branch is used by sb/blame-color.)
- Refactor the code to binary search starting from a fan-out table
- (which is how the packfile is indexed with object names) into a
- reusable helper.
+ Devdoc update.
Will merge to 'next'.
-* lw/daemon-log-destination (2018-02-05) 1 commit
- - daemon: add --log-destination=(stderr|syslog|none)
+* ab/untracked-cache-invalidation-docs (2018-02-09) 2 commits
+ - update-index doc: note the caveat with "could not open..."
+ - update-index doc: note a fixed bug in the untracked cache
+ (this branch uses nd/fix-untracked-cache-invalidation.)
- The log from "git daemon" can be redirected with a new option; one
- relevant use case is to send the log to standard error (instead of
- syslog) when running it from inetd.
+ Doc update to warn against remaining bugs in untracked cache.
Will merge to 'next'.
-* nd/diff-stat-with-summary (2018-02-02) 2 commits
- - diff: add --stat-with-summary
- - diff.c: refactor pprint_rename() to use strbuf
+* as/ll-i18n (2018-02-13) 1 commit
+ - Mark messages for translations
- Waiting for the discussion to finish.
+ Some messages in low level start-up codepath have been i18n-ized.
+ Will merge to 'next'.
-* nd/parseopt-completion (2018-02-07) 42 commits
- - SQUASH???
- - 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
+* bc/doc-interpret-trailers-grammofix (2018-02-13) 1 commit
+ - docs/interpret-trailers: fix agreement error
-* nd/trace-index-ops (2018-02-02) 1 commit
- - trace: measure where the time is spent in the index-heavy operations
+ Docfix.
Will merge to 'next'.
-* pc/submodule-helper-foreach (2018-02-02) 5 commits
- - submodule: port submodule subcommand 'foreach' from shell to C
- - submodule foreach: document variable '$displaypath'
- - submodule foreach: clarify the '$toplevel' variable documentation
- - submodule foreach: document '$sm_path' instead of '$path'
- - submodule foreach: correct '$path' in nested submodules from a subdirectory
+* jk/t0002-simplify (2018-02-12) 1 commit
+ - t0002: simplify error checking
- Waiting for the discussion to finish.
- cf. <20180206150044.1bffbb573c088d38c8e44bf5@google.com>
+ Code cleanup.
+ Will merge to 'next'.
-* rs/cocci-strbuf-addf-to-addstr (2018-02-02) 1 commit
- - cocci: simplify check for trivial format strings
+
+* ma/config-page-only-in-list-mode (2018-02-12) 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
+
+ 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").
+
+ Waiting for discussion to conclude.
+
+
+* ot/cat-batch-format (2018-02-12) 23 commits
+ - cat-file: update of docs
+ - cat-file: tests for new atoms added
+ - for-each-ref: tests for new atoms added
+ - ref-filter: unifying formatting of cat-file opts
+ - ref-filter: make populate_value() internal again
+ - cat-file: reuse printing logic from ref-filter
+ - ref-filter: make valid_atom general again
+ - ref-filter: make cat_file_info independent
+ - cat-file: move skip_object_info into ref-filter
+ - ref_filter: add is_atom_used function
+ - ref-filter: get rid of mark_atom_in_object_info()
+ - cat-file: start reusing populate_value()
+ - ref-filter: rename field in ref_array_item stuct
+ - ref-filter: make populate_value() global
+ - cat-file: start use ref_array_item struct
+ - ref-filter: reuse parse_ref_filter_atom()
+ - cat-file: start migrating formatting to ref-filter
+ - cat-file: split expand_atom() into 2 functions
+ - cat-file: move struct expand_data into ref-filter
+ - ref-filter: make valid_atom as function parameter
+ - cat-file: reuse struct ref_format
+ - ref-filter: add return value to some functions
+ - ref-filter: get rid of goto
+
+ Teach "cat-file --batch" to reuse the formatting machinery shared
+ by for-each-ref, branch --list, and tag --list.
+
+
+* rj/sparse-updates (2018-02-12) 2 commits
+ - Makefile: suppress a sparse warning for pack-revindex.c
+ - config.mak.uname: remove SPARSE_FLAGS setting for cygwin
+
+ Devtool update.
Will merge to 'next'.
-* tg/reset-hard-show-head-with-pretty (2018-02-02) 1 commit
- - reset --hard: make use of the pretty machinery
+* rs/check-ignore-multi (2018-02-12) 1 commit
+ - check-ignore: fix mix of directories and other file types
- The way "git reset --hard" reports the commit the updated HEAD
- points at is made consistent with the way how the commit title is
- generated by the other parts of the system. This matters when the
- title is spread across physically multiple lines.
+ "git check-ignore" with multiple paths got confused when one is a
+ file and the other is a directory, which has been fixed.
Will merge to 'next'.
-* tg/worktree-add-existing-branch (2018-02-05) 3 commits
- - worktree: teach "add" to check out existing branches
- - worktree: be clearer when "add" dwim-ery kicks in
- - worktree: improve message when creating a new worktree
+* sb/describe-blob (2018-02-12) 1 commit
+ - describe: confirm that blobs actually exist
- "git worktree add" learned to check out an existing branch.
+ "git describe $garbage" stopped giving any errors when the garbage
+ happens to be a string with 40 hexadecimal letters.
- 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.
+ Will merge to 'next'.
-* nm/tag-edit (2018-02-07) 1 commit
- - tag: add --edit option
+* sg/doc-test-must-fail-args (2018-02-12) 1 commit
+ - t: document 'test_must_fail ok=<signal-name>'
+ Devdoc update.
+
+ Will merge to 'next'.
+
+
+* sg/t6300-modernize (2018-02-13) 1 commit
+ - t6300-for-each-ref: fix "more than one quoting style" tests
+
+ Test update.
+
+ WIll merge to 'next'.
-* sm/mv-dry-run-update (2018-02-07) 2 commits
- - mv: remove unneeded 'if (!show_only)'
- - t7001: add test case for --dry-run
+
+* xz/send-email-batch-size (2018-02-12) 1 commit
+ - send-email: error out when relogin delay is missing
+
+ "git send-email" learned to complain when the batch-size option is
+ not defined when the relogin-delay option is, since these two are
+ mutually required.
+
+
+* pw/add-p-recount (2018-02-13) 4 commits
+ - 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
+ - add -i: add function to format hunk header
+
+
+* pw/add-p-single (2018-02-13) 3 commits
+ - add -p: improve error messages
+ - add -p: only bind search key if there's more than one hunk
+ - add -p: only display help for active keys
--------------------------------------------------
[Stalled]
--------------------------------------------------
[Cooking]
-* ab/fetch-prune (2018-01-24) 11 commits
- - fetch: add a --fetch-prune option and fetch.pruneTags config
- - fetch tests: add scaffolding for the new fetch.pruneTags
- - git-fetch & config doc: link to the new PRUNING section
- - git remote doc: correct dangerous lies about what prune does
- - git fetch doc: add a new section to explain the ins & outs of pruning
- - fetch tests: test --prune and refspec interaction
- - fetch tests: add a tag to be deleted to the pruning tests
- - fetch tests: re-arrange arguments for future readability
- - fetch tests: refactor in preparation for testing tag pruning
- - fetch: stop accessing "remote" variable indirectly
- - fetch: don't redundantly NULL something calloc() gave us
+* bc/hash-algo (2018-02-09) 13 commits
+ (merged to 'next' on 2018-02-09 at 4437f3f132)
+ + hash: update obsolete reference to SHA1_HEADER
+ (merged to 'next' on 2018-02-08 at 18f36d12ed)
+ + bulk-checkin: abstract SHA-1 usage
+ + csum-file: abstract uses of SHA-1
+ + csum-file: rename sha1file to hashfile
+ + read-cache: abstract away uses of SHA-1
+ + pack-write: switch various SHA-1 values to abstract forms
+ + pack-check: convert various uses of SHA-1 to abstract forms
+ + fast-import: switch various uses of SHA-1 to the_hash_algo
+ + sha1_file: switch uses of SHA-1 to the_hash_algo
+ + builtin/unpack-objects: switch uses of SHA-1 to the_hash_algo
+ + builtin/index-pack: improve hash function abstraction
+ + hash: create union for hash context allocation
+ + hash: move SHA-1 macros to hash.h
- Clarify how configured fetch refspecs interact with the "--prune"
- option of "git fetch", and also add a handy short-hand for getting
- rid of stale tags that are locally held.
+ More abstraction of hash function from the codepath.
- Expecting a reroll.
- cf. <87h8quytmq.fsf@evledraar.gmail.com>
+ Will merge to 'master'.
-* gs/retire-mru (2018-01-24) 1 commit
- (merged to 'next' on 2018-02-07 at 4b2e893911)
- + mru: Replace mru.[ch] with list.h implementation
- (this branch uses ot/mru-on-list.)
+* bp/untracked-cache-noflush (2018-02-05) 1 commit
+ - dir.c: don't flag the index as dirty for changes to the untracked cache
- Retire mru API as it does not give enough abstraction over
- underlying list API to be worth it.
+ 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.
+
+ Waiting for the discussion to finish.
+ cf. <CACsJy8DLP=j-h3knwX9zOpejAfUbv1YJwfB-iw4476oy0hTfxg@mail.gmail.com>
+
+
+* cc/perf-aggregate (2018-02-02) 3 commits
+ (merged to 'next' on 2018-02-08 at d8f074e6fb)
+ + perf/aggregate: sort JSON fields in output
+ + perf/aggregate: add --reponame option
+ + perf/aggregate: add --subsection option
+
+ "make perf" enhancement.
+
+ Will merge to 'master'.
+
+
+* gs/rebase-allow-empty-message (2018-02-07) 1 commit
+ (merged to 'next' on 2018-02-08 at 9d81a2496c)
+ + rebase: add --allow-empty-message option
+
+ "git rebase" learned to take "--allow-empty-message" option.
+
+ Will merge to 'master'.
+
+
+* jc/blame-missing-path (2018-02-07) 1 commit
+ - blame: tighten command line parser
+
+ "git blame HEAD COPYING" in a bare repository failed to run, while
+ "git blame HEAD -- COPYING" run just fine.
+
+ Will merge to 'next'.
+
+
+* jt/binsearch-with-fanout (2018-02-02) 2 commits
+ (merged to 'next' on 2018-02-08 at 86fc3e8104)
+ + packfile: refactor hash search with fanout table
+ + packfile: remove GIT_DEBUG_LOOKUP log statements
+
+ Refactor the code to binary search starting from a fan-out table
+ (which is how the packfile is indexed with object names) into a
+ reusable helper.
+
+ cf. <cfbde137-dbac-8796-f49f-2a543303d33a@web.de>
+
+
+* lw/daemon-log-destination (2018-02-05) 1 commit
+ (merged to 'next' on 2018-02-08 at da91bd56f4)
+ + daemon: add --log-destination=(stderr|syslog|none)
+
+ The log from "git daemon" can be redirected with a new option; one
+ relevant use case is to send the log to standard error (instead of
+ syslog) when running it from inetd.
Will merge to 'master'.
-* ot/mru-on-list (2017-10-01) 1 commit
- (merged to 'next' on 2018-02-07 at ee1ee4ac79)
- + mru: use double-linked list from list.h
- (this branch is used by gs/retire-mru.)
+* nd/diff-stat-with-summary (2018-02-02) 2 commits
+ - diff: add --stat-with-summary
+ - diff.c: refactor pprint_rename() to use strbuf
+
+ Waiting for the discussion to finish.
+
+
+* nd/parseopt-completion (2018-02-09) 42 commits
+ - git-completion.bash: add GIT_COMPLETION_OPTIONS=all config
+ - 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
+
+ Will see another reroll.
+ cf. <CACsJy8BoPxbt=hqAd9fS7MLiF33FVtAk0=Fr_q7UgYy1YvEg0w@mail.gmail.com>
+
- The first step to getting rid of mru API and using the
- doubly-linked list API directly instead.
+* nd/trace-index-ops (2018-02-02) 1 commit
+ (merged to 'next' on 2018-02-08 at 91e362b26a)
+ + trace: measure where the time is spent in the index-heavy operations
Will merge to 'master'.
-* jc/mailinfo-cleanup-fix (2018-01-24) 1 commit
- (merged to 'next' on 2018-02-07 at 65d41f993b)
- + mailinfo: avoid segfault when can't open files
-
- Corner case bugfix.
-
- Will merge to 'master'.
+* pc/submodule-helper-foreach (2018-02-02) 5 commits
+ - submodule: port submodule subcommand 'foreach' from shell to C
+ - submodule foreach: document variable '$displaypath'
+ - submodule foreach: clarify the '$toplevel' variable documentation
+ - submodule foreach: document '$sm_path' instead of '$path'
+ - submodule foreach: correct '$path' in nested submodules from a subdirectory
+ Waiting for the discussion to finish.
+ cf. <20180206150044.1bffbb573c088d38c8e44bf5@google.com>
-* po/clang-format-functype-weight (2018-01-24) 1 commit
- (merged to 'next' on 2018-02-07 at 0724aaae38)
- + clang-format: adjust penalty for return type line break
- Prevent "clang-format" from breaking line after function return type.
+* rs/cocci-strbuf-addf-to-addstr (2018-02-02) 1 commit
+ (merged to 'next' on 2018-02-08 at 0016008a97)
+ + cocci: simplify check for trivial format strings
Will merge to 'master'.
-* po/http-push-error-message (2018-01-24) 1 commit
- (merged to 'next' on 2018-02-07 at 3dccd32857)
- + http-push: improve error log
+* tg/reset-hard-show-head-with-pretty (2018-02-02) 1 commit
+ (merged to 'next' on 2018-02-08 at 596a4ec00d)
+ + reset --hard: make use of the pretty machinery
- Debugging aid.
+ The way "git reset --hard" reports the commit the updated HEAD
+ points at is made consistent with the way how the commit title is
+ generated by the other parts of the system. This matters when the
+ title is spread across physically multiple lines.
Will merge to 'master'.
-* po/object-id (2018-01-30) 12 commits
- - sha1_file: rename hash_sha1_file_literally
- - sha1_file: convert write_loose_object to object_id
- - sha1_file: convert force_object_loose to object_id
- - sha1_file: convert write_sha1_file to object_id
- - notes: convert write_notes_tree to object_id
- - notes: convert combine_notes_* to object_id
- - commit: convert commit_tree* to object_id
- - match-trees: convert splice_tree to object_id
- - cache: clear whole hash buffer with oidclr
- - sha1_file: convert hash_sha1_file to object_id
- - dir: convert struct sha1_stat to use object_id
- - sha1_file: convert pretend_sha1_file to object_id
-
- Conversion from uchar[20] to struct object_id continues.
+* tg/worktree-add-existing-branch (2018-02-05) 3 commits
+ - worktree: teach "add" to check out existing branches
+ - worktree: be clearer when "add" dwim-ery kicks in
+ - worktree: improve message when creating a new worktree
- Will merge to 'next'.
+ "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.
-* sg/travis-linux32-sanity (2018-01-30) 5 commits
- (merged to 'next' on 2018-02-07 at 0349cf505c)
- + travis-ci: don't fail if user already exists on 32 bit Linux build job
- + travis-ci: don't run the test suite as root in the 32 bit Linux build
- + travis-ci: don't repeat the path of the cache directory
- + travis-ci: use 'set -e' in the 32 bit Linux build job
- + travis-ci: use 'set -x' for the commands under 'su' in the 32 bit Linux build
- Travis updates.
+* nm/tag-edit (2018-02-07) 1 commit
+ - tag: add --edit option
- Will merge to 'master'.
+* sm/mv-dry-run-update (2018-02-07) 2 commits
+ - mv: remove unneeded 'if (!show_only)'
+ - t7001: add test case for --dry-run
-* jk/daemon-fixes (2018-01-25) 6 commits
- (merged to 'next' on 2018-02-07 at 0e4fe8f8cc)
- + daemon: fix length computation in newline stripping
- + t/lib-git-daemon: add network-protocol helpers
- + daemon: handle NULs in extended attribute string
- + daemon: fix off-by-one in logging extended attributes
- + t/lib-git-daemon: record daemon log
- + t5570: use ls-remote instead of clone for interp tests
- Assorted fixes to "git daemon".
+* ab/fetch-prune (2018-02-09) 17 commits
+ - fetch: make the --prune-tags work with <url>
+ - fetch: add a --prune-tags option and fetch.pruneTags config
+ - fetch tests: add scaffolding for the new fetch.pruneTags
+ - git-fetch & config doc: link to the new PRUNING section
+ - git remote doc: correct dangerous lies about what prune does
+ - git fetch doc: add a new section to explain the ins & outs of pruning
+ - fetch tests: fetch <url> <spec> as well as fetch [<remote>]
+ - fetch tests: expand case/esac for later change
+ - fetch tests: double quote a variable for interpolation
+ - fetch tests: test --prune and refspec interaction
+ - fetch tests: add a tag to be deleted to the pruning tests
+ - fetch tests: re-arrange arguments for future readability
+ - fetch tests: refactor in preparation for testing tag pruning
+ - remote: add a macro for "refs/tags/*:refs/tags/*"
+ - fetch: stop accessing "remote" variable indirectly
+ - fetch: trivially refactor assignment to ref_nr
+ - fetch: don't redundantly NULL something calloc() gave us
- Will merge to 'master'.
+ Clarify how configured fetch refspecs interact with the "--prune"
+ option of "git fetch", and also add a handy short-hand for getting
+ rid of stale tags that are locally held.
-* jt/long-running-process-doc (2018-01-25) 1 commit
- (merged to 'next' on 2018-02-07 at 8bbb42ad3c)
- + Docs: split out long-running subprocess handshake
+* po/object-id (2018-01-30) 12 commits
+ (merged to 'next' on 2018-02-08 at 701311e8ea)
+ + sha1_file: rename hash_sha1_file_literally
+ + sha1_file: convert write_loose_object to object_id
+ + sha1_file: convert force_object_loose to object_id
+ + sha1_file: convert write_sha1_file to object_id
+ + notes: convert write_notes_tree to object_id
+ + notes: convert combine_notes_* to object_id
+ + commit: convert commit_tree* to object_id
+ + match-trees: convert splice_tree to object_id
+ + cache: clear whole hash buffer with oidclr
+ + sha1_file: convert hash_sha1_file to object_id
+ + dir: convert struct sha1_stat to use object_id
+ + sha1_file: convert pretend_sha1_file to object_id
- Doc updates.
+ Conversion from uchar[20] to struct object_id continues.
Will merge to 'master'.
* nd/format-patch-stat-width (2018-02-02) 2 commits
- - format-patch: reduce patch diffstat width to 72
- - format-patch: keep cover-letter diffstat wrapped in 72 columns
+ (merged to 'next' on 2018-02-08 at c03e8a084e)
+ + format-patch: reduce patch diffstat width to 72
+ + format-patch: keep cover-letter diffstat wrapped in 72 columns
"git format-patch" learned to give 72-cols to diffstat, which is
consistent with other line length limits the subcommand uses for
its output meant for e-mails.
- Will merge to 'next'.
-
-
-* nd/list-merge-strategy (2018-01-26) 1 commit
- (merged to 'next' on 2018-02-07 at a75d04a675)
- + completion: fix completing merge strategies on non-C locales
-
- Completion of "git merge -s<strategy>" (in contrib/) did not work
- well in non-C locale.
-
Will merge to 'master'.
* sb/pull-rebase-submodule (2018-01-25) 1 commit
- - builtin/pull: respect verbosity settings in submodules
+ (merged to 'next' on 2018-02-08 at 38fa97f855)
+ + builtin/pull: respect verbosity settings in submodules
- Will merge to 'next'.
+ "git pull --rebase" did not pass verbosity setting down when
+ recursing into a submodule.
+
+ Will merge to 'master'.
-* sg/test-i18ngrep (2018-01-26) 10 commits
- - t: make 'test_i18ngrep' more informative on failure
- - t: make sure that 'test_i18ngrep' got enough parameters
- - t: forbid piping into 'test_i18ngrep'
- - t: move 'test_i18ncmp' and 'test_i18ngrep' to 'test-lib-functions.sh'
- - t5536: let 'test_i18ngrep' read the file without redirection
- - t5510: consolidate 'grep' and 'test_i18ngrep' patterns
- - t4001: don't run 'git status' upstream of a pipe
- - t6022: don't run 'git merge' upstream of a pipe
- - t5812: add 'test_i18ngrep's missing filename parameter
- - t5541: add 'test_i18ngrep's missing filename parameter
+* sg/test-i18ngrep (2018-02-08) 9 commits
+ (merged to 'next' on 2018-02-08 at e83eb33909)
+ + t: make 'test_i18ngrep' more informative on failure
+ + t: validate 'test_i18ngrep's parameters
+ + t: move 'test_i18ncmp' and 'test_i18ngrep' to 'test-lib-functions.sh'
+ + t5536: let 'test_i18ngrep' read the file without redirection
+ + t5510: consolidate 'grep' and 'test_i18ngrep' patterns
+ + t4001: don't run 'git status' upstream of a pipe
+ + t6022: don't run 'git merge' upstream of a pipe
+ + t5812: add 'test_i18ngrep's missing filename parameter
+ + t5541: add 'test_i18ngrep's missing filename parameter
Test fixes.
- Expecting a reroll.
- cf. <CAM0VKjkf=51i1YPqdNm=pyPHaNNguXLu0T1iHDYv28jW92QTow@mail.gmail.com>
+ Will merge to 'master'.
* bw/c-plus-plus (2018-01-30) 37 commits
- diff-lib: rename 'new' variable
- commit: rename 'new' variables
- combine-diff: rename 'new' variables
- - remote: rename 'new' variables
- - reflog: rename 'new' variables
- - pack-redundant: rename 'new' variables
- - help: rename 'new' variables
- - checkout: rename 'new' variables
- - apply: rename 'new' variables
- - apply: rename 'try' variables
- - diff: rename 'this' variables
- - rev-parse: rename 'this' variable
- - pack-objects: rename 'this' variables
- - blame: rename 'this' variables
- - object: rename function 'typename' to 'type_name'
- - object_info: change member name from 'typename' to 'type_name'
-
- I do not mind refraining from using these keywords in a foreign
- language in our codebase too much, but at the same time, renaming
- must be done a bit more thoughtfully. When the original uses 'new'
- together with and in contrast to 'old', renaming 'new' must be done
- while preserving the pairing (which may involve renaming 'old' as
- well), for example.
-
- Backburnered, i.e. will drop if other topics start to conflict with
- it, but will accept rerolls.
-
-
-* ew/svn-branch-segfault-fix (2018-01-30) 1 commit
- (merged to 'next' on 2018-02-07 at 1bf8d8f74f)
- + git-svn: control destruction order to avoid segfault
-
- Workaround for segfault with more recent versions of SVN.
-
- Will merge to 'master'.
-
-
-* tz/doc-show-defaults-to-head (2018-01-30) 1 commit
- (merged to 'next' on 2018-02-07 at fa21fb2ec8)
- + doc: mention 'git show' defaults to HEAD
-
- Doc update.
-
- Will merge to 'master'.
-
-
-* nd/ignore-glob-doc-update (2018-02-02) 1 commit
- - gitignore.txt: elaborate shell glob syntax
-
- Doc update.
-
- Will merge to 'next'.
-
-
-* nd/rebase-show-current-patch (2018-01-31) 3 commits
- - rebase: introduce and use pseudo-ref ORIG_COMMIT
- - rebase: add --show-current-patch
- - am: add --show-current-patch
-
- The new "--show-current-patch" option gives an end-user facing way
- to get the diff being applied when "git rebase" (and "git am")
- stops with a conflict.
-
- Expecting a reroll.
- cf. <CACsJy8D8PaDR0r+6AKMgPo9UBcWYQC8goaVkVhxMCXCa1E9F9A@mail.gmail.com>
-
-
-* jh/status-no-ahead-behind (2018-01-24) 4 commits
- - 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.
-
- At v5; is this ready for 'next'?
-
-
-* nd/worktree-move (2018-01-24) 7 commits
- - 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.
-
- Expecting a reroll.
- cf. <20180124095357.19645-1-pclouds@gmail.com>
-
-
-* nd/trace-with-env (2018-01-19) 7 commits
- (merged to 'next' on 2018-02-07 at 68399411d9)
- + run-command.c: print new cwd in trace_run_command()
- + run-command.c: print env vars in trace_run_command()
- + run-command.c: print program 'git' when tracing git_cmd mode
- + run-command.c: introduce trace_run_command()
- + trace.c: move strbuf_release() out of print_trace_line()
- + trace: avoid unnecessary quoting
- + sq_quote_argv: drop maxlen parameter
-
- The tracing machinery learned to report tweaking of environment
- variables as well.
-
- Will merge to 'master'.
-
-
-* cl/t9001-cleanup (2018-01-12) 1 commit
- (merged to 'next' on 2018-02-07 at 9b194a9999)
- + t9001: use existing helper in send-email test
-
- Test clean-up.
-
- Will merge to 'master'.
-
-
-* kg/packed-ref-cache-fix (2018-01-24) 6 commits
- - packed_ref_cache: don't use mmap() for small files
- - load_contents(): don't try to mmap an empty file
- - packed_ref_iterator_begin(): make optimization more general
- - find_reference_location(): make function safe for empty snapshots
- - create_snapshot(): use `xmemdupz()` rather than a strbuf
- - struct snapshot: store `start` rather than `header_len`
-
- Avoid mmapping small files while using packed refs (especially ones
- with zero size, which would cause later munmap() to fail).
-
- Will merge to 'next'.
- A change to a binsearch loop to work around picky complers was
- unnecessarily hard to reason about, but it should do.
-
-
-* ks/submodule-doc-updates (2018-01-16) 2 commits
- (merged to 'next' on 2018-02-07 at aff2fa1650)
- + Doc/git-submodule: improve readability and grammar of a sentence
- + Doc/gitsubmodules: make some changes to improve readability and syntax
-
- Doc updates.
-
- Will merge to 'master'.
-
-
-* nd/shared-index-fix (2018-01-24) 3 commits
- (merged to 'next' on 2018-02-07 at c5d6e68c91)
- + read-cache: don't write index twice if we can't write shared index
- + read-cache.c: move tempfile creation/cleanup out of write_shared_index
- + read-cache.c: change type of "temp" in write_shared_index()
+ - remote: rename 'new' variables
+ - reflog: rename 'new' variables
+ - pack-redundant: rename 'new' variables
+ - help: rename 'new' variables
+ - checkout: rename 'new' variables
+ - apply: rename 'new' variables
+ - apply: rename 'try' variables
+ - diff: rename 'this' variables
+ - rev-parse: rename 'this' variable
+ - pack-objects: rename 'this' variables
+ - blame: rename 'this' variables
+ - object: rename function 'typename' to 'type_name'
+ - object_info: change member name from 'typename' to 'type_name'
- Code clean-up.
+ I do not mind refraining from using these keywords in a foreign
+ language in our codebase too much, but at the same time, renaming
+ must be done a bit more thoughtfully. When the original uses 'new'
+ together with and in contrast to 'old', renaming 'new' must be done
+ while preserving the pairing (which may involve renaming 'old' as
+ well), for example.
- Will merge to 'master'.
+ Backburnered, i.e. will drop if other topics start to conflict with
+ it, but will accept rerolls.
-* rs/describe-unique-abbrev (2018-01-16) 1 commit
- (merged to 'next' on 2018-02-07 at b5383e2d05)
- + describe: use strbuf_add_unique_abbrev() for adding short hashes
+* nd/ignore-glob-doc-update (2018-02-02) 1 commit
+ (merged to 'next' on 2018-02-08 at 22ba92e49b)
+ + gitignore.txt: elaborate shell glob syntax
- Code clean-up.
+ Doc update.
Will merge to 'master'.
-* tb/crlf-conv-flags (2018-01-16) 1 commit
- (merged to 'next' on 2018-02-07 at 1981be1b46)
- + convert_to_git(): safe_crlf/checksafe becomes int conv_flags
- (this branch is used by ls/checkout-encoding.)
-
- Code clean-up.
+* nd/rebase-show-current-patch (2018-02-12) 3 commits
+ - rebase: introduce and use pseudo-ref REBASE_HEAD
+ - rebase: add --show-current-patch
+ - am: add --show-current-patch
- Will merge to 'master'.
+ The new "--show-current-patch" option gives an end-user facing way
+ to get the diff being applied when "git rebase" (and "git am")
+ stops with a conflict.
-* nd/diff-flush-before-warning (2018-01-16) 1 commit
- (merged to 'next' on 2018-02-07 at 9c67f58ae0)
- + diff.c: flush stdout before printing rename warnings
+* jh/status-no-ahead-behind (2018-01-24) 4 commits
+ - 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
- Avoid showing a warning message in the middle of a line of "git
- diff" output.
+ "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.
- Will merge to 'master'.
+ At v5; is this ready for 'next'?
-* rb/hashmap-h-compilation-fix (2018-01-16) 1 commit
- (merged to 'next' on 2018-02-07 at 780bc6d06b)
- + hashmap.h: remove unused variable
+* nd/worktree-move (2018-02-12) 7 commits
+ - 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()
- Code clean-up.
+ "git worktree" learned move and remove subcommands.
- Will merge to 'master'.
+ Expecting a reroll.
+ cf. <20180124095357.19645-1-pclouds@gmail.com>
-* cc/sha1-file-name (2018-01-19) 2 commits
- (merged to 'next' on 2018-02-07 at a50b171a84)
- + sha1_file: improve sha1_file_name() perfs
- + sha1_file: remove static strbuf from sha1_file_name()
+* kg/packed-ref-cache-fix (2018-01-24) 6 commits
+ (merged to 'next' on 2018-02-08 at 370f06a565)
+ + packed_ref_cache: don't use mmap() for small files
+ + load_contents(): don't try to mmap an empty file
+ + packed_ref_iterator_begin(): make optimization more general
+ + find_reference_location(): make function safe for empty snapshots
+ + create_snapshot(): use `xmemdupz()` rather than a strbuf
+ + struct snapshot: store `start` rather than `header_len`
- Code clean-up.
+ Avoid mmapping small files while using packed refs (especially ones
+ with zero size, which would cause later munmap() to fail).
Will merge to 'master'.
+ A change to a binsearch loop to work around picky complers was
+ unnecessarily hard to reason about, but it should do.
* cl/send-email-reply-to (2018-01-17) 2 commits
cf. <CAN0heSqxmLoh33i65JPhyQbmPaAcJcwrTCO+ZD4eb+qh8Pf8+w@mail.gmail.com>
-* ds/use-get-be64 (2018-01-19) 1 commit
- (merged to 'next' on 2018-02-07 at 6d6d5ba71d)
- + packfile: use get_be64() for large offsets
-
- Code clean-up.
-
- Will merge to 'master'.
-
-
* en/merge-recursive-fixes (2018-01-19) 3 commits
- - merge-recursive: add explanation for src_entry and dst_entry
- - merge-recursive: fix logic ordering issue
- - Tighten and correct a few testcases for merging and cherry-picking
+ (merged to 'next' on 2018-02-08 at c254292070)
+ + merge-recursive: add explanation for src_entry and dst_entry
+ + merge-recursive: fix logic ordering issue
+ + Tighten and correct a few testcases for merging and cherry-picking
(this branch is used by en/rename-directory-detection.)
- Will merge to 'next'.
+ Will merge to 'master'.
* jc/worktree-add-short-help (2018-01-17) 1 commit
- - worktree: say that "add" takes an arbitrary commit in short-help
+ (merged to 'next' on 2018-02-08 at 9f59ca72ab)
+ + worktree: say that "add" takes an arbitrary commit in short-help
Error message fix.
- Will merge to 'next'.
+ Will merge to 'master'.
-* js/rebase-recreate-merge (2018-01-30) 10 commits
+* js/rebase-recreate-merge (2018-02-12) 12 commits
- rebase -i: introduce --recreate-merges=[no-]rebase-cousins
- pull: accept --rebase=recreate to recreate the branch topology
- - sequencer: handle autosquash and post-rewrite for merge commands
+ - 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: 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.
- Not learning anything other than the parent info from an existing
- merge was found unsatisfactory by some. It is something that can
- be fixed incrementally without breaking end-user experience, I
- would think, by doing the same cherry-pick 3-way merge.
- cf. <87k1vpqq85.fsf@javad.com>
-
-
-* jt/http-redact-cookies (2018-01-19) 2 commits
- (merged to 'next' on 2018-02-07 at a8c3416a7d)
- + http: support omitting data from traces
- + http: support cookie redaction when tracing
-
- The http tracing code, often used to debug connection issues,
- learned to redact potentially sensitive information from its output
- so that it can be more safely sharable.
-
- Will merge to 'master'.
-
-
-* mr/packed-ref-store-fix (2018-01-19) 1 commit
- (merged to 'next' on 2018-02-07 at 17d32e99da)
- + files_initial_transaction_commit(): only unlock if locked
-
- Crash fix for a corner case where an error codepath tried to unlock
- what it did not acquire lock on.
-
- Will merge to 'master'.
-
-
-* rs/strbuf-cocci-workaround (2018-01-19) 1 commit
- (merged to 'next' on 2018-02-07 at 73a2c4c769)
- + cocci: use format keyword instead of a literal string
-
- Update Coccinelle rules to catch and optimize strbuf_addf(&buf, "%s", str)
-
- Will merge to 'master'.
-
-
-* sg/cocci-move-array (2018-01-22) 1 commit
- (merged to 'next' on 2018-02-07 at 6ced765979)
- + Use MOVE_ARRAY
-
- Code clean-up.
-
- Will merge to 'master'.
-
-* tg/split-index-fixes (2018-01-19) 3 commits
- (merged to 'next' on 2018-02-07 at 52d7a92ec5)
- + travis: run tests with GIT_TEST_SPLIT_INDEX
- + split-index: don't write cache tree with null oid entries
- + read-cache: fix reading the shared index for other repos
+* jt/fsck-code-cleanup (2018-01-23) 1 commit
+ (merged to 'next' on 2018-02-08 at 199ad41486)
+ + fsck: fix leak when traversing trees
- The split-index mode had a few corner case bugs fixed.
+ Plug recently introduced leaks in fsck.
Will merge to 'master'.
-* jt/fsck-code-cleanup (2018-01-23) 1 commit
- - fsck: fix leak when traversing trees
-
- Will merge to 'next'.
-
-
* ab/wildmatch-tests (2018-01-30) 10 commits
- - wildmatch test: mark test as EXPENSIVE_ON_WINDOWS
- - test-lib: add an EXPENSIVE_ON_WINDOWS prerequisite
- - wildmatch test: create & test files on disk in addition to in-memory
- - wildmatch test: perform all tests under all wildmatch() modes
- - wildmatch test: use test_must_fail, not ! for test-wildmatch
- - wildmatch test: remove dead fnmatch() test code
- - wildmatch test: use a paranoia pattern from nul_match()
- - wildmatch test: don't try to vertically align our output
- - wildmatch test: use more standard shell style
- - wildmatch test: indent with tabs, not spaces
+ (merged to 'next' on 2018-02-08 at f999a3d732)
+ + wildmatch test: mark test as EXPENSIVE_ON_WINDOWS
+ + test-lib: add an EXPENSIVE_ON_WINDOWS prerequisite
+ + wildmatch test: create & test files on disk in addition to in-memory
+ + wildmatch test: perform all tests under all wildmatch() modes
+ + wildmatch test: use test_must_fail, not ! for test-wildmatch
+ + wildmatch test: remove dead fnmatch() test code
+ + wildmatch test: use a paranoia pattern from nul_match()
+ + wildmatch test: don't try to vertically align our output
+ + wildmatch test: use more standard shell style
+ + wildmatch test: indent with tabs, not spaces
More tests for wildmatch functions.
- Will merge to 'next'.
+ Will merge to 'master'.
* bw/protocol-v2 (2018-02-07) 35 commits
The beginning of the next-gen transfer protocol.
-* ls/checkout-encoding (2018-01-30) 6 commits
+* ls/checkout-encoding (2018-02-09) 7 commits
+ - convert: add round trip check based on 'core.checkRoundtripEncoding'
- convert: add tracing for 'working-tree-encoding' attribute
- 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
- strbuf: add xstrdup_toupper()
- strbuf: remove unnecessary NUL assignment in xstrdup_tolower()
- (this branch uses tb/crlf-conv-flags.)
The new "checkout-encoding" attribute can ask Git to convert the
contents to the specified encoding when checking out to the working
tree (and the other way around when checking in).
-* pc/submodule-helper (2018-01-16) 2 commits
- (merged to 'next' on 2018-02-07 at 53b4524eca)
- + submodule: port submodule subcommand 'deinit' from shell to C
- + submodule: port submodule subcommand 'sync' from shell to C
-
- Rewrite two more "git submodule" subcommands in C.
-
- Will merge to 'master'.
-
-
-* sb/blame-color (2018-01-08) 4 commits
+* sb/blame-color (2018-02-13) 3 commits
- builtin/blame: highlight recently changed lines
- builtin/blame: add option to color metadata fields separately
- builtin/blame: dim uninteresting metadata
- - color.h: document and modernize header
+ (this branch uses sb/color-h-cleanup.)
Expecting a reroll.
cf. https://public-inbox.org/git/20171110011002.10179-1-sbeller@google.com/#t
* sg/travis-build-during-script-phase (2018-01-08) 1 commit
- travis-ci: build Git during the 'script' phase
- Still under discussion.
- cf. <5DE3FA05-2347-4BE7-8A1A-A6E5FEEC7C2B@gmail.com>
+ So... what do we want to do with this thing?
* nd/fix-untracked-cache-invalidation (2018-02-07) 5 commits
- - dir.c: ignore paths containing .git when invalidating untracked cache
- - dir.c: stop ignoring opendir() error in open_cached_dir()
- - dir.c: fix missing dir invalidation in untracked code
- - dir.c: avoid stat() in valid_cached_dir()
- - status: add a failing test showing a core.untrackedCache bug
+ (merged to 'next' on 2018-02-08 at 23bd5a5d2d)
+ + dir.c: ignore paths containing .git when invalidating untracked cache
+ + dir.c: stop ignoring opendir() error in open_cached_dir()
+ + dir.c: fix missing dir invalidation in untracked code
+ + dir.c: avoid stat() in valid_cached_dir()
+ + status: add a failing test showing a core.untrackedCache bug
+ (this branch is used by ab/untracked-cache-invalidation-docs.)
Some bugs around "untracked cache" feature have been fixed.
- Will merge to 'next'.
+ Seems to uncover bad untracked cache information a bit too loudly.
+ cf. <87d11omi2o.fsf@evledraar.gmail.com>
* np/send-email-header-parsing (2017-12-15) 1 commit
* ab/sha1dc-build (2017-12-08) 3 commits
- - sha1dc_git.h: re-arrange an ifdef chain for a subsequent change
- - Makefile: under "make dist", include the sha1collisiondetection submodule
- - Makefile: don't error out under DC_SHA1_EXTERNAL if DC_SHA1_SUBMODULE=auto
+ (merged to 'next' on 2018-02-08 at ba9ff2b836)
+ + sha1dc_git.h: re-arrange an ifdef chain for a subsequent change
+ + Makefile: under "make dist", include the sha1collisiondetection submodule
+ + Makefile: don't error out under DC_SHA1_EXTERNAL if DC_SHA1_SUBMODULE=auto
Push the submodule version of collision-detecting SHA-1 hash
implementation a bit harder on builders.
- Will merge to 'next'.
-
-
-* ab/simplify-perl-makefile (2018-01-03) 3 commits
- (merged to 'next' on 2018-01-23 at 1506e0651a)
- + perl: treat PERLLIB_EXTRA as an extra path again
- + perl: avoid *.pmc and fix Error.pm further
- + Makefile: replace perl/Makefile.PL with simple make rules
-
- Originally merged to 'next' on 2018-01-03
-
- The build procedure for perl/ part has been greatly simplified by
- weaning ourselves off of MakeMaker.
-
Will merge to 'master'.
z/b and z/c, it is likely that x/d added in the meantime would also
want to move to z/d by taking the hint that the entire directory
'x' moved to 'z'.
-
-
-* pw/sequencer-in-process-commit (2018-01-24) 14 commits
- (merged to 'next' on 2018-02-07 at ab5961edd9)
- + sequencer: run 'prepare-commit-msg' hook
- + t7505: add tests for cherry-pick and rebase -i/-p
- + t7505: style fixes
- + sequencer: assign only free()able strings to gpg_sign
- + sequencer: improve config handling
- + t3512/t3513: remove KNOWN_FAILURE_CHERRY_PICK_SEES_EMPTY_COMMIT=1
- + sequencer: try to commit without forking 'git commit'
- + sequencer: load commit related config
- + sequencer: simplify adding Signed-off-by: trailer
- + commit: move print_commit_summary() to libgit
- + commit: move post-rewrite code to libgit
- + Add a function to update HEAD after creating a commit
- + commit: move empty message checks to libgit
- + t3404: check intermediate squash messages
-
- The sequencer infrastructure is shared across "git cherry-pick",
- "git rebase -i", etc., and has always spawned "git commit" when it
- needs to create a commit. It has been taught to do so internally,
- when able, by reusing the codepath "git commit" itself uses, which
- gives performance boost for a few tens of percents in some sample
- scenarios.
-
- Will merge to 'master'.
-
-
-* jh/fsck-promisors (2017-12-08) 10 commits
- (merged to 'next' on 2018-01-23 at ca59f5c18e)
- + gc: do not repack promisor packfiles
- + rev-list: support termination at promisor objects
- + sha1_file: support lazily fetching missing objects
- + introduce fetch-object: fetch one promisor object
- + index-pack: refactor writing of .keep files
- + fsck: support promisor objects as CLI argument
- + fsck: support referenced promisor objects
- + fsck: support refs pointing to promisor objects
- + fsck: introduce partialclone extension
- + extension.partialclone: introduce partial clone extension
- (this branch is used by jh/partial-clone.)
-
- Originally merged to 'next' on 2018-01-17
-
- In preparation for implementing narrow/partial clone, the machinery
- for checking object connectivity used by gc and fsck has been
- taught that a missing object is OK when it is referenced by a
- packfile specially marked as coming from trusted repository that
- promises to make them available on-demand and lazily.
-
- Will merge to 'master'.
-
-
-* jh/partial-clone (2017-12-08) 13 commits
- (merged to 'next' on 2018-01-23 at de0f0111ea)
- + t5616: test bulk prefetch after partial fetch
- + fetch: inherit filter-spec from partial clone
- + t5616: end-to-end tests for partial clone
- + fetch-pack: restore save_commit_buffer after use
- + unpack-trees: batch fetching of missing blobs
- + clone: partial clone
- + partial-clone: define partial clone settings in config
- + fetch: support filters
- + fetch: refactor calculation of remote list
- + fetch-pack: test support excluding large blobs
- + fetch-pack: add --no-filter
- + fetch-pack, index-pack, transport: partial clone
- + upload-pack: add object filtering for partial clone
- (this branch uses jh/fsck-promisors.)
-
- Originally merged to 'next' on 2018-01-17
-
- The machinery to clone & fetch, which in turn involves packing and
- unpacking objects, have been told how to omit certain objects using
- the filtering mechanism introduced by the jh/object-filtering
- topic, and also mark the resulting pack as a promisor pack to
- tolerate missing objects, taking advantage of the mechanism
- introduced by the jh/fsck-promisors topic.
-
- Will merge to 'master'.