To: git@vger.kernel.org
Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Jan 2019, #02; Tue, 15)
-X-master-at: 77556354bb7ac50450e3b28999e3576969869068
-X-next-at: 40155ab247a57ccc696d2ded09336b2c5203e832
+Subject: What's cooking in git.git (Jan 2019, #03; Fri, 18)
+X-master-at: 16a465bc018d09e9d7bbbdc5f40a7fb99c21f8ef
+X-next-at: aa96b0ce6b0fa4fa4cc6870f1a3aff3878967bfa
-What's cooking in git.git (Jan 2019, #02; Tue, 15)
+What's cooking in git.git (Jan 2019, #03; Fri, 18)
--------------------------------------------------
Here are the topics that have been cooking. Commits prefixed with
--------------------------------------------------
[Graduated to "master"]
-* ab/commit-graph-progress-fix (2018-11-20) 1 commit
- (merged to 'next' on 2019-01-04 at 405a1a2cf5)
- + commit-graph: split up close_reachable() progress output
-
+* cy/completion-typofix (2019-01-03) 1 commit
+ (merged to 'next' on 2019-01-08 at 6c6f01a07d)
+ + completion: fix typo in git-completion.bash
-* bw/mailmap (2018-12-09) 1 commit
- (merged to 'next' on 2019-01-04 at 02b6e83231)
- + mailmap: update brandon williams's email address
+ Typofix.
-* cb/openbsd-allows-reading-directory (2018-12-03) 1 commit
- (merged to 'next' on 2019-01-04 at 9d865107fd)
- + config.mak.uname: OpenBSD uses BSD semantics with fread for directories
+* cy/zsh-completion-SP-in-path (2019-01-03) 2 commits
+ (merged to 'next' on 2019-01-08 at fee27de30b)
+ + completion: treat results of git ls-tree as file paths
+ + zsh: complete unquoted paths with spaces correctly
- BSD port update.
+ With zsh, "git cmd path<TAB>" was completed to "git cmd path name"
+ when the completed path has a special character like SP in it,
+ without any attempt to keep "path name" a single filename. This
+ has been fixed to complete it to "git cmd path\ name" just like
+ Bash completion does.
-* cb/t5004-empty-tar-archive-fix (2018-12-03) 1 commit
- (merged to 'next' on 2019-01-04 at 39f4cf94ce)
- + t5004: avoid using tar for empty packages
+* ds/commit-graph-assert-missing-parents (2019-01-02) 1 commit
+ (merged to 'next' on 2019-01-08 at d141f063e0)
+ + commit-graph: writing missing parents is a BUG
- BSD port update.
+ Tightening error checking in commit-graph writer.
-* cb/test-lint-cp-a (2018-12-03) 1 commit
- (merged to 'next' on 2019-01-04 at d13e6cfcb0)
- + tests: add lint for non portable cp -a
+* ds/gc-doc-typofix (2019-01-08) 1 commit
+ (merged to 'next' on 2019-01-08 at f21ffc83e0)
+ + git-gc.txt: fix typo about gc.writeCommitGraph
- BSD port update.
+ Typofix.
-* do/gitweb-strict-export-conf-doc (2018-12-09) 1 commit
- (merged to 'next' on 2019-01-04 at 5249c9386a)
- + docs: fix $strict_export text in gitweb.conf.txt
+* ed/simplify-setup-git-dir (2019-01-03) 1 commit
+ (merged to 'next' on 2019-01-08 at 8722c7c2ef)
+ + Simplify handling of setup_git_directory_gently() failure cases.
- Doc update.
+ Code simplification.
-* en/directory-renames-nothanks-doc-update (2018-12-09) 1 commit
- (merged to 'next' on 2019-01-04 at cb7134b54c)
- + git-rebase.txt: update note about directory rename detection and am
+* en/show-ref-doc-fix (2019-01-10) 1 commit
+ (merged to 'next' on 2019-01-14 at f875bfb9a4)
+ + git-show-ref.txt: fix order of flags
Doc update.
-* fd/gitweb-snapshot-conf-doc-fix (2018-12-09) 1 commit
- (merged to 'next' on 2019-01-04 at 7ba71fca17)
- + docs/gitweb.conf: config variable typo
+* es/doc-worktree-guessremote-config (2018-12-28) 1 commit
+ (merged to 'next' on 2019-01-08 at f1dc5e39a6)
+ + doc/config: do a better job of introducing 'worktree.guessRemote'
- Doc update.
+ Doc clarification.
-* hb/t0061-dot-in-path-fix (2018-12-03) 1 commit
- (merged to 'next' on 2019-01-04 at 789f990c4e)
- + t0061: do not fail test if '.' is part of $PATH
+* ew/ban-strncat (2019-01-02) 1 commit
+ (merged to 'next' on 2019-01-08 at 3bba2ae2bb)
+ + banned.h: mark strncat() as banned
- Test update.
+ The "strncat()" function is now among the banned functions.
-* hn/highlight-sideband-keywords (2018-12-04) 1 commit
- (merged to 'next' on 2019-01-04 at b039601533)
- + sideband: color lines with keyword only
+* jk/dev-build-format-security (2019-01-07) 1 commit
+ (merged to 'next' on 2019-01-08 at 3761ab7026)
+ + config.mak.dev: add -Wall, primarily for -Wformat, to help autoconf users
- Lines that begin with a certain keyword that come over the wire, as
- well as lines that consist only of one of these keywords, ought to
- be painted in color for easier eyeballing, but the latter was
- broken ever since the feature was introduced in 2.19, which has
- been corrected.
+ Earlier we added "-Wformat-security" to developer builds, assuming
+ that "-Wall" (which includes "-Wformat" which in turn is required
+ to use "-Wformat-security") is always in effect. This is not true
+ when config.mak.autogen is in use, unfortunately. This has been
+ fixed by unconditionally adding "-Wall" to developer builds.
-* km/rebase-doc-typofix (2018-12-10) 1 commit
- (merged to 'next' on 2019-01-04 at c89f646e8f)
- + rebase docs: drop stray word in merge command description
+* jn/stripspace-wo-repository (2018-12-26) 1 commit
+ (merged to 'next' on 2019-01-08 at 81815821c9)
+ + stripspace: allow -s/-c outside git repository
- Doc update.
+ "git stripspace" should be usable outside a git repository, but
+ under the "-s" or "-c" mode, it didn't.
-* md/exclude-promisor-objects-fix-cleanup (2018-12-06) 1 commit
- (merged to 'next' on 2019-01-04 at c15362832d)
- + revision.c: put promisor option in specialized struct
+* js/gc-repack-close-before-remove (2019-01-11) 1 commit
+ (merged to 'next' on 2019-01-14 at 9daedfee40)
+ + gc/repack: release packs when needed
- Code clean-up.
+ "git gc" and "git repack" did not close the open packfiles that
+ they found unneeded before removing them, which didn't work on a
+ platform incapable of removing an open file. This has been
+ corrected.
-* md/list-lazy-objects-fix (2018-12-06) 1 commit
- (merged to 'next' on 2019-01-04 at 93bd38fff9)
- + list-objects.c: don't segfault for missing cmdline objects
+* la/quiltimport-keep-non-patch (2019-01-07) 1 commit
+ (merged to 'next' on 2019-01-08 at 37cb490792)
+ + git-quiltimport: add --keep-non-patch option
- "git rev-list --exclude-promisor-objects" had to take an object
- that does not exist locally (and is lazily available) from the
- command line without barfing, but the code dereferenced NULL.
+ "git quiltimport" learned "--keep-non-patch" option.
-* nd/attr-pathspec-in-tree-walk (2018-11-19) 5 commits
- (merged to 'next' on 2019-01-04 at 6a07e5b905)
- + tree-walk: support :(attr) matching
- + dir.c: move, rename and export match_attrs()
- + pathspec.h: clean up "extern" in function declarations
- + tree-walk.c: make tree_entry_interesting() take an index
- + tree.c: make read_tree*() take 'struct repository *'
+* ma/asciidoctor (2018-12-26) 3 commits
+ (merged to 'next' on 2019-01-08 at 3cfd4ad6cb)
+ + git-status.txt: render tables correctly under Asciidoctor
+ + Documentation: do not nest open blocks
+ + git-column.txt: fix section header
- The traversal over tree objects has learned to honor
- ":(attr:label)" pathspec match, which has been implemented only for
- enumerating paths on the filesystem.
+ Some of the documentation pages formatted incorrectly with
+ Asciidoctor, which have been fixed.
-* nd/checkout-noisy (2018-11-20) 2 commits
- (merged to 'next' on 2019-01-04 at 480172d3d7)
- + t0027: squelch checkout path run outside test_expect_* block
- + checkout: print something when checking out paths
+* mm/multimail-1.5 (2019-01-07) 1 commit
+ (merged to 'next' on 2019-01-08 at 8c872af48e)
+ + git-multimail: update to release 1.5.0
- "git checkout [<tree-ish>] path..." learned to report the number of
- paths that have been checked out of the index or the tree-ish,
- which gives it the same degree of noisy-ness as the case in which
- the command checks out a branch.
+ Update "git multimail" from the upstream.
-* nd/indentation-fix (2018-12-09) 1 commit
- (merged to 'next' on 2019-01-04 at 738b17d365)
- + Indent code with TABs
+* nd/style-opening-brace (2018-12-10) 1 commit
+ (merged to 'next' on 2019-01-08 at 80de026e14)
+ + style: the opening '{' of a function is in a separate line
- Code cleanup.
+ Code clean-up.
-* sb/diff-color-moved-config-option-fixup (2018-11-14) 1 commit
- (merged to 'next' on 2019-01-04 at 46de5f42d1)
- + diff: align move detection error handling with other options
+* nd/worktree-remove-with-uninitialized-submodules (2019-01-07) 1 commit
+ (merged to 'next' on 2019-01-08 at e19cfe8741)
+ + worktree: allow to (re)move worktrees with uninitialized submodules
- Minor inconsistency fix.
+ "git worktree remove" and "git worktree move" refused to work when
+ there is a submodule involved. This has been loosened to ignore
+ uninitialized submodules.
-* tb/log-G-binary (2018-12-26) 1 commit
- (merged to 'next' on 2019-01-04 at a713ef389c)
- + log -G: ignore binary files
+* ot/ref-filter-object-info (2019-01-10) 7 commits
+ (merged to 'next' on 2019-01-10 at 9e740568ce)
+ + ref-filter: give uintmax_t to format with %PRIuMAX
+ (merged to 'next' on 2019-01-08 at 0a4d4ed36a)
+ + ref-filter: add docs for new options
+ + ref-filter: add tests for deltabase
+ + ref-filter: add deltabase option
+ + ref-filter: add tests for objectsize:disk
+ + ref-filter: add check for negative file size
+ + ref-filter: add objectsize:disk option
- "git log -G<regex>" looked for a hunk in the "git log -p" patch
- output that contained a string that matches the given pattern.
- Optimize this code to ignore binary files, which by default will
- not show any hunk that would match any pattern (unless textconv or
- the --text option is in effect, that is).
+ The "--format=<placeholder>" option of for-each-ref, branch and tag
+ learned to show a few more traits of objects that can be learned by
+ the object_info API.
-* tb/use-common-win32-pathfuncs-on-cygwin (2018-12-26) 1 commit
- (merged to 'next' on 2019-01-04 at c3b2b1f3c3)
- + git clone <url> C:\cygwin\home\USER\repo' is working (again)
+* po/git-p4-wo-login (2019-01-07) 1 commit
+ (merged to 'next' on 2019-01-08 at a7cc58d6b9)
+ + git-p4: fix problem when p4 login is not necessary
- Cygwin update.
+ "git p4" update.
---------------------------------------------------
-[New Topics]
-* ds/gc-doc-typofix (2019-01-08) 1 commit
- (merged to 'next' on 2019-01-08 at f21ffc83e0)
- + git-gc.txt: fix typo about gc.writeCommitGraph
+* rb/hpe (2019-01-03) 5 commits
+ (merged to 'next' on 2019-01-08 at 52d6995399)
+ + compat/regex/regcomp.c: define intptr_t and uintptr_t on NonStop
+ + git-compat-util.h: add FLOSS headers for HPE NonStop
+ + config.mak.uname: support for modern HPE NonStop config.
+ + transport-helper: drop read/write errno checks
+ + transport-helper: use xread instead of read
- Typofix.
+ Portability updates for the HPE NonStop platform.
- Will merge to 'master'.
+* rs/loose-object-cache-perffix (2019-01-08) 4 commits
+ (merged to 'next' on 2019-01-08 at 36e355e099)
+ + object-store: retire odb_load_loose_cache()
+ + object-store: use one oid_array per subdirectory for loose cache
+ + object-store: factor out odb_clear_loose_cache()
+ + object-store: factor out odb_loose_cache()
+ (this branch is used by jk/loose-object-cache-oid.)
-* sc/pack-redundant (2019-01-14) 5 commits
- - pack-redundant: consistent sort method
- - pack-redundant: rename pack_list.all_objects
- - pack-redundant: remove unused functions
- - pack-redundant: new algorithm to find min packs
- - t5323: test cases for git-pack-redundant
+ The loose object cache used to optimize existence look-up has been
+ updated.
- Update the implementation of pack-redundant for performance in a
- repository with many packfiles.
- Comments?
+* rs/sha1-file-close-mapped-file-on-error (2019-01-07) 1 commit
+ (merged to 'next' on 2019-01-08 at 5841cbc153)
+ + sha1-file: close fd of empty file in map_sha1_file_1()
+ Code clean-up.
-* pw/diff-color-moved-ws-fix (2019-01-10) 9 commits
- - diff --color-moved-ws: handle blank lines
- - diff --color-moved-ws: modify allow-indentation-change
- - diff --color-moved-ws: optimize allow-indentation-change
- - diff --color-moved=zebra: be stricter with color alternation
- - diff --color-moved-ws: fix false positives
- - diff --color-moved-ws: demonstrate false positives
- - diff: allow --no-color-moved-ws
- - Use "whitespace" consistently
- - diff: document --no-color-moved
- "git diff --color-moved-ws" updates.
+* sb/submodule-fetchjobs-default-to-one (2018-12-14) 1 commit
+ (merged to 'next' on 2019-01-08 at 97a522ef5e)
+ + submodule update: run at most one fetch job unless otherwise set
- Will merge to 'next'.
+ "git submodule update" ought to use a single job unless asked, but
+ by mistake used multiple jobs, which has been fixed.
-* en/show-ref-doc-fix (2019-01-10) 1 commit
- (merged to 'next' on 2019-01-14 at f875bfb9a4)
- + git-show-ref.txt: fix order of flags
+* sb/submodule-unset-core-worktree-when-worktree-is-lost (2018-12-26) 4 commits
+ (merged to 'next' on 2019-01-08 at 38f3175a2b)
+ + submodule deinit: unset core.worktree
+ + submodule--helper: fix BUG message in ensure_core_worktree
+ + submodule: unset core.worktree if no working tree is present
+ + submodule update: add regression test with old style setups
- Doc update.
+ The core.worktree setting in a submodule repository should not be
+ pointing at a directory when the submodule loses its working tree
+ (e.g. getting deinit'ed), but the code did not properly maintain
+ this invariant.
- Will merge to 'master'.
+* sg/stress-test (2019-01-07) 8 commits
+ (merged to 'next' on 2019-01-08 at 2a65cea5f9)
+ + test-lib: add the '--stress' option to run a test repeatedly under load
+ + test-lib-functions: introduce the 'test_set_port' helper function
+ + test-lib: set $TRASH_DIRECTORY earlier
+ + test-lib: consolidate naming of test-results paths
+ + test-lib: parse command line options earlier
+ + test-lib: parse options in a for loop to keep $@ intact
+ + test-lib: extract Bash version check for '-x' tracing
+ + test-lib: translate SIGTERM and SIGHUP to an exit
+ (this branch uses sg/test-bash-version-fix.)
-* it/log-format-source (2019-01-11) 1 commit
- - log: add %S option (like --source) to log --format
+ Flaky tests can now be repeatedly run under load with the
+ "--stress" option.
- Custom userformat "log --format" learned %S atom that stands for
- the tip the traversal reached the commit from, i.e. --source.
- Will merge to 'next'.
+* sg/test-bash-version-fix (2019-01-03) 2 commits
+ (merged to 'next' on 2019-01-08 at f83a0628a0)
+ + Merge branch 'sg/test-bash-version-fix'
+ + test-lib: check Bash version for '-x' without using shell arrays
+ (this branch is used by sg/stress-test.)
+ The test suite tried to see if it is run under bash, but the check
+ itself failed under some other implementations of shell (notably
+ under NetBSD). This has been corrected.
-* js/filter-options-should-use-plain-int (2019-01-08) 1 commit
- - filter-options: expand scaled numbers
- Update the protocol message specification to allow only the limited
- use of scaled quantities. This is ensure potential compatibility
- issues will not go out of hand.
+* so/cherry-pick-always-allow-m1 (2019-01-07) 4 commits
+ (merged to 'next' on 2019-01-08 at 2b790fec25)
+ + t3506: validate '-m 1 -ff' is now accepted for non-merge commits
+ + t3502: validate '-m 1' argument is now accepted for non-merge commits
+ + cherry-pick: do not error on non-merge commits when '-m 1' is specified
+ + t3510: stop using '-m 1' to force failure mid-sequence of cherry-picks
- Will merge to 'next'.
+ "git cherry-pick -m1" was forbidden when picking a non-merge
+ commit, even though there _is_ parent number 1 for such a commit.
+ This was done to avoid mistakes back when "cherry-pick" was about
+ picking a single commit, but is no longer useful with "cherry-pick"
+ that can pick a range of commits. Now the "-m$num" option is
+ allowed when picking any commit, as long as $num names an existing
+ parent of the commit.
+ Technically this is a backward incompatible change; hopefully
+ nobody is relying on the error-checking behaviour.
-* js/gc-repack-close-before-remove (2019-01-11) 1 commit
- (merged to 'next' on 2019-01-14 at 9daedfee40)
- + gc/repack: release packs when needed
- "git gc" and "git repack" did not close the open packfiles that
- they found unneeded before removing them, which didn't work on a
- platform incapable of removing an open file. This has been
- corrected.
+* tg/t5570-drop-racy-test (2019-01-07) 2 commits
+ (merged to 'next' on 2019-01-08 at 9fc753bbdc)
+ + Revert "t/lib-git-daemon: record daemon log"
+ + t5570: drop racy test
- Will merge to 'master'.
+ An inherently racy test that caused intermittent failures has been
+ removed.
+--------------------------------------------------
+[New Topics]
-* jt/upload-pack-deepen-relative-proto-v2 (2019-01-10) 2 commits
- - upload-pack: teach deepen-relative in protocol v2
- - fetch-pack: do not take shallow lock unnecessarily
+* ab/commit-graph-write-optim (2019-01-17) 1 commit
+ - commit-graph write: use pack order when finding commits
+ (this branch uses ab/commit-graph-write-progress.)
- "git fetch --deepen=<more>" has been corrected to work over v2
- protocol.
+ The codepath to write out commit-graph has been optimized by
+ following the usual pattern of visiting objects in in-pack order.
- Will merge to 'next'.
+ This is taken hostage of the other topic; it may be slightly better
+ if the dependency were the other way around, to allow this to
+ graduate faster without waiting for the other.
+ Needs sign-off.
-* nd/config-move-to (2019-01-14) 7 commits
- - config.h: fix hdr-check warnings
- - config: add --move-to
- - config: factor out set_config_source_file()
- - config: use OPT_FILENAME()
- - config.c: add repo_config_set_worktree_gently()
- - worktree.c: add get_worktree_config()
- - config.c: avoid git_path() in do_git_config_sequence()
- Needs review.
+* ab/commit-graph-write-progress (2019-01-17) 9 commits
+ - commit-graph write: emit a percentage for all progress
+ - commit-graph write: add itermediate progress
+ - commit-graph write: remove empty line for readability
+ - commit-graph write: add more descriptive progress output
+ - commit-graph write: show progress for object search
+ - commit-graph write: more descriptive "writing out" output
+ - commit-graph write: add "Writing out" progress output
+ - commit-graph: don't call write_graph_chunk_large_edges() unnecessarily
+ - commit-graph: rename 'num_extra_edges' variable to 'num_large_edges'
+ (this branch is used by ab/commit-graph-write-optim.)
+ The codepath to show progress meter while writing out commit-graph
+ file has been improved.
-* sg/travis-specific-cc (2019-01-10) 4 commits
- - travis-ci: build with the right compiler
- - travis-ci: switch to Xcode 10.1 macOS image
- - travis-ci: don't be '--quiet' when running the tests
- - .gitignore: ignore external debug symbols from GCC on macOS
+ Proposed updates for the bottom two have been raised.
+ cf. <20190118170549.30403-1-szeder.dev@gmail.com>
- The travis CI scripts have been corrected to build Git with the
- compiler(s) of our choice.
- Will likely to break linux32 build due to outdated code in
- compat/obstack.
+* cc/test-ref-store-typofix (2019-01-17) 1 commit
+ - helper/test-ref-store: fix "new-sha1" vs "old-sha1" typo
+ An obvious typo in an assersion error message has been fixed.
-* sg/obstack-cast-function-type-fix (2019-01-14) 1 commit
- - compat/obstack: fix -Wcast-function-type warnings
+ Will merge to 'next'.
- The compat/obstack code had casts that -Wcast-function-type
- compilation option found questionable.
+
+* jk/add-ignore-errors-bit-assignment-fix (2019-01-17) 1 commit
+ - add: use separate ADD_CACHE_RENORMALIZE flag
+
+ "git add --ignore-errors" did not work as advertised and instead
+ worked as an unintended synonym for "git add --renormalize", which
+ has been fixed.
Will merge to 'next'.
-* cc/fetch-error-message-fix (2019-01-14) 1 commit
- (merged to 'next' on 2019-01-14 at 81078f86c0)
- + fetch: fix extensions.partialclone name in error message
+* js/mingw-unc-path-w-backslashes (2019-01-18) 2 commits
+ - mingw: special-case arguments to `sh`
+ - mingw (t5580): document bug when cloning from backslashed UNC paths
- Error message fix.
+ In Git for Windows, "git clone \\server\share\path" etc. that uses
+ UNC paths from command line had bad interaction with its shell
+ emulation.
- Will merge to 'master'.
+ Will merge to 'next'.
-* cc/parial-clone-doc-typofix (2019-01-14) 1 commit
- (merged to 'next' on 2019-01-14 at 0395de767e)
- + partial-clone: add missing 'is' in doc
+* js/t6042-timing-fix (2019-01-17) 1 commit
+ - t6042: work around speed optimization on Windows
- Doc fix.
+ Test update.
- Will merge to 'master'.
+ Will merge to 'next'.
-* jk/remote-insteadof-cleanup (2019-01-11) 1 commit
- - remote: check config validity before creating rewrite struct
+* jt/namespaced-ls-refs-fix (2019-01-18) 1 commit
+ - ls-refs: filter refs using namespace-stripped name
- Code clean-up.
+ Fix namespace support in protocol v2.
Will merge to 'next'.
-* jk/save-getenv-result (2019-01-11) 6 commits
- - builtin_diff(): read $GIT_DIFF_OPTS closer to use
- - merge-recursive: copy $GITHEAD strings
- - init: make a copy of $GIT_DIR string
- - config: make a copy of $GIT_CONFIG string
- - commit: copy saved getenv() result
- - get_super_prefix(): copy getenv() result
+* bp/checkout-new-branch-optim (2019-01-18) 2 commits
+ - checkout: fix regression in checkout -b on intitial checkout
+ - checkout: add test to demonstrate regression with checkout -b on initial commit
- There were many places the code relied on the string returned from
- getenv() to be non-volatile, which is not true, that have been
- corrected.
+ "git checkout -b <new> [HEAD]" to create a new branch from the
+ current commit and check it out ought to be a no-op in the index
+ and the working tree in normal cases, but there are corner cases
+ that does require updates to the index and the working tree.
+ Running it immediately after "git clone --no-checkout" is one of
+ these cases that an earlier optimization kicked in incorrectly,
+ which has been fixed.
- Will merge to 'next'.
+ Seems to break an existing test...
-* jt/fetch-v2-sideband (2019-01-15) 5 commits
- - tests: define GIT_TEST_SIDEBAND_ALL
- - {fetch,upload}-pack: sideband v2 fetch response
- - sideband: reverse its dependency on pkt-line
- - pkt-line: introduce struct packet_writer
- - Merge branch 'ms/packet-err-check' into jt/fetch-v2-sideband
- (this branch uses ms/packet-err-check.)
+* br/blame-ignore (2019-01-18) 3 commits
+ - blame: add a config option to mark ignored lines
+ - blame: add the ability to ignore commits and their changes
+ - Move init_skiplist() outside of fsck
- "git fetch" and "git upload-pack" learned to send all exchange over
- the sideband channel while talking the v2 protocol.
+ "git blame" learned to "ignore" commits in the history, whose
+ effects (as well as their presence) get ignored.
+
+
+* js/abspath-part-inside-repo (2019-01-18) 1 commit
+ - abspath_part_inside_repo: respect core.ignoreCase
+
+ On a case-insensntive filesystem, we failed to compare the part of
+ the path that is above the worktree directory in an absolute
+ pathname, which has been corrected.
Will merge to 'next'.
-* kg/external-diff-save-env (2019-01-11) 1 commit
- (merged to 'next' on 2019-01-14 at 8281bbd48b)
- + diff: ensure correct lifetime of external_diff_cmd
+* nd/diff-parseopt (2019-01-18) 77 commits
+ - SQUASH???
+ - am: avoid diff_opt_parse()
+ - diff --no-index: use parse_options() instead of diff_opt_parse()
+ - range-diff: use parse_options() instead of diff_opt_parse()
+ - diff.c: allow --no-color-moved-ws
+ - diff.c: convert --color-moved-ws
+ - diff.c: convert --color-moved
+ - diff.c: convert --inter-hunk-context
+ - diff.c: convert --no-prefix
+ - diff.c: convert --line-prefix
+ - diff.c: convert --[src|dst]-prefix
+ - diff.c: convert --[no-]abbrev
+ - diff.c: convert --diff-filter
+ - diff.c: convert --find-object
+ - diff.c: convert -O
+ - diff.c: convert --pickaxe-all|--pickaxe-regex
+ - diff.c: convert -S|-G
+ - diff.c: convert -l
+ - diff.c: convert -z
+ - diff.c: convert --ita-[in]visible-in-index
+ - diff.c: convert --ws-error-highlight
+ - diff.c: convert --submodule
+ - diff.c: convert --ignore-submodules
+ - diff.c: convert --textconv
+ - diff.c: convert --ext-diff
+ - diff.c: convert --quiet
+ - diff.c: convert --exit-code
+ - diff.c: convert --color-words
+ - diff.c: convert --word-diff-regex
+ - diff.c: convert --word-diff
+ - diff.c: convert --[no-]color
+ - diff.c: convert --[no-]follow
+ - diff.c: convert -R
+ - diff.c: convert -a|--text
+ - diff.c: convert --full-index
+ - diff.c: convert --binary
+ - diff.c: convert --anchored
+ - diff.c: convert --diff-algorithm
+ - diff.c: convert --histogram
+ - diff.c: convert --patience
+ - diff.c: convert --[no-]indent-heuristic
+ - diff.c: convert --ignore-some-changes
+ - diff.c: convert --[no-]minimal
+ - diff.c: convert --relative
+ - diff.c: convert --no-renames|--[no--rename-empty
+ - diff.c: convert --find-copies-harder
+ - diff.c: convert -C|--find-copies
+ - diff.c: convert -D|--irreversible-delete
+ - diff.c: convert -M|--find-renames
+ - diff.c: convert -B|--break-rewrites
+ - diff.c: convert --output-*
+ - diff.c: convert --[no-]compact-summary
+ - diff.c: convert --stat*
+ - diff.c: convert -s|--no-patch
+ - diff.c: convert --name-status
+ - diff.c: convert --name-only
+ - diff.c: convert --patch-with-stat
+ - diff.c: convert --summary
+ - diff.c: convert --check
+ - diff.c: convert --dirstat and friends
+ - diff.c: convert --numstat and --shortstat
+ - diff.c: convert --patch-with-raw
+ - diff.c: convert --raw
+ - diff.c: convert -W|--[no-]function-context
+ - diff.c: convert -U|--unified
+ - diff.c: convert -u|-p|--patch
+ - diff.c: prepare to use parse_options() for parsing
+ - diff.h: avoid bit fields in struct diff_flags
+ - diff.h: keep forward struct declarations sorted
+ - parse-options: allow ll_callback with OPTION_CALLBACK
+ - parse-options: avoid magic return codes
+ - parse-options: stop abusing 'callback' for lowlevel callbacks
+ - parse-options: add OPT_BITOP()
+ - parse-options: disable option abbreviation with PARSE_OPT_KEEP_UNKNOWN
+ - parse-options: allow keep-unknown + stop-at-non-opt combination
+ - parse-options: add one-shot mode
+ - parse-options.h: remove extern on function prototypes
+
+ The diff machinery, one of the oldest parts of the system, which
+ long predates the parse-options API, uses fairly long and complex
+ handcrafted option parser. This has been rewritten to use the
+ parse-options API.
- The code to drive GIT_EXTERNAL_DIFF command relied on the string
- returned from getenv() to be non-volatile, which is not true, that
- has been corrected.
+--------------------------------------------------
+[Cooking]
- Will merge to 'master'.
+* sc/pack-redundant (2019-01-14) 5 commits
+ - pack-redundant: consistent sort method
+ - pack-redundant: rename pack_list.all_objects
+ - pack-redundant: remove unused functions
+ - pack-redundant: new algorithm to find min packs
+ - t5323: test cases for git-pack-redundant
+ Update the implementation of pack-redundant for performance in a
+ repository with many packfiles.
-* ld/git-p4-shelve-update-fix (2019-01-14) 2 commits
- - git-p4: handle update of moved files when updating a shelve
- - git-p4: add failing test for shelved CL update involving move
+ Comments?
- "git p4" failed to update a shelved change when there were moved
- files, which has been corrected.
- Will merge to 'next'.
+* pw/diff-color-moved-ws-fix (2019-01-10) 9 commits
+ (merged to 'next' on 2019-01-18 at e19713c82f)
+ + diff --color-moved-ws: handle blank lines
+ + diff --color-moved-ws: modify allow-indentation-change
+ + diff --color-moved-ws: optimize allow-indentation-change
+ + diff --color-moved=zebra: be stricter with color alternation
+ + diff --color-moved-ws: fix false positives
+ + diff --color-moved-ws: demonstrate false positives
+ + diff: allow --no-color-moved-ws
+ + Use "whitespace" consistently
+ + diff: document --no-color-moved
+ "git diff --color-moved-ws" updates.
-* ma/clear-repository-format (2019-01-14) 3 commits
- - setup: add `clear_repository_format()`
- - setup: do not use invalid `repository_format`
- - setup: free old value before setting `work_tree`
+ Will merge to 'master'.
- The setup code has been cleaned up to avoid leaks around the
- repository_format structure.
- cf. <20190115193112.GE4886@sigill.intra.peff.net>
+* it/log-format-source (2019-01-11) 1 commit
+ (merged to 'next' on 2019-01-18 at d660044e93)
+ + log: add %S option (like --source) to log --format
+ Custom userformat "log --format" learned %S atom that stands for
+ the tip the traversal reached the commit from, i.e. --source.
-* nd/the-index-final (2019-01-14) 11 commits
- - cache.h: flip NO_THE_INDEX_COMPATIBILITY_MACROS switch
- - read-cache.c: remove the_* from index_has_changes()
- - merge-recursive.c: remove implicit dependency on the_repository
- - merge-recursive.c: remove implicit dependency on the_index
- - sha1-name.c: remove implicit dependency on the_index
- - read-cache.c: replace update_index_if_able with repo_&
- - read-cache.c: kill read_index()
- - checkout: avoid the_index when possible
- - repository.c: replace hold_locked_index() with repo_hold_locked_index()
- - notes-utils.c: remove the_repository references
- - grep: use grep_opt->repo instead of explict repo argument
+ Will merge to 'master'.
- The assumption to work on the single "in-core index" instance has
- been reduced from the library-ish part of the codebase.
- This obviously has fallouts with a few topics in flight, but
- otherwise it seemed to be in good enough shape.
+* js/filter-options-should-use-plain-int (2019-01-15) 1 commit
+ (merged to 'next' on 2019-01-18 at 6714547e6d)
+ + filter-options: expand scaled numbers
+ (this branch uses md/list-objects-filter-by-depth and sb/more-repo-in-api; is tangled with jt/get-reference-with-commit-graph.)
+ Update the protocol message specification to allow only the limited
+ use of scaled quantities. This is ensure potential compatibility
+ issues will not go out of hand.
-* bc/tree-walk-oid (2019-01-15) 5 commits
- - cache: make oidcpy always copy GIT_MAX_RAWSZ bytes
- - tree-walk: store object_id in a separate member
- - match-trees: use hashcpy to splice trees
- - match-trees: compute buffer offset correctly when splicing
- - tree-walk: copy object ID before use
+ Will merge to 'master'.
- The code to walk tree objects has been taught that we may be
- working with object names that are not computed with SHA-1.
- Will merge to 'next'.
+* jt/upload-pack-deepen-relative-proto-v2 (2019-01-10) 2 commits
+ (merged to 'next' on 2019-01-18 at 1483ad21db)
+ + upload-pack: teach deepen-relative in protocol v2
+ + fetch-pack: do not take shallow lock unnecessarily
+ "git fetch --deepen=<more>" has been corrected to work over v2
+ protocol.
-* js/add-e-clear-patch-before-stating (2019-01-15) 1 commit
- - add --edit: truncate the patch file
+ Will merge to 'master'.
- "git add -e" got confused when the change it wants to let the user
- edit is smaller than the previous change that was left over in a
- temporary file.
- Will merge to 'next'.
+* nd/config-move-to (2019-01-14) 7 commits
+ - config.h: fix hdr-check warnings
+ - config: add --move-to
+ - config: factor out set_config_source_file()
+ - config: use OPT_FILENAME()
+ - config.c: add repo_config_set_worktree_gently()
+ - worktree.c: add get_worktree_config()
+ - config.c: avoid git_path() in do_git_config_sequence()
+ Needs review.
-* js/commit-graph-read-overflow-fix (2019-01-15) 3 commits
- - Makefile: correct example fuzz build
- - commit-graph: fix buffer read-overflow
- - commit-graph, fuzz: add fuzzer for commit-graph
- The code to read the commit-graph file was not prepared to see a
- corrupt size field in the file, and ended up reading beyond the end
- of the buffer.
+* sg/travis-specific-cc (2019-01-17) 4 commits
+ - travis-ci: build with the right compiler
+ - travis-ci: switch to Xcode 10.1 macOS image
+ - travis-ci: don't be '--quiet' when running the tests
+ - .gitignore: ignore external debug symbols from GCC on macOS
+
+ The travis CI scripts have been corrected to build Git with the
+ compiler(s) of our choice.
Will merge to 'next'.
---------------------------------------------------
-[Cooking]
-* jt/fetch-pack-v2 (2019-01-10) 1 commit
- - fetch-pack: support protocol version 2
+* sg/obstack-cast-function-type-fix (2019-01-17) 1 commit
+ - compat/obstack: fix -Wcast-function-type warnings
- "git fetch-pack" now can talk the version 2 protocol.
+ The compat/obstack code had casts that -Wcast-function-type
+ compilation option found questionable.
Will merge to 'next'.
-* jn/stripspace-wo-repository (2018-12-26) 1 commit
- (merged to 'next' on 2019-01-08 at 81815821c9)
- + stripspace: allow -s/-c outside git repository
+* cc/fetch-error-message-fix (2019-01-14) 1 commit
+ (merged to 'next' on 2019-01-14 at 81078f86c0)
+ + fetch: fix extensions.partialclone name in error message
- "git stripspace" should be usable outside a git repository, but
- under the "-s" or "-c" mode, it didn't.
+ Error message fix.
Will merge to 'master'.
-* ma/asciidoctor (2018-12-26) 3 commits
- (merged to 'next' on 2019-01-08 at 3cfd4ad6cb)
- + git-status.txt: render tables correctly under Asciidoctor
- + Documentation: do not nest open blocks
- + git-column.txt: fix section header
+* cc/parial-clone-doc-typofix (2019-01-14) 1 commit
+ (merged to 'next' on 2019-01-14 at 0395de767e)
+ + partial-clone: add missing 'is' in doc
- Some of the documentation pages formatted incorrectly with
- Asciidoctor, which have been fixed.
+ Doc fix.
Will merge to 'master'.
-* nd/worktree-remove-with-uninitialized-submodules (2019-01-07) 1 commit
- (merged to 'next' on 2019-01-08 at e19cfe8741)
- + worktree: allow to (re)move worktrees with uninitialized submodules
+* jk/remote-insteadof-cleanup (2019-01-11) 1 commit
+ (merged to 'next' on 2019-01-18 at 112c93eef3)
+ + remote: check config validity before creating rewrite struct
- "git worktree remove" and "git worktree move" refused to work when
- there is a submodule involved. This has been loosened to ignore
- uninitialized submodules.
+ Code clean-up.
Will merge to 'master'.
-* sb/submodule-unset-core-worktree-when-worktree-is-lost (2018-12-26) 4 commits
- (merged to 'next' on 2019-01-08 at 38f3175a2b)
- + submodule deinit: unset core.worktree
- + submodule--helper: fix BUG message in ensure_core_worktree
- + submodule: unset core.worktree if no working tree is present
- + submodule update: add regression test with old style setups
+* jk/save-getenv-result (2019-01-11) 6 commits
+ (merged to 'next' on 2019-01-18 at 429c77402a)
+ + builtin_diff(): read $GIT_DIFF_OPTS closer to use
+ + merge-recursive: copy $GITHEAD strings
+ + init: make a copy of $GIT_DIR string
+ + config: make a copy of $GIT_CONFIG string
+ + commit: copy saved getenv() result
+ + get_super_prefix(): copy getenv() result
- The core.worktree setting in a submodule repository should not be
- pointing at a directory when the submodule loses its working tree
- (e.g. getting deinit'ed), but the code did not properly maintain
- this invariant.
+ There were many places the code relied on the string returned from
+ getenv() to be non-volatile, which is not true, that have been
+ corrected.
Will merge to 'master'.
-* so/cherry-pick-always-allow-m1 (2019-01-07) 4 commits
- (merged to 'next' on 2019-01-08 at 2b790fec25)
- + t3506: validate '-m 1 -ff' is now accepted for non-merge commits
- + t3502: validate '-m 1' argument is now accepted for non-merge commits
- + cherry-pick: do not error on non-merge commits when '-m 1' is specified
- + t3510: stop using '-m 1' to force failure mid-sequence of cherry-picks
-
- "git cherry-pick -m1" was forbidden when picking a non-merge
- commit, even though there _is_ parent number 1 for such a commit.
- This was done to avoid mistakes back when "cherry-pick" was about
- picking a single commit, but is no longer useful with "cherry-pick"
- that can pick a range of commits. Now the "-m$num" option is
- allowed when picking any commit, as long as $num names an existing
- parent of the commit.
+* jt/fetch-v2-sideband (2019-01-17) 5 commits
+ - tests: define GIT_TEST_SIDEBAND_ALL
+ - {fetch,upload}-pack: sideband v2 fetch response
+ - sideband: reverse its dependency on pkt-line
+ - pkt-line: introduce struct packet_writer
+ - Merge branch 'ms/packet-err-check' into jt/fetch-v2-sideband
+ (this branch uses ms/packet-err-check.)
- Technically this is a backward incompatible change; hopefully
- nobody is relying on the error-checking behaviour.
+ "git fetch" and "git upload-pack" learned to send all exchange over
+ the sideband channel while talking the v2 protocol.
- Will merge to 'master'.
+ Will merge to 'next'.
-* cy/completion-typofix (2019-01-03) 1 commit
- (merged to 'next' on 2019-01-08 at 6c6f01a07d)
- + completion: fix typo in git-completion.bash
+* kg/external-diff-save-env (2019-01-11) 1 commit
+ (merged to 'next' on 2019-01-14 at 8281bbd48b)
+ + diff: ensure correct lifetime of external_diff_cmd
- Typofix.
+ The code to drive GIT_EXTERNAL_DIFF command relied on the string
+ returned from getenv() to be non-volatile, which is not true, that
+ has been corrected.
Will merge to 'master'.
-* cy/zsh-completion-SP-in-path (2019-01-03) 2 commits
- (merged to 'next' on 2019-01-08 at fee27de30b)
- + completion: treat results of git ls-tree as file paths
- + zsh: complete unquoted paths with spaces correctly
+* ld/git-p4-shelve-update-fix (2019-01-18) 2 commits
+ - git-p4: handle update of moved/copied files when updating a shelve
+ - git-p4: add failing test for shelved CL update involving move/copy
- With zsh, "git cmd path<TAB>" was completed to "git cmd path name"
- when the completed path has a special character like SP in it,
- without any attempt to keep "path name" a single filename. This
- has been fixed to complete it to "git cmd path\ name" just like
- Bash completion does.
+ "git p4" failed to update a shelved change when there were moved
+ files, which has been corrected.
- Will merge to 'master'.
+ Will merge to 'next'.
-* ds/commit-graph-assert-missing-parents (2019-01-02) 1 commit
- (merged to 'next' on 2019-01-08 at d141f063e0)
- + commit-graph: writing missing parents is a BUG
+* ma/clear-repository-format (2019-01-14) 3 commits
+ - setup: add `clear_repository_format()`
+ - setup: do not use invalid `repository_format`
+ - setup: free old value before setting `work_tree`
- Tightening error checking in commit-graph writer.
+ The setup code has been cleaned up to avoid leaks around the
+ repository_format structure.
- Will merge to 'master'.
+ cf. <20190115193112.GE4886@sigill.intra.peff.net>
-* ed/simplify-setup-git-dir (2019-01-03) 1 commit
- (merged to 'next' on 2019-01-08 at 8722c7c2ef)
- + Simplify handling of setup_git_directory_gently() failure cases.
+* nd/the-index-final (2019-01-14) 11 commits
+ - cache.h: flip NO_THE_INDEX_COMPATIBILITY_MACROS switch
+ - read-cache.c: remove the_* from index_has_changes()
+ - merge-recursive.c: remove implicit dependency on the_repository
+ - merge-recursive.c: remove implicit dependency on the_index
+ - sha1-name.c: remove implicit dependency on the_index
+ - read-cache.c: replace update_index_if_able with repo_&
+ - read-cache.c: kill read_index()
+ - checkout: avoid the_index when possible
+ - repository.c: replace hold_locked_index() with repo_hold_locked_index()
+ - notes-utils.c: remove the_repository references
+ - grep: use grep_opt->repo instead of explict repo argument
- Code simplification.
+ The assumption to work on the single "in-core index" instance has
+ been reduced from the library-ish part of the codebase.
- Will merge to 'master'.
+ This obviously has fallouts with a few topics in flight, but
+ otherwise it seemed to be in good enough shape.
-* es/doc-worktree-guessremote-config (2018-12-28) 1 commit
- (merged to 'next' on 2019-01-08 at f1dc5e39a6)
- + doc/config: do a better job of introducing 'worktree.guessRemote'
+* bc/tree-walk-oid (2019-01-15) 5 commits
+ (merged to 'next' on 2019-01-18 at 60c38b9e4a)
+ + cache: make oidcpy always copy GIT_MAX_RAWSZ bytes
+ + tree-walk: store object_id in a separate member
+ + match-trees: use hashcpy to splice trees
+ + match-trees: compute buffer offset correctly when splicing
+ + tree-walk: copy object ID before use
- Doc clarification.
+ The code to walk tree objects has been taught that we may be
+ working with object names that are not computed with SHA-1.
Will merge to 'master'.
-* ew/ban-strncat (2019-01-02) 1 commit
- (merged to 'next' on 2019-01-08 at 3bba2ae2bb)
- + banned.h: mark strncat() as banned
+* js/add-e-clear-patch-before-stating (2019-01-15) 1 commit
+ (merged to 'next' on 2019-01-18 at 9ea7fc4b49)
+ + add --edit: truncate the patch file
- The "strncat()" function is now among the banned functions.
+ "git add -e" got confused when the change it wants to let the user
+ edit is smaller than the previous change that was left over in a
+ temporary file.
Will merge to 'master'.
-* jk/dev-build-format-security (2019-01-07) 1 commit
- (merged to 'next' on 2019-01-08 at 3761ab7026)
- + config.mak.dev: add -Wall, primarily for -Wformat, to help autoconf users
+* jt/fetch-pack-v2 (2019-01-10) 1 commit
+ (merged to 'next' on 2019-01-18 at 75ceb55ff8)
+ + fetch-pack: support protocol version 2
- Earlier we added "-Wformat-security" to developer builds, assuming
- that "-Wall" (which includes "-Wformat" which in turn is required
- to use "-Wformat-security") is always in effect. This is not true
- when config.mak.autogen is in use, unfortunately. This has been
- fixed by unconditionally adding "-Wall" to developer builds.
+ "git fetch-pack" now can talk the version 2 protocol.
Will merge to 'master'.
cf. <xmqq1s5uk6qh.fsf@gitster-ct.c.googlers.com>
-* js/rebase-am (2019-01-03) 4 commits
+* js/rebase-am (2019-01-18) 4 commits
- built-in rebase: call `git am` directly
- rebase: teach `reset_head()` to optionally skip the worktree
- rebase: avoid double reflog entry when switching branches
* os/rebase-runs-post-checkout-hook (2019-01-02) 2 commits
- - rebase: run post-checkout hook on checkout
- - t5403: simplify by using a single repository
+ (merged to 'next' on 2019-01-18 at a03d536318)
+ + rebase: run post-checkout hook on checkout
+ + t5403: simplify by using a single repository
"git rebase" internally runs "checkout" to switch between branches,
and the command used to call the post-checkout hook, but the
reimplementation stopped doing so, which is getting fixed.
- Will merge to 'next'.
-
-
-* rb/hpe (2019-01-03) 5 commits
- (merged to 'next' on 2019-01-08 at 52d6995399)
- + compat/regex/regcomp.c: define intptr_t and uintptr_t on NonStop
- + git-compat-util.h: add FLOSS headers for HPE NonStop
- + config.mak.uname: support for modern HPE NonStop config.
- + transport-helper: drop read/write errno checks
- + transport-helper: use xread instead of read
-
- Portability updates for the HPE NonStop platform.
-
- Will merge to 'master'.
-
-
-* sg/test-bash-version-fix (2019-01-03) 2 commits
- (merged to 'next' on 2019-01-08 at f83a0628a0)
- + Merge branch 'sg/test-bash-version-fix'
- + test-lib: check Bash version for '-x' without using shell arrays
- (this branch is used by sg/stress-test.)
-
- The test suite tried to see if it is run under bash, but the check
- itself failed under some other implementations of shell (notably
- under NetBSD). This has been corrected.
-
Will merge to 'master'.
* ms/http-no-more-failonerror (2019-01-10) 5 commits
- - test: test GIT_CURL_VERBOSE=1 shows an error
- - remote-curl: unset CURLOPT_FAILONERROR
- - remote-curl: define struct for CURLOPT_WRITEFUNCTION
- - http: enable keep_error for HTTP requests
- - http: support file handles for HTTP_KEEP_ERROR
+ (merged to 'next' on 2019-01-18 at 8938d70b6d)
+ + test: test GIT_CURL_VERBOSE=1 shows an error
+ + remote-curl: unset CURLOPT_FAILONERROR
+ + remote-curl: define struct for CURLOPT_WRITEFUNCTION
+ + http: enable keep_error for HTTP requests
+ + http: support file handles for HTTP_KEEP_ERROR
Debugging help for http transport.
- Will merge to 'next'.
-
-
-* tg/t5570-drop-racy-test (2019-01-07) 2 commits
- (merged to 'next' on 2019-01-08 at 9fc753bbdc)
- + Revert "t/lib-git-daemon: record daemon log"
- + t5570: drop racy test
-
- An inherently racy test that caused intermittent failures has been
- removed.
-
Will merge to 'master'.
* ja/doc-build-l10n (2019-01-07) 1 commit
- - Documentation/Makefile add optional targets for l10n
+ (merged to 'next' on 2019-01-18 at 5dbe5ad3d7)
+ + Documentation/Makefile add optional targets for l10n
Prepare Documentation/Makefile so that manpage localization can
reuse it by overriding and tweaking the list of build products.
- Will merge to 'next'.
+ Will merge to 'master'.
* jk/loose-object-cache-oid (2019-01-08) 11 commits
- http: use struct object_id instead of bare sha1
- update comment references to sha1_object_info()
- sha1-file: fix outdated sha1 comment references
- (this branch uses rs/loose-object-cache-perffix.)
Code clean-up.
which is probably more clear.
-* mm/multimail-1.5 (2019-01-07) 1 commit
- (merged to 'next' on 2019-01-08 at 8c872af48e)
- + git-multimail: update to release 1.5.0
-
- Update "git multimail" from the upstream.
-
- Will merge to 'master'.
-
-
-* po/git-p4-wo-login (2019-01-07) 1 commit
- (merged to 'next' on 2019-01-08 at a7cc58d6b9)
- + git-p4: fix problem when p4 login is not necessary
-
- "git p4" update.
-
- Will merge to 'master'.
-
-
-* rs/loose-object-cache-perffix (2019-01-08) 4 commits
- (merged to 'next' on 2019-01-08 at 36e355e099)
- + object-store: retire odb_load_loose_cache()
- + object-store: use one oid_array per subdirectory for loose cache
- + object-store: factor out odb_clear_loose_cache()
- + object-store: factor out odb_loose_cache()
- (this branch is used by jk/loose-object-cache-oid.)
-
- The loose object cache used to optimize existence look-up has been
- updated.
-
- Will merge to 'master'.
-
-
-* rs/sha1-file-close-mapped-file-on-error (2019-01-07) 1 commit
- (merged to 'next' on 2019-01-08 at 5841cbc153)
- + sha1-file: close fd of empty file in map_sha1_file_1()
-
- Code clean-up.
-
- Will merge to 'master'.
-
-
-* lt/date-human (2019-01-02) 3 commits
- - t0006-date.sh: add `human` date format tests.
+* lt/date-human (2019-01-18) 5 commits
+ - Add `human` date format tests.
+ - Add `human` format to test-tool
- Add 'human' date format documentation
+ - Remove the proposed use of auto as secondary way to specify human
- Add 'human' date format
A new date format "--date=human" that morphs its output depending
Comments?
-* ds/push-sparse-tree-walk (2019-01-14) 7 commits
- - revision.c: fix sparse warnings (sparse algorithm)
+* ds/push-sparse-tree-walk (2019-01-17) 5 commits
- pack-objects: create GIT_TEST_PACK_SPARSE
- pack-objects: create pack.useSparse setting
- revision: implement sparse algorithm
- - pack-objects: add --sparse option
- list-objects: consume sparse tree walk
- revision: add mark_tree_uninteresting_sparse
objects to send, that trades the resulting packfile off to save
traversal cost to favor small pushes.
- May need a further update, including squashing the tip commit to a
- releavant place.
+ Will merge to 'next'.
* js/rebase-i-redo-exec (2018-12-11) 3 commits
- - rebase: introduce a shortcut for --reschedule-failed-exec
- - rebase: add a config option to default to --reschedule-failed-exec
- - rebase: introduce --reschedule-failed-exec
+ (merged to 'next' on 2019-01-18 at 71be3fedb7)
+ + rebase: introduce a shortcut for --reschedule-failed-exec
+ + rebase: add a config option to default to --reschedule-failed-exec
+ + rebase: introduce --reschedule-failed-exec
"git rebase -i" learned to re-execute a command given with 'exec'
to run after it failed the last time.
- Will merge to 'next'.
+ Will merge to 'master'.
-* md/list-objects-filter-by-depth (2019-01-10) 4 commits
- - tree:<depth>: skip some trees even when collecting omits
- - list-objects-filter: teach tree:# how to handle >0
- - Merge branch 'nd/the-index' into md/list-objects-filter-by-depth
- - Merge branch 'sb/more-repo-in-api' into md/list-objects-filter-by-depth
- (this branch uses sb/more-repo-in-api; is tangled with jt/get-reference-with-commit-graph.)
+* md/list-objects-filter-by-depth (2019-01-15) 4 commits
+ + tree:<depth>: skip some trees even when collecting omits
+ + list-objects-filter: teach tree:# how to handle >0
+ + Merge branch 'nd/the-index' into md/list-objects-filter-by-depth
+ + Merge branch 'sb/more-repo-in-api' into md/list-objects-filter-by-depth
+ (this branch is used by js/filter-options-should-use-plain-int; uses sb/more-repo-in-api; is tangled with jt/get-reference-with-commit-graph.)
The objects-filter machinery learned "tree:<depth>" to filter
objects up to a given depth; earlier it only supported depth=0,
Will merge to 'next'.
-* nd/style-opening-brace (2018-12-10) 1 commit
- (merged to 'next' on 2019-01-08 at 80de026e14)
- + style: the opening '{' of a function is in a separate line
-
- Code clean-up.
-
- Will merge to 'master'.
-
-
-* sg/stress-test (2019-01-07) 8 commits
- (merged to 'next' on 2019-01-08 at 2a65cea5f9)
- + test-lib: add the '--stress' option to run a test repeatedly under load
- + test-lib-functions: introduce the 'test_set_port' helper function
- + test-lib: set $TRASH_DIRECTORY earlier
- + test-lib: consolidate naming of test-results paths
- + test-lib: parse command line options earlier
- + test-lib: parse options in a for loop to keep $@ intact
- + test-lib: extract Bash version check for '-x' tracing
- + test-lib: translate SIGTERM and SIGHUP to an exit
- (this branch uses sg/test-bash-version-fix.)
-
- Flaky tests can now be repeatedly run under load with the
- "--stress" option.
-
- Will merge to 'master'.
-
-
* tg/checkout-no-overlay (2019-01-08) 8 commits
- - checkout: introduce checkout.overlayMode config
- - checkout: introduce --{,no-}overlay option
- - checkout: factor out mark_cache_entry_for_checkout function
- - checkout: clarify comment
- - read-cache: add invalidate parameter to remove_marked_cache_entries
- - entry: support CE_WT_REMOVE flag in checkout_entry
- - entry: factor out unlink_entry function
- - move worktree tests to t24*
+ (merged to 'next' on 2019-01-18 at 1e2a79ba5c)
+ + checkout: introduce checkout.overlayMode config
+ + checkout: introduce --{,no-}overlay option
+ + checkout: factor out mark_cache_entry_for_checkout function
+ + checkout: clarify comment
+ + read-cache: add invalidate parameter to remove_marked_cache_entries
+ + entry: support CE_WT_REMOVE flag in checkout_entry
+ + entry: factor out unlink_entry function
+ + move worktree tests to t24*
"git checkout --no-overlay" can be used to trigger a new mode of
checking out paths out of the tree-ish, that allows paths that
match the pathspec that are in the current index and working tree
and are not in the tree-ish.
- Will merge to 'next'.
+ Will merge to 'master'.
* jk/proto-v2-hidden-refs-fix (2019-01-10) 1 commit
- - upload-pack: support hidden refs with protocol v2
+ (merged to 'next' on 2019-01-18 at 875dbbc71f)
+ + upload-pack: support hidden refs with protocol v2
The v2 upload-pack protocol implementation failed to honor
hidden-ref configuration, which has been corrected.
- Will merge to 'next'.
- An earlier attempt reverted out of 'next'.
-
-
-* la/quiltimport-keep-non-patch (2019-01-07) 1 commit
- (merged to 'next' on 2019-01-08 at 37cb490792)
- + git-quiltimport: add --keep-non-patch option
-
- "git quiltimport" learned "--keep-non-patch" option.
-
- Will merge to 'master'.
-
-
-* sb/submodule-fetchjobs-default-to-one (2018-12-14) 1 commit
- (merged to 'next' on 2019-01-08 at 97a522ef5e)
- + submodule update: run at most one fetch job unless otherwise set
-
- "git submodule update" ought to use a single job unless asked, but
- by mistake used multiple jobs, which has been fixed.
-
Will merge to 'master'.
+ An earlier attempt reverted out of 'next'.
-* js/commit-graph-chunk-table-fix (2018-12-14) 3 commits
+* js/commit-graph-chunk-table-fix (2019-01-15) 3 commits
- Makefile: correct example fuzz build
- commit-graph: fix buffer read-overflow
- commit-graph, fuzz: add fuzzer for commit-graph
The codepath to read from the commit-graph file attempted to read
past the end of it when the file's table-of-contents was corrupt.
+ Will merge to 'next'.
+
* jt/get-reference-with-commit-graph (2018-12-28) 1 commit
- - revision: use commit graph in get_reference()
- (this branch uses sb/more-repo-in-api; is tangled with md/list-objects-filter-by-depth.)
+ (merged to 'next' on 2019-01-18 at bfc4eb9411)
+ + revision: use commit graph in get_reference()
+ (this branch uses sb/more-repo-in-api; is tangled with js/filter-options-should-use-plain-int and md/list-objects-filter-by-depth.)
Micro-optimize the code that prepares commit objects to be walked
by "git rev-list" when the commit-graph is available.
- Will merge to 'next'.
+ Will merge to 'master'.
* dl/merge-cleanup-scissors-fix (2018-11-21) 2 commits
Will merge to 'next'.
-* nb/branch-show-other-worktrees-head (2019-01-07) 4 commits
+* nb/branch-show-other-worktrees-head (2019-01-15) 3 commits
- branch: add an extra verbose output displaying worktree path for checked out branch
- branch: mark and color a branch that is checked out in a linked worktree differently
- ref-filter: add worktreepath atom
sign-off.
-* ot/ref-filter-object-info (2019-01-10) 7 commits
- (merged to 'next' on 2019-01-10 at 9e740568ce)
- + ref-filter: give uintmax_t to format with %PRIuMAX
- (merged to 'next' on 2019-01-08 at 0a4d4ed36a)
- + ref-filter: add docs for new options
- + ref-filter: add tests for deltabase
- + ref-filter: add deltabase option
- + ref-filter: add tests for objectsize:disk
- + ref-filter: add check for negative file size
- + ref-filter: add objectsize:disk option
-
- The "--format=<placeholder>" option of for-each-ref, branch and tag
- learned to show a few more traits of objects that can be learned by
- the object_info API.
-
- Will merge to 'master'.
-
-
* sb/more-repo-in-api (2018-12-28) 23 commits
- - t/helper/test-repository: celebrate independence from the_repository
- - path.h: make REPO_GIT_PATH_FUNC repository agnostic
- - commit: prepare free_commit_buffer and release_commit_memory for any repo
- - commit-graph: convert remaining functions to handle any repo
- - submodule: don't add submodule as odb for push
- - submodule: use submodule repos for object lookup
- - pretty: prepare format_commit_message to handle arbitrary repositories
- - commit: prepare logmsg_reencode to handle arbitrary repositories
- - commit: prepare repo_unuse_commit_buffer to handle any repo
- - commit: prepare get_commit_buffer to handle any repo
- - commit-reach: prepare in_merge_bases[_many] to handle any repo
- - commit-reach: prepare get_merge_bases to handle any repo
- - commit-reach.c: allow get_merge_bases_many_0 to handle any repo
- - commit-reach.c: allow remove_redundant to handle any repo
- - commit-reach.c: allow merge_bases_many to handle any repo
- - commit-reach.c: allow paint_down_to_common to handle any repo
- - commit: allow parse_commit* to handle any repo
- - object: parse_object to honor its repository argument
- - object-store: prepare has_{sha1, object}_file to handle any repo
- - object-store: prepare read_object_file to deal with any repo
- - object-store: allow read_object_file_extended to read from any repo
- - packfile: allow has_packed_and_bad to handle arbitrary repositories
- - sha1_file: allow read_object to read objects in arbitrary repositories
- (this branch is used by jt/get-reference-with-commit-graph and md/list-objects-filter-by-depth.)
+ + t/helper/test-repository: celebrate independence from the_repository
+ + path.h: make REPO_GIT_PATH_FUNC repository agnostic
+ + commit: prepare free_commit_buffer and release_commit_memory for any repo
+ + commit-graph: convert remaining functions to handle any repo
+ + submodule: don't add submodule as odb for push
+ + submodule: use submodule repos for object lookup
+ + pretty: prepare format_commit_message to handle arbitrary repositories
+ + commit: prepare logmsg_reencode to handle arbitrary repositories
+ + commit: prepare repo_unuse_commit_buffer to handle any repo
+ + commit: prepare get_commit_buffer to handle any repo
+ + commit-reach: prepare in_merge_bases[_many] to handle any repo
+ + commit-reach: prepare get_merge_bases to handle any repo
+ + commit-reach.c: allow get_merge_bases_many_0 to handle any repo
+ + commit-reach.c: allow remove_redundant to handle any repo
+ + commit-reach.c: allow merge_bases_many to handle any repo
+ + commit-reach.c: allow paint_down_to_common to handle any repo
+ + commit: allow parse_commit* to handle any repo
+ + object: parse_object to honor its repository argument
+ + object-store: prepare has_{sha1, object}_file to handle any repo
+ + object-store: prepare read_object_file to deal with any repo
+ + object-store: allow read_object_file_extended to read from any repo
+ + packfile: allow has_packed_and_bad to handle arbitrary repositories
+ + sha1_file: allow read_object to read objects in arbitrary repositories
+ (this branch is used by js/filter-options-should-use-plain-int, jt/get-reference-with-commit-graph and md/list-objects-filter-by-depth.)
The in-core repository instances are passed through more codepaths.
* bc/sha-256 (2018-11-14) 12 commits
- - hash: add an SHA-256 implementation using OpenSSL
- - sha256: add an SHA-256 implementation using libgcrypt
- - Add a base implementation of SHA-256 support
- - commit-graph: convert to using the_hash_algo
- - t/helper: add a test helper to compute hash speed
- - sha1-file: add a constant for hash block size
- - t: make the sha1 test-tool helper generic
- - t: add basic tests for our SHA-1 implementation
- - cache: make hashcmp and hasheq work with larger hashes
- - hex: introduce functions to print arbitrary hashes
- - sha1-file: provide functions to look up hash algorithms
- - sha1-file: rename algorithm to "sha1"
+ (merged to 'next' on 2019-01-18 at 3f161d31bb)
+ + hash: add an SHA-256 implementation using OpenSSL
+ + sha256: add an SHA-256 implementation using libgcrypt
+ + Add a base implementation of SHA-256 support
+ + commit-graph: convert to using the_hash_algo
+ + t/helper: add a test helper to compute hash speed
+ + sha1-file: add a constant for hash block size
+ + t: make the sha1 test-tool helper generic
+ + t: add basic tests for our SHA-1 implementation
+ + cache: make hashcmp and hasheq work with larger hashes
+ + hex: introduce functions to print arbitrary hashes
+ + sha1-file: provide functions to look up hash algorithms
+ + sha1-file: rename algorithm to "sha1"
Add sha-256 hash and plug it through the code to allow building Git
with the "NewHash".
- Will merge to 'next'.
+ Will merge to 'master'.
* js/vsts-ci (2018-10-16) 13 commits
* sb/submodule-recursive-fetch-gets-the-tip (2018-12-09) 9 commits
- - fetch: ensure submodule objects fetched
- - submodule.c: fetch in submodules git directory instead of in worktree
- - submodule: migrate get_next_submodule to use repository structs
- - repository: repo_submodule_init to take a submodule struct
- - submodule: store OIDs in changed_submodule_names
- - submodule.c: tighten scope of changed_submodule_names struct
- - submodule.c: sort changed_submodule_names before searching it
- - submodule.c: fix indentation
- - sha1-array: provide oid_array_filter
+ (merged to 'next' on 2019-01-18 at 79a2809fbc)
+ + fetch: ensure submodule objects fetched
+ + submodule.c: fetch in submodules git directory instead of in worktree
+ + submodule: migrate get_next_submodule to use repository structs
+ + repository: repo_submodule_init to take a submodule struct
+ + submodule: store OIDs in changed_submodule_names
+ + submodule.c: tighten scope of changed_submodule_names struct
+ + submodule.c: sort changed_submodule_names before searching it
+ + submodule.c: fix indentation
+ + sha1-array: provide oid_array_filter
"git fetch --recurse-submodules" may not fetch the necessary commit
that is bound to the superproject, which is getting corrected.
- Will merge to 'next'.
+ Will merge to 'master'.
* js/add-i-coalesce-after-editing-hunk (2018-08-28) 1 commit
cf. <e5b2900a-0558-d3bf-8ea1-d526b078bbc2@talktalk.net>
-* ps/stash-in-c (2019-01-04) 27 commits
+* ps/stash-in-c (2019-01-18) 28 commits
+ - stash: fix segmentation fault when files were added with intent
- tests: add a special setup where stash.useBuiltin is off
- stash: optionally use the scripted version again
- stash: add back the original, scripted `git stash`
"git stash" rewritten in C.
- Comments?
+ Will merge to 'next'.
* pw/add-p-select (2018-07-26) 4 commits
cf. <d622a95b-7302-43d4-4ec9-b2cf3388c653@talktalk.net>
I found the feature to be hard to explain, and may result in more
end-user complaints, but let's see.
-
---------------------------------------------------
-[Discarded]
-
-* nd/backup-log (2018-12-10) 24 commits
- . FIXME
- . rebase: keep backup of overwritten files on --skip or --abort
- . am: keep backup of overwritten files on --skip or --abort
- . checkout -f: keep backup of overwritten files
- . reset --hard: keep backup of overwritten files
- . unpack-trees.c: keep backup of ignored files being overwritten
- . refs: keep backup of deleted reflog
- . config --edit: support backup log
- . sha1-file.c: let index_path() accept NULL istate
- . backup-log: keep all blob references around
- . gc: prune backup logs
- . backup-log: add prune command
- . backup-log: add log command
- . backup-log: add diff command
- . backup-log: add cat command
- . backup-log.c: add API for walking backup log
- . add--interactive: support backup log
- . apply: support backup log with --keep-backup
- . commit: support backup log
- . update-index: support backup log with --keep-backup
- . add: support backup log
- . read-cache.c: new flag for add_index_entry() to write to backup log
- . backup-log: add "update" subcommand
- . doc: introduce new "backup log" concept