To: git@vger.kernel.org
Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Feb 2018, #03; Wed, 21)
-X-master-at: e3a80781f5932f5fea12a49eb06f3ade4ed8945c
-X-next-at: 2e18187dfdb805eb42926ca430828b89b45f5da7
+Subject: What's cooking in git.git (Mar 2018, #01; Thu, 1)
+X-master-at: 7e31236f652ad9db221511eaf157ce0ef55585d6
+X-next-at: cb683e0bf615cfbbe729b561a6ca9484c4bf4596
-What's cooking in git.git (Feb 2018, #03; Wed, 21)
+What's cooking in git.git (Mar 2018, #01; Thu, 1)
--------------------------------------------------
Here are the topics that have been cooking. Commits prefixed with
--------------------------------------------------
[Graduated to "master"]
-* ab/sha1dc-build (2017-12-08) 3 commits
- (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
+* ab/untracked-cache-invalidation-docs (2018-02-09) 2 commits
+ (merged to 'next' on 2018-02-14 at 11d2d07c4a)
+ + 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.)
- Push the submodule version of collision-detecting SHA-1 hash
- implementation a bit harder on builders.
+ Doc update to warn against remaining bugs in untracked cache.
-* ab/wildmatch-tests (2018-01-30) 10 commits
- (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
+* as/ll-i18n (2018-02-13) 1 commit
+ (merged to 'next' on 2018-02-14 at b30154a04c)
+ + Mark messages for translations
- More tests for wildmatch functions.
+ Some messages in low level start-up codepath have been i18n-ized.
-* 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
+* bc/doc-interpret-trailers-grammofix (2018-02-13) 1 commit
+ (merged to 'next' on 2018-02-14 at 940e6dc7a5)
+ + docs/interpret-trailers: fix agreement error
- More abstraction of hash function from the codepath.
+ Docfix.
-* 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
+* bp/fsmonitor (2018-02-14) 1 commit
+ (merged to 'next' on 2018-02-14 at 5c508858fb)
+ + fsmonitor: update documentation to remove reference to invalid config settings
- "make perf" enhancement.
+ Doc update for a recently added feature.
-* en/merge-recursive-fixes (2018-01-19) 3 commits
- (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.)
+* bp/name-hash-dirname-fix (2018-02-08) 1 commit
+ (merged to 'next' on 2018-02-14 at 2f564fb4b3)
+ + name-hash: properly fold directory names in adjust_dirname_case()
+ "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.
-* 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.
+* es/worktree-add-post-checkout-hook (2018-02-15) 1 commit
+ (merged to 'next' on 2018-02-21 at 6ef6a130bf)
+ + worktree: add: fix 'post-checkout' not knowing new worktree location
+ "git worktree add" learned to run the post-checkout hook, just like
+ "git clone" runs it upon the initial checkout.
-* jc/worktree-add-short-help (2018-01-17) 1 commit
- (merged to 'next' on 2018-02-08 at 9f59ca72ab)
- + worktree: say that "add" takes an arbitrary commit in short-help
- Error message fix.
+* gs/test-unset-xdg-cache-home (2018-02-16) 1 commit
+ (merged to 'next' on 2018-02-21 at 9aec46d404)
+ + test-lib.sh: unset XDG_CACHE_HOME
+ Test update.
-* jt/fsck-code-cleanup (2018-01-23) 1 commit
- (merged to 'next' on 2018-02-08 at 199ad41486)
- + fsck: fix leak when traversing trees
- Plug recently introduced leaks in fsck.
+* jc/blame-missing-path (2018-02-07) 1 commit
+ (merged to 'next' on 2018-02-14 at 883d266e1e)
+ + blame: tighten command line parser
+ "git blame HEAD COPYING" in a bare repository failed to run, while
+ "git blame HEAD -- COPYING" run just fine. This has been corrected.
-* 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`
- Avoid mmapping small files while using packed refs (especially ones
- with zero size, which would cause later munmap() to fail).
- A change to a binsearch loop to work around picky complers was
- unnecessarily hard to reason about, but it should do.
+* jk/doc-do-not-write-extern (2018-02-08) 1 commit
+ (merged to 'next' on 2018-02-14 at e55b5127de)
+ + CodingGuidelines: mention "static" and "extern"
+ Devdoc update.
-* 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.
+* jk/gettext-poison (2018-02-08) 2 commits
+ (merged to 'next' on 2018-02-14 at cca3719a59)
+ + git-sh-i18n: check GETTEXT_POISON before USE_GETTEXT_SCHEME
+ + t0205: drop redundant test
+ Test updates.
-* nd/format-patch-stat-width (2018-02-02) 2 commits
- (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.
+* jk/push-options-via-transport-fix (2018-02-20) 2 commits
+ (merged to 'next' on 2018-02-21 at a037cbfa2b)
+ + remote-curl: unquote incoming push-options
+ + t5545: factor out http repository setup
+ "git push" over http transport did not unquote the push-options
+ correctly.
-* 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
- Doc update.
+* jk/sq-dequote-on-bogus-input (2018-02-14) 1 commit
+ (merged to 'next' on 2018-02-14 at 75d4f1eaf8)
+ + sq_dequote: fix extra consumption of source string
+ Code to unquote single-quoted string (used in the parser for
+ configuration files, etc.) did not diagnose bogus input correctly
+ and produced bogus results 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
+* jk/t0002-simplify (2018-02-12) 1 commit
+ (merged to 'next' on 2018-02-14 at a7a24f5f29)
+ + t0002: simplify error checking
-* 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
+ Code cleanup.
- Conversion from uchar[20] to struct object_id continues.
+* jk/test-hashmap-updates (2018-02-14) 6 commits
+ (merged to 'next' on 2018-02-14 at a61a9bd8f0)
+ + test-hashmap: use "unsigned int" for hash storage
+ + test-hashmap: simplify alloc_test_entry
+ + test-hashmap: use strbuf_getline rather than fgets
+ + test-hashmap: use xsnprintf rather than snprintf
+ + test-hashmap: check allocation computation for overflow
+ + test-hashmap: use ALLOC_ARRAY rather than bare malloc
-* 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
+ Code clean-up.
-* sb/pull-rebase-submodule (2018-01-25) 1 commit
- (merged to 'next' on 2018-02-08 at 38fa97f855)
- + builtin/pull: respect verbosity settings in submodules
+* js/fix-merge-arg-quoting-in-rebase-p (2018-02-08) 1 commit
+ (merged to 'next' on 2018-02-14 at 27ebf001a1)
+ + rebase -p: fix incorrect commit message when calling `git merge`.
- "git pull --rebase" did not pass verbosity setting down when
- recursing into a submodule.
+ "git rebase -p" mangled log messages of a merge commit, which is
+ now fixed.
-* 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
+* js/packet-read-line-check-null (2018-02-08) 2 commits
+ (merged to 'next' on 2018-02-14 at 6ba237b284)
+ + always check for NULL return from packet_read_line()
+ + correct error messages for NULL packet_read_line()
+
+ Some low level protocol codepath could crash when they get an
+ unexpected flush packet, which is now fixed.
+
+
+* jt/binsearch-with-fanout (2018-02-15) 2 commits
+ (merged to 'next' on 2018-02-15 at 7648891022)
+ + packfile: refactor hash search with fanout table
+ + packfile: remove GIT_DEBUG_LOOKUP log statements
+ (this branch is used by ds/commit-graph.)
+
+ 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.
+
+
+* nd/am-quit (2018-02-14) 1 commit
+ (merged to 'next' on 2018-02-21 at 9a9cb40c2f)
+ + am: support --quit
+
+ "git am" has learned the "--quit" option, in addition to the existing
+ "--abort" option; having the pair mirrors a few other commands like
+ "rebase" and "cherry-pick".
- Test fixes.
+* nd/fix-untracked-cache-invalidation (2018-02-07) 5 commits
+ (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.)
-* 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
+ Some bugs around "untracked cache" feature have been fixed.
+ Seems to uncover bad untracked cache information a bit too loudly,
+ for which there is ab/untracked-cache-invalidation-docs topic.
+ cf. <87d11omi2o.fsf@evledraar.gmail.com>
+ They have to graduate together.
- 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.
+
+* rd/typofix (2018-02-14) 2 commits
+ (merged to 'next' on 2018-02-14 at e770601de4)
+ + Correct mispellings of ".gitmodule" to ".gitmodules"
+ + t/: correct obvious typo "detahced"
+
+ Typofix.
+
+
+* rj/sparse-updates (2018-02-12) 2 commits
+ (merged to 'next' on 2018-02-14 at 072df8ed5b)
+ + Makefile: suppress a sparse warning for pack-revindex.c
+ + config.mak.uname: remove SPARSE_FLAGS setting for cygwin
+
+ Devtool update.
+
+
+* rs/check-ignore-multi (2018-02-12) 1 commit
+ (merged to 'next' on 2018-02-14 at 43cb0704af)
+ + check-ignore: fix mix of directories and other file types
+
+ "git check-ignore" with multiple paths got confused when one is a
+ file and the other is a directory, which has been fixed.
+
+
+* sb/describe-blob (2018-02-12) 1 commit
+ (merged to 'next' on 2018-02-14 at 23e4c13944)
+ + describe: confirm that blobs actually exist
+
+ "git describe $garbage" stopped giving any errors when the garbage
+ happens to be a string with 40 hexadecimal letters.
+
+
+* sb/status-doc-fix (2018-02-15) 1 commit
+ (merged to 'next' on 2018-02-21 at 5e68f3dac8)
+ + Documentation/git-status: clarify status table for porcelain mode
+
+ Docfix.
+
+
+* sg/doc-test-must-fail-args (2018-02-12) 1 commit
+ (merged to 'next' on 2018-02-14 at 28662d145b)
+ + t: document 'test_must_fail ok=<signal-name>'
+
+ Devdoc update.
+
+
+* tg/worktree-create-tracking (2018-02-16) 2 commits
+ (merged to 'next' on 2018-02-21 at 3e00a10cd8)
+ + git-worktree.txt: fix indentation of example and text of 'add' command
+ + git-worktree.txt: fix missing ")" typo
+
+ Hotfix for a recent topic.
+
+
+* tk/apply-dev-null-verify-name-fix (2018-02-15) 2 commits
+ (merged to 'next' on 2018-02-21 at dab449203b)
+ + apply: handle Subversion diffs with /dev/null gracefully
+ + apply: demonstrate a problem applying svn diffs
+
+ Many places in "git apply" knew that "/dev/null" that signals
+ "there is no such file on this side of the diff" can be followed by
+ whitespace and garbage when parsing a patch, except for one, which
+ made an otherwise valid patch (e.g. ones from subversion) rejected.
+
+
+* tz/do-not-clean-spec-file (2018-02-17) 1 commit
+ (merged to 'next' on 2018-02-21 at c1336418a8)
+ + Makefile: remove *.spec from clean target
+
+ We no longer create any *.spec file, so "make clean" should not
+ remove it.
--------------------------------------------------
[New Topics]
-* bp/fsmonitor (2018-02-14) 1 commit
- (merged to 'next' on 2018-02-14 at 5c508858fb)
- + fsmonitor: update documentation to remove reference to invalid config settings
+* jk/cached-commit-buffer (2018-02-22) 2 commits
+ (merged to 'next' on 2018-02-27 at af791d9a1e)
+ + revision: drop --show-all option
+ + commit: drop uses of get_cached_commit_buffer()
- Doc update for a recently added feature.
+ Code clean-up.
Will merge to 'master'.
-* jk/sq-dequote-on-bogus-input (2018-02-14) 1 commit
- (merged to 'next' on 2018-02-14 at 75d4f1eaf8)
- + sq_dequote: fix extra consumption of source string
+* jk/test-helper-v-output-fix (2018-02-22) 1 commit
+ (merged to 'next' on 2018-02-27 at c9109977e8)
+ + t: send verbose test-helper output to fd 4
- Code to unquote single-quoted string (used in the parser for
- configuration files, etc.) did not diagnose bogus input correctly
- and produced bogus results instead.
+ Test framework update.
Will merge to 'master'.
-* jk/test-hashmap-updates (2018-02-14) 6 commits
- (merged to 'next' on 2018-02-14 at a61a9bd8f0)
- + test-hashmap: use "unsigned int" for hash storage
- + test-hashmap: simplify alloc_test_entry
- + test-hashmap: use strbuf_getline rather than fgets
- + test-hashmap: use xsnprintf rather than snprintf
- + test-hashmap: check allocation computation for overflow
- + test-hashmap: use ALLOC_ARRAY rather than bare malloc
+* ld/p4-unshelve (2018-02-22) 1 commit
+ - git-p4: add unshelve command
+
+ "git p4" learned to "unshelve" shelved commit from P4.
+
+ Will merge to 'next'.
+
+
+* ms/non-ascii-ticks (2018-02-22) 1 commit
+ (merged to 'next' on 2018-02-27 at 41159fc4f0)
+ + Documentation/gitsubmodules.txt: avoid non-ASCII apostrophes
+
+ Doc markup fix.
+
+ Will merge to 'master'.
+
+
+* rs/strbuf-read-file-or-whine (2018-02-22) 1 commit
+ (merged to 'next' on 2018-02-27 at 56017cb5e2)
+ + sequencer: factor out strbuf_read_file_or_whine()
Code clean-up.
Will merge to 'master'.
-* nd/am-quit (2018-02-14) 1 commit
- (merged to 'next' on 2018-02-21 at 9a9cb40c2f)
- + am: support --quit
+* jk/strbuf-read-file-close-error (2018-02-23) 1 commit
+ (merged to 'next' on 2018-02-27 at c5dfe33335)
+ + strbuf_read_file(): preserve errno across close() call
- "git am" has learned "--quit" option, in addition to the existing
- "--abort" option; having the pair mirrors a few other commands like
- "rebase" and "cherry-pick".
+ Code clean-up.
Will merge to 'master'.
-* 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
+* bw/perl-timegm-timelocal-fix (2018-02-23) 1 commit
+ (merged to 'next' on 2018-02-27 at 565a3141ce)
+ + perl: call timegm and timelocal with 4-digit year
- "git cmd --opt=~u/path/to/file" did not tilde-expand "~u" part to
- the path to the home directory of user 'u'
+ Y2k20 fix ;-) for our perl scripts.
- Will discard.
- This may make the resulting whole more confusing, though.
- cf. <87wozffavp.fsf@evledraar.gmail.com>
+ Will merge to 'master'.
-* rd/typofix (2018-02-14) 2 commits
- (merged to 'next' on 2018-02-14 at e770601de4)
- + Correct mispellings of ".gitmodule" to ".gitmodules"
- + t/: correct obvious typo "detahced"
+* ps/contains-id-error-message (2018-02-23) 1 commit
+ (merged to 'next' on 2018-02-27 at 9623d6817b)
+ + ref-filter: make "--contains <id>" less chatty if <id> is invalid
- Typofix.
+ "git tag --contains no-such-commit" gave a full list of options
+ after giving an error message.
Will merge to 'master'.
+ As a follow-up we may want to also handle "branch --points-at <object>"
+ that shares the same problem.
-* jc/allow-ff-merging-kept-tags (2018-02-16) 1 commit
- - merge: allow fast-forward when merging a tracked tag
+* rv/grep-cleanup (2018-02-23) 2 commits
+ - grep: simplify grep_oid and grep_file
+ - grep: move grep_source_init outside critical section
- Since Git 1.7.9, "git merge" defaulted to --no-ff (i.e. even when
- the side branch being merged is a descendant of the current commit,
- create a merge commit instead of fast-forwarding) when merging a
- tag object. This was appropriate default for integrators who pull
- signed tags from their downstream contributors, but caused an
- unnecessary merges when used by downstream contributors who
- habitually "catch up" their topic branches with tagged releases
- from the upstream. Update "git merge" to default to --no-ff only
- when merging a tag object that does *not* sit at its usual place in
- refs/tags/ hierarchy, and allow fast-forwarding otherwise, to
- mitigate the problem.
+ Threaded "git grep" has been optimized to avoid allocation in code
+ section that is covered under a mutex.
Will merge to 'next'.
-* ab/perl-fixes (2018-02-15) 2 commits
- - perl: move CPAN loader wrappers to another namespace
- - perl: *.pm files should not have the executable bit
+* sg/subtree-signed-commits (2018-02-23) 1 commit
+ - subtree: fix add and pull for GPG-signed commits
- Only the first few of a series of several small patches.
+ "git subtree" script (in contrib/) scripted around "git log", whose
+ output got affected by end-user configuration like log.showsignature
- Expecting a reroll.
+ Will merge to 'next'.
-* ab/simplify-perl-makefile (2018-02-15) 1 commit
- - Makefile: generate Git(3pm) as dependency of the 'doc' and 'man' targets
+* ds/find-unique-abbrev-optim (2018-02-27) 1 commit
+ - sha1_name: fix uninitialized memory errors
- Hotfix for a topic already in 'master'.
+ While finding unique object name abbreviation, the code may
+ accidentally have read beyond the end of the array of object names
+ in a pack.
Will merge to 'next'.
-* es/worktree-add-post-checkout-hook (2018-02-15) 1 commit
- (merged to 'next' on 2018-02-21 at 6ef6a130bf)
- + worktree: add: fix 'post-checkout' not knowing new worktree location
+* ds/mark-parents-uninteresting-optim (2018-02-27) 1 commit
+ - revision.c: reduce object database queries
- "git worktree add" learned to run the post-checkout hook, just like
- "git clone" runs it upon the initial checkout.
+ Micro optimization in revision traversal code.
- Will merge to 'master'.
+ Will merge to 'next'.
-* sb/status-doc-fix (2018-02-15) 1 commit
- (merged to 'next' on 2018-02-21 at 5e68f3dac8)
- + Documentation/git-status: clarify status table for porcelain mode
+* jc/test-must-be-empty (2018-02-27) 1 commit
+ - test_must_be_empty: make sure the file exists, not just empty
+
+ Test framework tweak to catch developer thinko.
+
+ Will merge to 'next'.
+
+
+* ma/roll-back-lockfiles (2018-02-28) 5 commits
+ - 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.
+
+ Will merge to 'next'.
+
+
+* mk/doc-pretty-fill (2018-02-27) 1 commit
+ - docs/pretty-formats: fix typo '% <(<N>)' -> '%<|(<N>)'
Docfix.
- Will merge to 'master'.
+ Will merge to 'next'.
-* tk/apply-dev-null-verify-name-fix (2018-02-15) 2 commits
- (merged to 'next' on 2018-02-21 at dab449203b)
- + apply: handle Subversion diffs with /dev/null gracefully
- + apply: demonstrate a problem applying svn diffs
+* nd/remove-ignore-env-field (2018-02-28) 4 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
+ (this branch uses sb/object-store; is tangled with sb/packfiles-in-repository.)
- Many places in "git apply" knew that "/dev/null" that signals
- "there is no such file on this side of the diff" can be followed by
- whitespace and garbage when parsing a patch, except for one, which
- made an otherwise valid patch (e.g. ones from subversion) rejected.
- Will merge to 'master'.
+* rj/test-i18ngrep (2018-02-28) 2 commits
+ - t5536: simplify checking of messages output to stderr
+ - t4151: consolidate multiple calls to test_i18ngrep
+ Test updates.
-* gs/test-unset-xdg-cache-home (2018-02-16) 1 commit
- (merged to 'next' on 2018-02-21 at 9aec46d404)
- + test-lib.sh: unset XDG_CACHE_HOME
+ Will merge to 'next'.
- Test update.
- Will merge to 'master'.
+* rs/perf-repeat-thrice-by-default (2018-02-27) 1 commit
+ - perf: use GIT_PERF_REPEAT_COUNT=3 by default even without config file
+ Perf test regression fix.
-* tg/worktree-create-tracking (2018-02-16) 2 commits
- (merged to 'next' on 2018-02-21 at 3e00a10cd8)
- + git-worktree.txt: fix indentation of example and text of 'add' command
- + git-worktree.txt: fix missing ")" typo
+ Will merge to 'next'.
- Hotfix for a recent topic.
- Will merge to 'master'.
+* sb/object-store (2018-02-28) 27 commits
+ - sha1_file: allow sha1_loose_object_info to handle arbitrary repositories
+ - sha1_file: allow map_sha1_file to handle arbitrary repositories
+ - sha1_file: allow map_sha1_file_1 to handle arbitrary repositories
+ - sha1_file: allow open_sha1_file to handle arbitrary repositories
+ - sha1_file: allow stat_sha1_file to handle arbitrary repositories
+ - sha1_file: allow sha1_file_name to handle arbitrary repositories
+ - sha1_file: add repository argument to sha1_loose_object_info
+ - sha1_file: add repository argument to map_sha1_file
+ - sha1_file: add repository argument to map_sha1_file_1
+ - sha1_file: add repository argument to open_sha1_file
+ - sha1_file: add repository argument to stat_sha1_file
+ - sha1_file: add repository argument to sha1_file_name
+ - sha1_file: allow prepare_alt_odb to handle arbitrary repositories
+ - sha1_file: allow link_alt_odb_entries to handle arbitrary repositories
+ - sha1_file: add repository argument to prepare_alt_odb
+ - sha1_file: add repository argument to link_alt_odb_entries
+ - sha1_file: add repository argument to read_info_alternates
+ - sha1_file: add repository argument to link_alt_odb_entry
+ - sha1_file: add raw_object_store argument to alt_odb_usable
+ - pack: move approximate object count to object store
+ - pack: move prepare_packed_git_run_once to object store
+ - object-store: close all packs upon clearing the object store
+ - object-store: move packed_git and packed_git_mru to object store
+ - object-store: free alt_odb_list
+ - object-store: move alt_odb_list and alt_odb_tail to object store
+ - object-store: migrate alternates struct and functions from cache.h
+ - repository: introduce raw object store field
+ (this branch is used by nd/remove-ignore-env-field and sb/packfiles-in-repository.)
+
+ Refactoring the internal global data structure to make it possible
+ to open multiple repositories, work with and then close them.
+
+
+* sb/packfiles-in-repository (2018-02-28) 11 commits
+ - packfile: allow find_pack_entry to handle arbitrary repositories
+ - packfile: add repository argument to find_pack_entry
+ - packfile: allow reprepare_packed_git to handle arbitrary repositories
+ - packfile: allow prepare_packed_git to handle arbitrary repositories
+ - packfile: allow prepare_packed_git_one to handle arbitrary repositories
+ - packfile: add repository argument to reprepare_packed_git
+ - packfile: add repository argument to prepare_packed_git
+ - packfile: add repository argument to prepare_packed_git_one
+ - packfile: allow install_packed_git to handle arbitrary repositories
+ - packfile: allow rearrange_packed_git to handle arbitrary repositories
+ - packfile: allow prepare_packed_git_mru to handle arbitrary repositories
+ (this branch uses sb/object-store; is tangled with nd/remove-ignore-env-field.)
+
+
+* sg/test-x (2018-02-28) 11 commits
+ - 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
+
+ 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.
+ Will merge to 'next'.
-* jk/push-options-via-transport-fix (2018-02-20) 2 commits
- (merged to 'next' on 2018-02-21 at a037cbfa2b)
- + remote-curl: unquote incoming push-options
- + t5545: factor out http repository setup
- "git push" over http transport did not unquote the push-options
- correctly.
+* ab/gc-auto-in-commit (2018-03-01) 1 commit
+ - commit: run git gc --auto just before the post-commit hook
- Will merge to 'master'.
+ "git commit" used to run "gc --auto" near the end, which was lost
+ when the command was reimplemented in C by mistake.
+ Will merge to 'next'.
-* tz/do-not-clean-spec-file (2018-02-17) 1 commit
- (merged to 'next' on 2018-02-21 at c1336418a8)
- + Makefile: remove *.spec from clean target
- We no longer create any *.spec file, so "make clean" should not
- remove it.
+* ab/pre-auto-gc-battery (2018-02-28) 1 commit
+ - hooks/pre-auto-gc-battery: allow gc to run on non-laptops
- Will merge to 'master'.
+ 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).
+ Will merge to 'next'.
-* bw/doc-submodule-recurse-config-with-clone (2018-02-21) 1 commit
- - submodule: indicate that 'submodule.recurse' doesn't apply to clone
- Doc update.
+* ag/userdiff-go-funcname (2018-03-01) 1 commit
+ - userdiff: add built-in pattern for golang
+
+ "git diff" and friends learned funcname patterns for Go language
+ source files.
Will merge to 'next'.
-* ds/commit-graph (2018-02-20) 13 commits
- - commit-graph: build graph from starting commits
- - commit-graph: read only from specific pack-indexes
- - commit: integrate commit graph with commit parsing
- - commit-graph: close under reachability
- - commit-graph: add core.commitGraph setting
- - commit-graph: implement --delete-expired
- - commit-graph: implement --set-latest
- - commit-graph: implement git commit-graph read
- - commit-graph: implement 'git-commit-graph write'
- - commit-graph: implement write_commit_graph()
- - commit-graph: create git-commit-graph builtin
- - graph: add commit graph design document
- - commit-graph: add format document
- (this branch uses jt/binsearch-with-fanout.)
+* ma/skip-writing-unchanged-index (2018-03-01) 1 commit
+ - write_locked_index(): add flag to avoid writing unchanged index
+ (this branch uses ma/roll-back-lockfiles.)
+ Internal API clean-up to allow write_locked_index() optionally skip
+ writing the in-core index when it is not modified.
-* ot/ref-filter-cleanup (2018-02-21) 2 commits
- - ref-filter: get rid of goto
- - ref-filter: get rid of duplicate code
+ May want to merge into ma/roll-back-lockfiles topic before merging
+ to 'next'.
--------------------------------------------------
[Stalled]
* sg/travis-build-during-script-phase (2018-01-08) 1 commit
- travis-ci: build Git during the 'script' phase
- So... what do we want to do with this thing?
-
-
-* 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'?
+ Stalled for too long without any response; will discard.
* av/fsmonitor-updates (2018-01-04) 6 commits
way that has been possible on Windows for quite some time, for
Linux, BSDs and Darwin.
- Tentatively kicked out of 'next' to see how well another topic
- ab/simplify-perl-makefile that heavily conflicts with this fares.
+ Perhaps it is about time to reboot the effort?
* mk/http-backend-content-length (2017-11-27) 4 commits
build. As a workaround, refuse to run a build when tclsh is not
installed and NO_TCLTK is not set.
- Undecided.
+ 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.
into the feature, without affecting the current callers that may not
be prepared to accept a guess that is not known to be correct.
- What's the doneness of this one?
+ Stalled for too long without any response; will discard.
* jk/drop-ancient-curl (2017-08-09) 5 commits
"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>
--------------------------------------------------
[Cooking]
-* bp/name-hash-dirname-fix (2018-02-08) 1 commit
- (merged to 'next' on 2018-02-14 at 2f564fb4b3)
- + name-hash: properly fold directory names in adjust_dirname_case()
+* 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 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.
+ "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'.
+ Will merge to 'next'.
-* jk/doc-do-not-write-extern (2018-02-08) 1 commit
- (merged to 'next' on 2018-02-14 at e55b5127de)
- + CodingGuidelines: mention "static" and "extern"
+* 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
- Devdoc update.
+ "git cmd --opt=~u/path/to/file" did not tilde-expand "~u" part to
+ the path to the home directory of user 'u'
- Will merge to 'master'.
+ Will discard.
+ This may make the resulting whole more confusing, though.
+ cf. <87wozffavp.fsf@evledraar.gmail.com>
-* jk/gettext-poison (2018-02-08) 2 commits
- (merged to 'next' on 2018-02-14 at cca3719a59)
- + git-sh-i18n: check GETTEXT_POISON before USE_GETTEXT_SCHEME
- + t0205: drop redundant test
+* jc/allow-ff-merging-kept-tags (2018-02-16) 1 commit
+ (merged to 'next' on 2018-02-27 at 8b03610d2b)
+ + merge: allow fast-forward when merging a tracked tag
- Test updates.
+ Since Git 1.7.9, "git merge" defaulted to --no-ff (i.e. even when
+ the side branch being merged is a descendant of the current commit,
+ create a merge commit instead of fast-forwarding) when merging a
+ tag object. This was appropriate default for integrators who pull
+ signed tags from their downstream contributors, but caused an
+ unnecessary merges when used by downstream contributors who
+ habitually "catch up" their topic branches with tagged releases
+ from the upstream. Update "git merge" to default to --no-ff only
+ when merging a tag object that does *not* sit at its usual place in
+ refs/tags/ hierarchy, and allow fast-forwarding otherwise, to
+ mitigate the problem.
Will merge to 'master'.
-* js/fix-merge-arg-quoting-in-rebase-p (2018-02-08) 1 commit
- (merged to 'next' on 2018-02-14 at 27ebf001a1)
- + rebase -p: fix incorrect commit message when calling `git merge`.
+* ab/perl-fixes (2018-02-27) 13 commits
+ - 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
- "git rebase -p" mangled log messages of a merge commit, which is
- now fixed.
+ Only the first few of a series of several small patches.
- Will merge to 'master'.
+ Expecting a reroll.
-* js/packet-read-line-check-null (2018-02-08) 2 commits
- (merged to 'next' on 2018-02-14 at 6ba237b284)
- + always check for NULL return from packet_read_line()
- + correct error messages for NULL packet_read_line()
+* ab/simplify-perl-makefile (2018-02-15) 1 commit
+ (merged to 'next' on 2018-02-27 at b0d68a2013)
+ + Makefile: generate Git(3pm) as dependency of the 'doc' and 'man' targets
- Some low level protocol codepath could crash when they get an
- unexpected flush packet, which is now fixed.
+ Hotfix for a topic already in 'master'.
Will merge to 'master'.
-* sb/color-h-cleanup (2018-02-13) 1 commit
- - color.h: document and modernize header
- (this branch is used by sb/blame-color.)
-
- Devdoc update.
-
- Will merge to 'next'.
-
-
-* ab/untracked-cache-invalidation-docs (2018-02-09) 2 commits
- (merged to 'next' on 2018-02-14 at 11d2d07c4a)
- + 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.)
+* bw/doc-submodule-recurse-config-with-clone (2018-02-21) 1 commit
+ (merged to 'next' on 2018-02-27 at 5b12841508)
+ + submodule: indicate that 'submodule.recurse' doesn't apply to clone
- Doc update to warn against remaining bugs in untracked cache.
+ Doc update.
Will merge to 'master'.
-* as/ll-i18n (2018-02-13) 1 commit
- (merged to 'next' on 2018-02-14 at b30154a04c)
- + Mark messages for translations
+* ds/commit-graph (2018-02-20) 13 commits
+ - commit-graph: build graph from starting commits
+ - commit-graph: read only from specific pack-indexes
+ - commit: integrate commit graph with commit parsing
+ - commit-graph: close under reachability
+ - commit-graph: add core.commitGraph setting
+ - commit-graph: implement --delete-expired
+ - commit-graph: implement --set-latest
+ - commit-graph: implement git commit-graph read
+ - commit-graph: implement 'git-commit-graph write'
+ - commit-graph: implement write_commit_graph()
+ - commit-graph: create git-commit-graph builtin
+ - graph: add commit graph design document
+ - commit-graph: add format document
- Some messages in low level start-up codepath have been i18n-ized.
+ Precompute and store information necessary for ancestry traversal
+ in a separate file to optimize graph walking.
- Will merge to 'master'.
+ Reroll exists, but it appears that there will be a further reroll.
+ cf. <1519698787-190494-1-git-send-email-dstolee@microsoft.com>
-* bc/doc-interpret-trailers-grammofix (2018-02-13) 1 commit
- (merged to 'next' on 2018-02-14 at 940e6dc7a5)
- + docs/interpret-trailers: fix agreement error
+* ot/ref-filter-cleanup (2018-02-21) 2 commits
+ - ref-filter: get rid of goto
+ - ref-filter: get rid of duplicate code
- Docfix.
+ Code cleanup.
- Will merge to 'master'.
+ Will merge to 'next'.
-* jk/t0002-simplify (2018-02-12) 1 commit
- (merged to 'next' on 2018-02-14 at a7a24f5f29)
- + t0002: simplify error checking
+* sb/color-h-cleanup (2018-02-13) 1 commit
+ (merged to 'next' on 2018-02-27 at 617345de77)
+ + color.h: document and modernize header
+ (this branch is used by sb/blame-color.)
- Code cleanup.
+ Devdoc update.
Will merge to 'master'.
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.
+ Is this ready for 'next'?
* ot/cat-batch-format (2018-02-12) 23 commits
Allocates flex-array on stack, etc.
cf. <58b2bdcd-d621-fd21-ab4d-6a9478319b19@ramsayjones.plus.com>
-
-
-* rj/sparse-updates (2018-02-12) 2 commits
- (merged to 'next' on 2018-02-14 at 072df8ed5b)
- + Makefile: suppress a sparse warning for pack-revindex.c
- + config.mak.uname: remove SPARSE_FLAGS setting for cygwin
-
- Devtool update.
-
- Will merge to 'master'.
-
-
-* rs/check-ignore-multi (2018-02-12) 1 commit
- (merged to 'next' on 2018-02-14 at 43cb0704af)
- + check-ignore: fix mix of directories and other file types
-
- "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 'master'.
-
-
-* sb/describe-blob (2018-02-12) 1 commit
- (merged to 'next' on 2018-02-14 at 23e4c13944)
- + describe: confirm that blobs actually exist
-
- "git describe $garbage" stopped giving any errors when the garbage
- happens to be a string with 40 hexadecimal letters.
-
- Will merge to 'master'.
-
-
-* sg/doc-test-must-fail-args (2018-02-12) 1 commit
- (merged to 'next' on 2018-02-14 at 28662d145b)
- + t: document 'test_must_fail ok=<signal-name>'
-
- Devdoc update.
-
- Will merge to 'master'.
+ Will discard--a rebooted effort is beginning elsewhere.
* sg/t6300-modernize (2018-02-13) 1 commit
- - t6300-for-each-ref: fix "more than one quoting style" tests
+ (merged to 'next' on 2018-02-27 at b6f13b6915)
+ + t6300-for-each-ref: fix "more than one quoting style" tests
Test update.
- Will merge to 'next'.
+ Will merge to 'master'.
* xz/send-email-batch-size (2018-02-12) 1 commit
- - send-email: error out when relogin delay is missing
+ (merged to 'next' on 2018-02-27 at da0247d532)
+ + 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.
- Will merge to 'next'.
+ Will merge to 'master'.
-* pw/add-p-recount (2018-02-20) 9 commits
+* pw/add-p-recount (2018-03-01) 9 commits
- 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
* 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
+ (merged to 'next' on 2018-02-27 at 0e2bd585e3)
+ + 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
"git add -p" used to offer "/" (look for a matching hunk) as a
choice, even there was only one hunk, which has been corrected.
enabled (e.g. help for '/' won't be shown when there is only one
hunk).
- Will merge to 'next'.
+ Will merge to 'master'.
-* bp/untracked-cache-noflush (2018-02-05) 1 commit
+* bp/untracked-cache-noflush (2018-02-28) 2 commits
+ - 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
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>
-
-
-* jc/blame-missing-path (2018-02-07) 1 commit
- (merged to 'next' on 2018-02-14 at 883d266e1e)
- + blame: tighten command line parser
-
- "git blame HEAD COPYING" in a bare repository failed to run, while
- "git blame HEAD -- COPYING" run just fine. This has been corrected.
-
- Will merge to 'master'.
-
-
-* jt/binsearch-with-fanout (2018-02-15) 2 commits
- (merged to 'next' on 2018-02-15 at 7648891022)
- + packfile: refactor hash search with fanout table
- + packfile: remove GIT_DEBUG_LOOKUP log statements
- (this branch is used by ds/commit-graph.)
-
- 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.
-
- Will merge to 'master'.
+ Will merge to 'next'.
-* nd/diff-stat-with-summary (2018-02-02) 2 commits
- - diff: add --stat-with-summary
+* nd/diff-stat-with-summary (2018-02-27) 2 commits
+ - diff: add --compact-summary
- diff.c: refactor pprint_rename() to use strbuf
- Waiting for the discussion to finish.
+ "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).
+
+ Will merge to 'next'.
* nd/parseopt-completion (2018-02-09) 41 commits
* nm/tag-edit (2018-02-07) 1 commit
- - tag: add --edit option
+ (merged to 'next' on 2018-02-27 at 3bc8345213)
+ + tag: add --edit option
"git tag" learned an explicit "--edit" option that allows the
message given via "-m" and "-F" to be further edited.
- Will merge to 'next'.
+ 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
+ (merged to 'next' on 2018-02-27 at 17eef62ddf)
+ + mv: remove unneeded 'if (!show_only)'
+ + t7001: add test case for --dry-run
Code clean-up.
- Will merge to 'next'.
+ Will merge to 'master'.
* 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
+ (merged to 'next' on 2018-02-27 at eafb648dd9)
+ + 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
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.
+ Will merge to 'master'.
+
-* bw/c-plus-plus (2018-02-14) 38 commits
- - fixup! diff: rename 'this' variables
- - replace: rename 'new' variables
- - trailer: rename 'template' variables
- - tempfile: rename 'template' variables
- - wrapper: rename 'template' variables
- - environment: rename 'namespace' variables
- - diff: rename 'template' variables
- - environment: rename 'template' variables
- - init-db: rename 'template' variables
- - unpack-trees: rename 'new' variables
- - trailer: rename 'new' variables
- - submodule: rename 'new' variables
- - split-index: rename 'new' variables
- - remote: rename 'new' variables
- - ref-filter: rename 'new' variables
- - read-cache: rename 'new' variables
- - line-log: rename 'new' variables
- - imap-send: rename 'new' variables
- - http: rename 'new' variables
- - entry: rename 'new' variables
- - diffcore-delta: rename 'new' variables
- - diff: rename 'new' variables
- - 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'
+* bw/c-plus-plus (2018-02-22) 37 commits
+ (merged to 'next' on 2018-02-27 at daf85c03de)
+ + replace: rename 'new' variables
+ + trailer: rename 'template' variables
+ + tempfile: rename 'template' variables
+ + wrapper: rename 'template' variables
+ + environment: rename 'namespace' variables
+ + diff: rename 'template' variables
+ + environment: rename 'template' variables
+ + init-db: rename 'template' variables
+ + unpack-trees: rename 'new' variables
+ + trailer: rename 'new' variables
+ + submodule: rename 'new' variables
+ + split-index: rename 'new' variables
+ + remote: rename 'new' variables
+ + ref-filter: rename 'new' variables
+ + read-cache: rename 'new' variables
+ + line-log: rename 'new' variables
+ + imap-send: rename 'new' variables
+ + http: rename 'new' variables
+ + entry: rename 'new' variables
+ + diffcore-delta: rename 'new' variables
+ + diff: rename 'new' variables
+ + 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'
Avoid using identifiers that clash with C++ keywords. Even though
it is not a goal to compile Git with C++ compilers, changes like
this help use of code analysis tools that targets C++ on our
codebase.
- Is the 'fixup!' cleanly squashable to the problematic one, or does
- this series require another reroll to get it in a good enough shape?
+ Will merge to 'master'.
* 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
+ (merged to 'next' on 2018-02-27 at 5a4e23a77c)
+ + rebase: introduce and use pseudo-ref REBASE_HEAD
+ + 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.
- Will merge to 'next'.
+ Will merge to 'master'.
* nd/worktree-move (2018-02-12) 7 commits
"git worktree" learned move and remove subcommands.
- Expecting a reroll.
- cf. <20180124095357.19645-1-pclouds@gmail.com>
+ Will merge to 'next'.
* cl/send-email-reply-to (2018-01-17) 2 commits
cf. <CAN0heSqxmLoh33i65JPhyQbmPaAcJcwrTCO+ZD4eb+qh8Pf8+w@mail.gmail.com>
-* js/rebase-recreate-merge (2018-02-12) 12 commits
+* 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
"git rebase" learned "--recreate-merges" to transplant the whole
topology of commit graph elsewhere.
- Is this ready for 'next'?
+ Will merge to 'next'.
-* bw/protocol-v2 (2018-02-07) 35 commits
+* bw/protocol-v2 (2018-03-01) 35 commits
- remote-curl: don't request v2 when pushing
- remote-curl: implement stateless-connect command
+ - http: eliminate "# service" line when using protocol v2
- http: don't always add Git-Protocol header
- http: allow providing extra headers for http requests
- remote-curl: store the protocol version the server responded with
- connect: don't request v2 when pushing
- connect: refactor git_connect to only get the protocol version once
- fetch-pack: support shallow requests
- - upload-pack: support shallow requests
- fetch-pack: perform a fetch using v2
- upload-pack: introduce fetch server command
- push: pass ref patterns when pushing
- upload-pack: factor out processing lines
- upload-pack: convert to a builtin
- pkt-line: add delim packet support
- - pkt-line: introduce struct packet_reader
+ - pkt-line: allow peeking a packet line without consuming it
- pkt-line: introduce packet_read_with_status
The beginning of the next-gen transfer protocol.
-* ls/checkout-encoding (2018-02-15) 7 commits
+* ls/checkout-encoding (2018-03-01) 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
contents to the specified encoding when checking out to the working
tree (and the other way around when checking in).
- Expecting a reroll.
- The code and general design looked ready. The documentation needs
- to be refined to unconfuse general audience.
- cf. <xmqq1shk7o2y.fsf@gitster-ct.c.googlers.com>
+ Expecting a reroll; it is almost there, though.
+ cf. <CAPig+cR81J3fTOtrgAumAs=RC5hqYFfSmeb-ru-Yf_ahFuBiew@mail.gmail.com>
+ cf. <8EE59DC3-69E0-412B-AC50-5D348D6D5BE0@gmail.com>
* sb/blame-color (2018-02-13) 3 commits
error messages are funny, can segfault, ...
-* nd/fix-untracked-cache-invalidation (2018-02-07) 5 commits
- (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 'master'.
- Seems to uncover bad untracked cache information a bit too loudly,
- for which there is ab/untracked-cache-invalidation-docs topic.
- cf. <87d11omi2o.fsf@evledraar.gmail.com>
- They have to graduate together.
-
-
-* en/rename-directory-detection (2018-02-14) 29 commits
+* en/rename-directory-detection (2018-02-27) 29 commits
- merge-recursive: ensure we write updates for directory-renamed file
- merge-recursive: avoid spurious rename/rename conflict from dir renames
- directory rename detection: new testcases showcasing a pair of bugs