To: git@vger.kernel.org
Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Sep 2017, #03; Fri, 15)
-X-master-at: 6867272d5b5615bd74ec97bf35b4c4a8d9fe3a51
-X-next-at: 8fa685d3b7c93b129c2017f1ba5db82ebb76a715
+Subject: What's cooking in git.git (Sep 2017, #04; Mon, 25)
+X-master-at: 28996cec80690d2322359d3650a57e8de6e01eb6
+X-next-at: 2c7b836f3ab9b78a2baeee97e329e4c1a1e4c005
-What's cooking in git.git (Sep 2017, #03; Fri, 15)
+What's cooking in git.git (Sep 2017, #04; Mon, 25)
--------------------------------------------------
Here are the topics that have been cooking. Commits prefixed with
'+' are in 'next'. The ones marked with '.' do not appear in any of
the integration branches, but I am still holding onto them.
-We are at week #6 of this cycle. It seems that people had a
-productive week while I was away, which I am reasonably happy about
-;-) Quite a many topics that have been in 'master' are now also
-merged to 'maint', so perhaps I should tag 2.14.2 soonish.
+We are at week #8 of this cycle. Quite a many topics that have been
+in 'master' are now also merged to 'maint', so perhaps I should tag
+2.14.2 soonish.
You can find the changes described here in the integration branches
of the repositories listed at
http://git-blame.blogspot.com/p/git-public-repositories.html
--------------------------------------------------
-[New Topics]
-
-* cc/subprocess-handshake-missing-capabilities (2017-09-11) 1 commit
- - subprocess: loudly die when subprocess asks for an unsupported capability
-
- Finishing touches to a topic already in 'master'.
-
- Will merge to 'next'.
-
-
-* bw/protocol-v1 (2017-09-14) 8 commits
- - i5700: add interop test for protocol transition
- - http: tell server that the client understands v1
- - connect: tell server that the client understands v1
- - connect: teach client to recognize v1 server response
- - upload-pack, receive-pack: introduce protocol version 1
- - daemon: recognize hidden request arguments
- - protocol: introduce protocol extention mechanisms
- - pkt-line: add packet_write function
-
- A new mechanism to upgrade the wire protocol in place is proposed
- and demonstrated that it works with the older versions of Git
- without harming them.
-
-
-* ez/doc-duplicated-words-fix (2017-09-14) 1 commit
- - doc: fix minor typos (extra/duplicated words)
-
- Typofix.
-
- Will merge to 'next'.
-
-
-* jk/write-in-full-fix (2017-09-14) 8 commits
- - read_pack_header: handle signed/unsigned comparison in read result
- - config: flip return value of store_write_*()
- - notes-merge: use ssize_t for write_in_full() return value
- - pkt-line: check write_in_full() errors against "< 0"
- - convert less-trivial versions of "write_in_full() != len"
- - avoid "write_in_full(fd, buf, len) != len" pattern
- - get-tar-commit-id: check write_in_full() return against 0
- - config: avoid "write_in_full(fd, buf, len) < len" pattern
-
- Many codepaths did not diagnose write failures correctly when disks
- go full, due to their misuse of write_in_full() helper function,
- which have been corrected.
-
- Will merge to 'next'.
-
-
-* jn/per-repo-object-store-fixes (2017-09-14) 3 commits
- - replace-objects: evaluate replacement refs without using the object store
- - push, fetch: error out for submodule entries not pointing to commits
- - pack: make packed_git_mru global a value instead of a pointer
-
- Step #0 of a planned & larger series.
-
- Will merge to 'next'.
-
-
-* ks/commit-do-not-touch-cut-line (2017-09-15) 1 commit
- - commit-template: change a message to be more intuitive
-
- The explanation of the cut-line in the commit log editor has been
- slightly tweaked.
-
- Will merge to 'next'.
-
-
-* ks/help-alias-label (2017-09-14) 1 commit
- - help: change a message to be more precise
-
- "git help co" now says "co is aliased to ...", not "git co is".
-
- Will merge to 'next'.
-
-
-* mh/mmap-packed-refs (2017-09-14) 20 commits
- - packed-backend.c: rename a bunch of things and update comments
- - mmapped_ref_iterator: inline into `packed_ref_iterator`
- - ref_cache: remove support for storing peeled values
- - packed_ref_store: get rid of the `ref_cache` entirely
- - ref_store: implement `refs_peel_ref()` generically
- - packed_read_raw_ref(): read the reference from the mmapped buffer
- - packed_ref_iterator_begin(): iterate using `mmapped_ref_iterator`
- - read_packed_refs(): ensure that references are ordered when read
- - packed_ref_cache: keep the `packed-refs` file open and mmapped
- - mmapped_ref_iterator_advance(): no peeled value for broken refs
- - mmapped_ref_iterator: add iterator over a packed-refs file
- - packed_ref_cache: remember the file-wide peeling state
- - read_packed_refs(): read references with minimal copying
- - read_packed_refs(): make parsing of the header line more robust
- - read_packed_refs(): only check for a header at the top of the file
- - read_packed_refs(): use mmap to read the `packed-refs` file
- - die_unterminated_line(), die_invalid_line(): new functions
- - packed_ref_cache: add a backlink to the associated `packed_ref_store`
- - prefix_ref_iterator: break when we leave the prefix
- - ref_iterator: keep track of whether the iterator output is ordered
- (this branch uses mh/packed-ref-transactions.)
-
- Operations that do not touch (majority of) packed refs have been
- optimized by making accesses to packed-refs file lazy; we no longer
- pre-parse everything, and an access to a single ref in the
- packed-refs does not touch majority of irrelevant refs, either.
-
- Expecting a rework to also work on Windows.
-
-
-* nm/imap-send-with-curl (2017-09-15) 4 commits
- - imap-send: use curl by default when possible
- - imap_send: setup_curl: retreive credentials if not set in config file
- - imap-send: add wrapper to get server credentials if needed
- - imap-send: return with error if curl failed
-
- "git imap-send" has our own implementation of the protocol and also
- can use more recent libCurl with the imap protocol support. Update
- the latter so that it can use the credential subsystem, and then
- make it the default option to use, so that we can eventually
- deprecate and remove the former.
-
- Will merge to 'next'.
+[Graduated to "master"]
+* sb/merge-commit-msg-hook (2017-09-22) 1 commit
+ (merged to 'next' on 2017-09-25 at 096e0502a8)
+ + Documentation/githooks: mention merge in commit-msg hook
-* rj/test-ulimit-on-windows (2017-09-15) 1 commit
- - test-lib: don't use ulimit in test prerequisites on cygwin
- (this branch uses mg/name-rev-tests-with-short-stack.)
-
- On Cygwin, "ulimit -s" does not report failure but it does not work
- at all, which causes an unexpected success of some tests that
- expect failures under a limited stack situation. This has been
- fixed.
-
- Will merge to 'next'.
-
-
-* rs/archive-excluded-directory (2017-09-14) 1 commit
- - archive: don't add empty directories to archives
-
- "git archive", especially when used with pathspec, stored an empty
- directory in its output, even though Git itself never does so.
- This has been fixed.
-
- Will merge to 'next'.
-
-
-* tg/refs-allowed-flags (2017-09-14) 1 commit
- - refs: strip out not allowed flags from ref_transaction_update
-
- API error-proofing which happens to also squelch warnings from GCC.
-
- Will merge to 'next'.
-
---------------------------------------------------
-[Stalled]
-
-* mg/status-in-progress-info (2017-05-10) 2 commits
- - status --short --inprogress: spell it as --in-progress
- - status: show in-progress info for short status
-
- "git status" learns an option to report various operations
- (e.g. "merging") that the user is in the middle of.
+ As "git commit" to conclude a conflicted "git merge" honors the
+ commit-msg hook, "git merge" that records a merge commit that
+ cleanly auto-merges should, but it didn't.
- cf. <xmqqmvakcdqw.fsf@gitster.mtv.corp.google.com>
+* aw/gc-lockfile-fscanf-fix (2017-09-17) 1 commit
+ (merged to 'next' on 2017-09-24 at 999ccd41aa)
+ + gc: call fscanf() with %<len>s, not %<len>c, when reading hostname
-* nd/worktree-move (2017-04-20) 6 commits
- - worktree remove: new command
- - worktree move: refuse to move worktrees with submodules
- - worktree move: accept destination as directory
- - worktree move: new command
- - worktree.c: add update_worktree_location()
- - worktree.c: add validate_worktree()
+ "git gc" tries to avoid running two instances at the same time by
+ reading and writing pid/host from and to a lock file; it used to
+ use an incorrect fscanf() format when reading, which has been
+ corrected.
- "git worktree" learned move and remove subcommands.
- Expecting a reroll.
- cf. <20170420101024.7593-1-pclouds@gmail.com>
- cf. <20170421145916.mknekgqzhxffu7di@sigill.intra.peff.net>
- cf. <d0e81b1e-5869-299e-f462-4d43dc997bd1@ramsayjones.plus.com>
+* bb/doc-eol-dirty (2017-09-07) 1 commit
+ (merged to 'next' on 2017-09-14 at 2f0cb688c6)
+ + Documentation: mention that `eol` can change the dirty status of paths
+ Doc update.
-* sg/clone-refspec-from-command-line-config (2017-06-16) 2 commits
- - Documentation/clone: document ignored configuration variables
- - clone: respect additional configured fetch refspecs during initial fetch
- (this branch is used by sg/remote-no-string-refspecs.)
- "git clone -c var=val" is a way to set configuration variables in
- the resulting repository, but it is more useful to also make these
- variables take effect while the initial clone is happening,
- e.g. these configuration variables could be fetch refspecs.
+* bw/git-clang-format (2017-08-14) 2 commits
+ (merged to 'next' on 2017-09-24 at ae51a4e81c)
+ + Makefile: add style build rule
+ + clang-format: outline the git project's coding style
- Waiting for a response.
- cf. <20170617112228.vugswym4o4owf6wj@sigill.intra.peff.net>
- cf. <xmqqmv8zhdap.fsf@gitster.mtv.corp.google.com>
+ "make style" runs git-clang-format to help developers by pointing
+ out coding style issues.
-* js/rebase-i-final (2017-07-27) 10 commits
- - rebase -i: rearrange fixup/squash lines using the rebase--helper
- - t3415: test fixup with wrapped oneline
- - rebase -i: skip unnecessary picks using the rebase--helper
- - rebase -i: check for missing commits in the rebase--helper
- - t3404: relax rebase.missingCommitsCheck tests
- - rebase -i: also expand/collapse the SHA-1s via the rebase--helper
- - rebase -i: do not invent onelines when expanding/collapsing SHA-1s
- - rebase -i: remove useless indentation
- - rebase -i: generate the script via rebase--helper
- - t3415: verify that an empty instructionFormat is handled as before
+* cc/subprocess-handshake-missing-capabilities (2017-09-11) 1 commit
+ (merged to 'next' on 2017-09-19 at 7d0c272bc8)
+ + subprocess: loudly die when subprocess asks for an unsupported capability
- The final batch to "git rebase -i" updates to move more code from
- the shell script to C.
+ Finishing touches to a topic already in 'master'.
- Expecting a reroll.
+* dw/diff-highlight-makefile-fix (2017-09-06) 1 commit
+ (merged to 'next' on 2017-09-10 at 8dfda480ac)
+ + diff-highlight: add clean target to Makefile
-* bp/fsmonitor (2017-06-12) 6 commits
- - fsmonitor: add a sample query-fsmonitor hook script for Watchman
- - fsmonitor: add documentation for the fsmonitor extension.
- - fsmonitor: add test cases for fsmonitor extension
- - fsmonitor: teach git to optionally utilize a file system monitor to speed up detecting new or changed files.
- - dir: make lookup_untracked() available outside of dir.c
- - bswap: add 64 bit endianness helper get_be64
+ Build clean-up.
- We learned to talk to watchman to speed up "git status".
- Expecting a reroll.
- cf. <bade1166-e646-b05a-f65b-adb8da8ba0a7@gmail.com>
+* ez/doc-duplicated-words-fix (2017-09-14) 1 commit
+ (merged to 'next' on 2017-09-19 at 20781bd866)
+ + doc: fix minor typos (extra/duplicated words)
---------------------------------------------------
-[Cooking]
+ Typofix.
-* bb/doc-eol-dirty (2017-09-07) 1 commit
- (merged to 'next' on 2017-09-14 at 2f0cb688c6)
- + Documentation: mention that `eol` can change the dirty status of paths
- Doc update.
+* hv/mv-nested-submodules-test (2017-09-17) 1 commit
+ (merged to 'next' on 2017-09-24 at d36650bbca)
+ + add test for bug in git-mv for recursive submodules
- Will merge to 'master'.
+ A test to demonstrate "git mv" failing to adjust nested submodules
+ has been added.
* jh/hashmap-disable-counting (2017-09-07) 1 commit
adding a new item needs to expand the hashtable by rehashing; add
an API to disable the automatic rehashing to work it around.
- Will merge to 'master'.
+
+* jk/config-lockfile-leak-fix (2017-09-06) 1 commit
+ (merged to 'next' on 2017-09-10 at 7b91d71749)
+ + config: use a static lock_file struct
+
+ A leakfix.
* jk/incore-lockfile-removal (2017-09-06) 20 commits
tempfile APIs have been updated to reduce the chance of programming
errors.
- Will merge to 'master'.
+* jk/info-alternates-fix (2017-09-20) 2 commits
+ (merged to 'next' on 2017-09-24 at d1594d1397)
+ + read_info_alternates: warn on non-trivial errors
+ + Merge branch 'jk/info-alternates-fix-2.11' into jk/info-alternates-fix
+ (this branch uses jk/info-alternates-fix-2.11.)
+
+ A regression fix for 2.11 that made the code to read the list of
+ alternate object stores overrun the end of the string.
+
+
+* jk/info-alternates-fix-2.11 (2017-09-20) 1 commit
+ + read_info_alternates: read contents into strbuf
+ (this branch is used by jk/info-alternates-fix.)
-* jk/leak-checkers (2017-09-08) 10 commits
+ A regression fix for 2.11 that made the code to read the list of
+ alternate object stores overrun the end of the string.
+
+
+* jk/leak-checkers (2017-09-08) 11 commits
+ (merged to 'next' on 2017-09-20 at 5e9ba01461)
+ + git-compat-util: make UNLEAK less error-prone
(merged to 'next' on 2017-09-14 at 906ed9f590)
+ add UNLEAK annotation for reducing leak false positives
+ set_git_dir: handle feeding gitdir to itself
a mechanism for developers to mark that the region of memory
pointed by a pointer is not lost/leaking to help these tools.
- Will merge to 'master'.
+
+* jk/revision-remove-cmdline-pathspec (2017-09-21) 2 commits
+ (merged to 'next' on 2017-09-24 at 2adfb89370)
+ + pathspec doc: parse_pathspec does not maintain references to args
+ + revision: replace "struct cmdline_pathspec" with argv_array
+
+ Code clean-up that also plugs memory leaks.
+
+
+* jk/shortlog-ident-cleanup (2017-09-09) 1 commit
+ (merged to 'next' on 2017-09-14 at 09695b6c39)
+ + shortlog: skip format/parse roundtrip for internal traversal
+
+ Code clean-up.
* jk/system-path-cleanup (2017-09-07) 2 commits
Code clean-up.
- Will merge to 'master'.
+
+* jk/write-in-full-fix (2017-09-14) 8 commits
+ (merged to 'next' on 2017-09-19 at 7b26691c07)
+ + read_pack_header: handle signed/unsigned comparison in read result
+ + config: flip return value of store_write_*()
+ + notes-merge: use ssize_t for write_in_full() return value
+ + pkt-line: check write_in_full() errors against "< 0"
+ + convert less-trivial versions of "write_in_full() != len"
+ + avoid "write_in_full(fd, buf, len) != len" pattern
+ + get-tar-commit-id: check write_in_full() return against 0
+ + config: avoid "write_in_full(fd, buf, len) < len" pattern
+
+ Many codepaths did not diagnose write failures correctly when disks
+ go full, due to their misuse of write_in_full() helper function,
+ which have been corrected.
+
+
+* jn/per-repo-object-store-fixes (2017-09-14) 3 commits
+ (merged to 'next' on 2017-09-19 at 95aef30d5b)
+ + replace-objects: evaluate replacement refs without using the object store
+ + push, fetch: error out for submodule entries not pointing to commits
+ + pack: make packed_git_mru global a value instead of a pointer
+
+ Step #0 of a planned & larger series to make the in-core object
+ store per in-core repository object.
* jt/packmigrate (2017-09-06) 1 commit
(merged to 'next' on 2017-09-14 at 169e9573a0)
+ Remove inadvertently added outgoing/packfile.h
- An oops fix.
-
- Will merge to 'master'.
+ Remove unneeded file added by a topic already in 'master'.
* kd/doc-for-each-ref (2017-09-12) 2 commits
- - doc/for-each-ref: explicitly specify option names
- - doc/for-each-ref: consistently use '=' to between argument names and values
+ (merged to 'next' on 2017-09-19 at 993a2ae375)
+ + doc/for-each-ref: explicitly specify option names
+ + doc/for-each-ref: consistently use '=' to between argument names and values
Doc update.
- Will merge to 'next'.
+* ks/commit-do-not-touch-cut-line (2017-09-15) 1 commit
+ (merged to 'next' on 2017-09-19 at 83891def6b)
+ + commit-template: change a message to be more intuitive
-* kw/write-index-reduce-alloc (2017-09-08) 2 commits
- - read-cache: fix index corruption with index v4
- - Add t/helper/test-write-cache to .gitignore
+ The explanation of the cut-line in the commit log editor has been
+ slightly tweaked.
- Will merge to 'next'.
+* ks/help-alias-label (2017-09-14) 1 commit
+ (merged to 'next' on 2017-09-19 at 7737c853e0)
+ + help: change a message to be more precise
-* ma/remove-config-maybe-bool (2017-09-07) 1 commit
- (merged to 'next' on 2017-09-14 at d0c7fb97a9)
- + config: remove git_config_maybe_bool
+ "git help co" now says "co is aliased to ...", not "git co is".
- Finishing touches to a recent topic.
- Will merge to 'master'.
+* ks/test-readme-phrasofix (2017-09-19) 1 commit
+ (merged to 'next' on 2017-09-24 at 3a721d05f5)
+ + t/README: fix typo and grammatically improve a sentence
+ Doc updates.
-* mh/packed-ref-store-prep (2017-09-07) 1 commit
- (merged to 'next' on 2017-09-14 at e3ef821847)
- + rev-parse: don't trim bisect refnames
- Finishing touches to a recent topic.
+* kw/merge-recursive-cleanup (2017-09-08) 3 commits
+ (merged to 'next' on 2017-09-14 at 9f20025e6b)
+ + merge-recursive: change current file dir string_lists to hashmap
+ + merge-recursive: remove return value from get_files_dirs
+ + merge-recursive: fix memory leak
- Will merge to 'master'.
+ A leakfix and code clean-up.
+
+
+* kw/write-index-reduce-alloc (2017-09-08) 2 commits
+ (merged to 'next' on 2017-09-19 at d0e32c567a)
+ + read-cache: fix index corruption with index v4
+ + Add t/helper/test-write-cache to .gitignore
+
+ A hotfix to a topic already in 'master'.
+
+
+* ls/travis-scriptify (2017-09-22) 4 commits
+ (merged to 'next' on 2017-09-24 at 6e808f0472)
+ + travis-ci: fix "skip_branch_tip_with_tag()" string comparison
+ (merged to 'next' on 2017-09-14 at 8fa685d3b7)
+ + travis: dedent a few scripts that are indented overly deeply
+ + travis-ci: skip a branch build if equal tag is present
+ + travis-ci: move Travis CI code into dedicated scripts
+
+ The scripts to drive TravisCI has been reorganized and then an
+ optimization to avoid spending cycles on a branch whose tip is
+ tagged has been implemented.
+
+
+* ma/pkt-line-leakfix (2017-09-06) 1 commit
+ (merged to 'next' on 2017-09-10 at f0d9994319)
+ + pkt-line: re-'static'-ify buffer in packet_write_fmt_1()
+
+ A leakfix.
+
+
+* ma/remove-config-maybe-bool (2017-09-07) 1 commit
+ (merged to 'next' on 2017-09-14 at d0c7fb97a9)
+ + config: remove git_config_maybe_bool
+
+ Finishing touches to a recent topic.
+
+
+* ma/split-symref-update-fix (2017-09-10) 4 commits
+ (merged to 'next' on 2017-09-10 at 96c403fca7)
+ + refs/files-backend: add `refname`, not "HEAD", to list
+ + refs/files-backend: correct return value in lock_ref_for_update
+ + refs/files-backend: fix memory leak in lock_ref_for_update
+ + refs/files-backend: add longer-scoped copy of string to list
+
+ A leakfix.
+
+
+* mg/name-rev-tests-with-short-stack (2017-09-08) 4 commits
+ (merged to 'next' on 2017-09-14 at 1e4a0fe206)
+ + t6120: test describe and name-rev with deep repos
+ + t6120: clean up state after breaking repo
+ + t6120: test name-rev --all and --stdin
+ + t7004: move limited stack prereq to test-lib
+ (this branch is used by rj/test-ulimit-on-windows.)
+
+ A handful of tests to demonstrates a recursive implementation of
+ "name-rev" hurts.
+
+
+* mg/timestamp-t-fix (2017-09-06) 1 commit
+ (merged to 'next' on 2017-09-10 at a5df4d5b3e)
+ + name-rev: change ULONG_MAX to TIME_MAX
+
+ A mismerge fix.
+
+
+* mh/for-each-string-list-item-empty-fix (2017-09-20) 1 commit
+ (merged to 'next' on 2017-09-24 at 7ca1782f86)
+ + for_each_string_list_item: avoid undefined behavior for empty list
+
+ Code cmp.std.c nitpick.
+
+
+* mh/notes-cleanup (2017-09-09) 13 commits
+ (merged to 'next' on 2017-09-10 at cb1d725504)
+ + load_subtree(): check that `prefix_len` is in the expected range
+ (merged to 'next' on 2017-08-26 at 2d6df46966)
+ + load_subtree(): declare some variables to be `size_t`
+ + hex_to_bytes(): simpler replacement for `get_oid_hex_segment()`
+ + get_oid_hex_segment(): don't pad the rest of `oid`
+ + load_subtree(): combine some common code
+ + get_oid_hex_segment(): return 0 on success
+ + load_subtree(): only consider blobs to be potential notes
+ + load_subtree(): check earlier whether an internal node is a tree entry
+ + load_subtree(): separate logic for internal vs. terminal entries
+ + load_subtree(): fix incorrect comment
+ + load_subtree(): reduce the scope of some local variables
+ + load_subtree(): remove unnecessary conditional
+ + notes: make GET_NIBBLE macro more robust
+
+ Code clean-up.
+
+
+* mh/packed-ref-store-prep (2017-09-07) 1 commit
+ (merged to 'next' on 2017-09-14 at e3ef821847)
+ + rev-parse: don't trim bisect refnames
+
+ Fix regression to "gitk --bisect" by a recent update.
* mh/packed-ref-transactions (2017-09-09) 11 commits
Implement transactional update to the packed-ref representation of
references.
- Will merge to 'master'.
+
+* nd/prune-in-worktree (2017-08-24) 16 commits
+ (merged to 'next' on 2017-09-14 at 3efe283118)
+ + refs.c: reindent get_submodule_ref_store()
+ + refs.c: remove fallback-to-main-store code get_submodule_ref_store()
+ + rev-list: expose and document --single-worktree
+ + revision.c: --reflog add HEAD reflog from all worktrees
+ + files-backend: make reflog iterator go through per-worktree reflog
+ + revision.c: --all adds HEAD from all worktrees
+ + refs: remove dead for_each_*_submodule()
+ + refs.c: move for_each_remote_ref_submodule() to submodule.c
+ + revision.c: use refs_for_each*() instead of for_each_*_submodule()
+ + refs: add refs_head_ref()
+ + refs: move submodule slash stripping code to get_submodule_ref_store
+ + refs.c: refactor get_submodule_ref_store(), share common free block
+ + revision.c: --indexed-objects add objects from all worktrees
+ + revision.c: refactor add_index_objects_to_pending()
+ + refs.c: use is_dir_sep() in resolve_gitlink_ref()
+ + revision.h: new flag in struct rev_info wrt. worktree-related refs
+
+ "git gc" and friends when multiple worktrees are used off of a
+ single repository did not consider the index and per-worktree refs
+ of other worktrees as the root for reachability traversal, making
+ objects that are in use only in other worktrees to be subject to
+ garbage collection.
+
+
+* nm/imap-send-with-curl (2017-09-15) 4 commits
+ (merged to 'next' on 2017-09-19 at d07debeb6c)
+ + imap-send: use curl by default when possible
+ + imap_send: setup_curl: retreive credentials if not set in config file
+ + imap-send: add wrapper to get server credentials if needed
+ + imap-send: return with error if curl failed
+
+ "git imap-send" has our own implementation of the protocol and also
+ can use more recent libCurl with the imap protocol support. Update
+ the latter so that it can use the credential subsystem, and then
+ make it the default option to use, so that we can eventually
+ deprecate and remove the former.
* nm/pull-submodule-recurse-config (2017-09-07) 2 commits
"--recurse-submodules" option was given from the command line.
This has been corrected.
- Will merge to 'master'.
+
+* ow/rev-parse-is-shallow-repo (2017-09-19) 1 commit
+ (merged to 'next' on 2017-09-24 at 8f1b915908)
+ + rev-parse: rev-parse: add --is-shallow-repository
+
+ "git rev-parse" learned "--is-shallow-repository", that is to be
+ used in a way similar to existing "--is-bare-repository" and
+ friends.
+
+
+* rj/test-ulimit-on-windows (2017-09-19) 3 commits
+ (merged to 'next' on 2017-09-24 at b01a595c05)
+ + t9010-*.sh: skip all tests if the PIPE prereq is missing
+ + test-lib: use more compact expression in PIPE prerequisite
+ + test-lib: don't use ulimit in test prerequisites on cygwin
+ (this branch uses mg/name-rev-tests-with-short-stack.)
+
+ On Cygwin, "ulimit -s" does not report failure but it does not work
+ at all, which causes an unexpected success of some tests that
+ expect failures under a limited stack situation. This has been
+ fixed.
+
+
+* rk/commit-tree-make-F-verbatim (2017-09-10) 1 commit
+ (merged to 'next' on 2017-09-14 at 3d40c900f3)
+ + commit-tree: do not complete line in -F input
+
+ Unlike "git commit-tree < file", "git commit-tree -F file" did not
+ pass the contents of the file verbatim and instead completed an
+ incomplete line at the end, if exists. The latter has been updated
+ to match the behaviour of the former.
+
+
+* rs/archive-excluded-directory (2017-09-14) 1 commit
+ (merged to 'next' on 2017-09-19 at c695db3039)
+ + archive: don't add empty directories to archives
+
+ "git archive", especially when used with pathspec, stored an empty
+ directory in its output, even though Git itself never does so.
+ This has been fixed.
* rs/strbuf-leakfix (2017-09-10) 34 commits
Many leaks of strbuf have been fixed.
+
+* tb/test-lint-echo-e (2017-09-21) 1 commit
+ (merged to 'next' on 2017-09-24 at dfa5caa4ce)
+ + test-lint: echo -e (or -E) is not portable
+
+ The test linter has been taught that we do not like "echo -e".
+
+
+* tg/refs-allowed-flags (2017-09-14) 1 commit
+ (merged to 'next' on 2017-09-19 at 407066a925)
+ + refs: strip out not allowed flags from ref_transaction_update
+
+ API error-proofing which happens to also squelch warnings from GCC.
+
+
+* ti/external-sha1dc (2017-08-16) 2 commits
+ (merged to 'next' on 2017-08-26 at a0fb4e91a5)
+ + sha1dc: allow building with the external sha1dc library
+ + sha1dc: build git plumbing code more explicitly
+
+ Platforms that ship with a separate sha1 with collision detection
+ library can link to it instead of using the copy we ship as part of
+ our source tree.
+
+--------------------------------------------------
+[New Topics]
+
+* sb/merge-commit-msg-hook (2017-09-22) 1 commit
+ (merged to 'next' on 2017-09-25 at 096e0502a8)
+ + Documentation/githooks: mention merge in commit-msg hook
+
+ Add documentation for a topic that has recently graduated to the
+ 'master' branch.
+
Will merge to 'master'.
-* jk/shortlog-ident-cleanup (2017-09-09) 1 commit
- (merged to 'next' on 2017-09-14 at 09695b6c39)
- + shortlog: skip format/parse roundtrip for internal traversal
+* jk/describe-omit-some-refs (2017-09-17) 1 commit
+ (merged to 'next' on 2017-09-24 at c373c71279)
+ + describe: fix matching to actually match all patterns
+ (this branch is used by mk/describe-match-with-all.)
+
+ "git describe --match" learned to take multiple patterns in v2.13
+ series, but the feature ignored the patterns after the first one
+ and did not work at all. This has been fixed.
+
+ Will merge to 'master'.
+
+
+* jm/svn-pushmergeinfo-fix (2017-09-17) 1 commit
+ - git-svn: fix svn.pushmergeinfo handling of svn+ssh usernames.
+
+ "git svn dcommit" did not take into account the fact that a
+ svn+ssh:// URL with a username@ (typically used for pushing) refers
+ to the same SVN repository without the username@ and failed when
+ svn.pushmergeinfo option is set.
+
+ Needs a test, perhaps as a follow-up patch.
+
+
+* mg/merge-base-fork-point (2017-09-17) 3 commits
+ - merge-base: find fork-point outside partial reflog
+ - merge-base: return fork-point outside reflog
+ - t6010: test actual test output
+
+ "merge-base --fork-point $branch $commit" is used to guess on which
+ commit among the commits that were once at the tip of the $branch the
+ $commit was built on top of, and it learns these historical tips from
+ the reflog of the $branch. When the true fork-point is lost due to
+ pruning of old reflog entries, the command does not give any output,
+ because it has no way to guess correctly and does not want to mislead
+ the user with a wrong guess.
+
+ The command has been updated to give the best but not known to be
+ correct guess, based on a hope that a merge-base between $commit and a
+ virtual merge across all the reflog entries that still are available
+ for $branch may still be a closer to the true fork-point than the
+ merge-base between $commit and the current tip of the $branch.
+
+ This may have to be offered by an additional option, to allow the
+ users that are prepared to see a potentially incorrect guess to opt
+ into the feature, without affecting the current callers that may not
+ be prepared to accept a guess that is not known to be correct.
+
+
+* bc/rev-parse-parseopt-fix (2017-09-25) 7 commits
+ - parse-options: only insert newline in help text if needed
+ - parse-options: write blank line to correct output stream
+ - t0040,t1502: Demonstrate parse_options bugs
+ (merged to 'next' on 2017-09-24 at e479bce0ff)
+ + git-rebase: don't ignore unexpected command line arguments
+ + rev-parse parseopt: interpret any whitespace as start of help text
+ + rev-parse parseopt: do not search help text for flag chars
+ + t1502: demonstrate rev-parse --parseopt option mis-parsing
+
+ Recent versions of "git rev-parse --parseopt" did not parse the
+ option specification that does not have the optional flags (*=?!)
+ correctly, which has been corrected.
+
+ Will merge to 'next'.
+
+
+* ds/find-unique-abbrev-optim (2017-09-19) 4 commits
+ - SQUASH???
+ - sha1_name: parse less while finding common prefix
+ - sha1_name: unroll len loop in find_unique_abbrev_r()
+ - sha1_name: create perf test for find_unique_abbrev()
+
+
+* ic/fix-filter-branch-to-handle-tag-without-tagger (2017-09-22) 4 commits
+ (merged to 'next' on 2017-09-25 at c7550033df)
+ + filter-branch: use hash-object instead of mktag
+ + filter-branch: stash away ref map in a branch
+ + filter-branch: preserve and restore $GIT_AUTHOR_* and $GIT_COMMITTER_*
+ + filter-branch: reset $GIT_* before cleaning up
+
+ "git filter-branch" cannot reproduce a history with a tag without
+ the tagger field, which only ancient versions of Git allowed to be
+ created. This has been corrected.
+
+ Will merge to 'master'.
+
+
+* jm/status-ignored-directory-optim (2017-09-19) 1 commit
+ (merged to 'next' on 2017-09-24 at ca50f5ed41)
+ + Improve performance of git status --ignored
+
+ "git status --ignored", when noticing that a directory without any
+ tracked path is ignored, still enumerated all the ignored paths in
+ the directory, which is unnecessary. The codepath has been
+ optimized to avoid this overhead.
+
+ Will merge to 'master'.
+
+
+* js/win32-lazyload-dll (2017-09-20) 1 commit
+ - Win32: simplify loading of DLL functions
+
+ Add a helper in anticipation for its need in a future topic RSN.
+
+ Expecting a reroll.
+ cf. <xmqqwp4sk21s.fsf@gitster.mtv.corp.google.com>
+
+
+* ks/doc-use-camelcase-for-config-name (2017-09-25) 1 commit
+ - doc: camelCase the config variables to improve readability
+
+ Doc update.
+
+ Will merge to 'next'.
+
+
+* mk/describe-match-with-all (2017-09-20) 2 commits
+ (merged to 'next' on 2017-09-24 at f96d58dd83)
+ + describe: teach --match to handle branches and remotes
+ + Merge branch 'jk/describe-omit-some-refs' into mk/describe-match-with-all
+ (this branch uses jk/describe-omit-some-refs.)
+
+ "git describe --match <pattern>" has been taught to play well with
+ the "--all" option.
+
+ Will merge to 'master'.
+
+
+* jt/fast-export-copy-modify-fix (2017-09-21) 1 commit
+ (merged to 'next' on 2017-09-24 at c02bfe1902)
+ + fast-export: do not copy from modified file
+
+ "git fast-export" with -M/-C option issued "copy" instruction on a
+ path that is simultaneously modified, which was incorrect.
+
+ Will merge to 'master'.
+
+
+* ma/leakplugs (2017-09-24) 6 commits
+ (merged to 'next' on 2017-09-25 at 69d381a96a)
+ + pack-bitmap[-write]: use `object_array_clear()`, don't leak
+ + object_array: add and use `object_array_pop()`
+ + object_array: use `object_array_clear()`, not `free()`
+ + leak_pending: use `object_array_clear()`, not `free()`
+ + commit: fix memory leak in `reduce_heads()`
+ + builtin/commit: fix memory leak in `prepare_index()`
+
+ Memory leaks in various codepaths have been plugged.
+
+ Will merge to 'master'.
+
+
+* hn/typofix (2017-09-22) 1 commit
+ (merged to 'next' on 2017-09-25 at 489ad60f5b)
+ + submodule.h: typofix
+
+ Will merge to 'master'.
+
+
+* jk/diff-blob (2017-09-22) 1 commit
+ (merged to 'next' on 2017-09-25 at 38286c8ff5)
+ + cat-file: handle NULL object_context.path
+
+ "git cat-file --textconv" started segfaulting recently, which
+ has been corrected.
+
+ Will merge to 'master'.
+
+
+* jk/fallthrough (2017-09-22) 3 commits
+ (merged to 'next' on 2017-09-25 at ad96c37620)
+ + consistently use "fallthrough" comments in switches
+ + curl_trace(): eliminate switch fallthrough
+ + test-line-buffer: simplify command parsing
+
+ Many codepaths have been updated to squelch -Wimplicit-fallthrough
+ warnings from Gcc 7 (which is a good code hygiene).
+
+ Will merge to 'master'.
+
+
+* rj/no-sign-compare (2017-09-22) 4 commits
+ (merged to 'next' on 2017-09-25 at 71ee264ce6)
+ + ALLOC_GROW: avoid -Wsign-compare warnings
+ + cache.h: hex2chr() - avoid -Wsign-compare warnings
+ + commit-slab.h: avoid -Wsign-compare warnings
+ + git-compat-util.h: xsize_t() - avoid -Wsign-compare warnings
+
+ Many codepaths have been updated to squelch -Wsign-compare
+ warnings.
+
+ Will merge to 'master'.
+
+
+* cc/perf-run-config (2017-09-24) 9 commits
+ - perf: store subsection results in "test-results/$GIT_PERF_SUBSECTION/"
+ - perf/run: show name of rev being built
+ - perf/run: add run_subsection()
+ - perf/run: update get_var_from_env_or_config() for subsections
+ - perf/run: add get_subsections()
+ - perf/run: add calls to get_var_from_env_or_config()
+ - perf/run: add GIT_PERF_DIRS_OR_REVS
+ - perf/run: add get_var_from_env_or_config()
+ - perf/run: add '--config' option to the 'run' script
+
+ Needs review.
+
+
+* ik/userdiff-html-h-element-fix (2017-09-24) 1 commit
+ (merged to 'next' on 2017-09-25 at e3cbe89672)
+ + userdiff: fix HTML hunk header regexp
+
+ The built-in pattern to detect the "function header" for HTML did
+ not match <H1>..<H6> elements without any attributes, which has
+ been fixed.
+
+ Will merge to 'master'.
+
+
+* jk/doc-read-tree-table-asciidoctor-fix (2017-09-24) 1 commit
+ (merged to 'next' on 2017-09-25 at 070163b964)
+ + doc: put literal block delimiter around table
+
+ A docfix.
+
+ Will merge to 'master'.
+
+
+* mg/merge-pre-merge-hook (2017-09-24) 4 commits
+ - t7503: add tests for pre-merge-hook
+ - merge: --no-verify to bypass pre-merge hook
+ - merge: do no-verify like commit
+ - git-merge: honor pre-merge hook
+
+ "git merge" learned a 'pre-merge' hook, that would be triggered
+ before the merge commit is created by a clean auto-merge.
+
+ Waiting for review to conclude.
+
+
+* rs/mailinfo-qp-decode-fix (2017-09-24) 1 commit
+ (merged to 'next' on 2017-09-25 at d48c594041)
+ + mailinfo: don't decode invalid =XY quoted-printable sequences
+
+ "git mailinfo" was loose in decoding quoted printable and produced
+ garbage when the two letters after the equal sign are not
+ hexadecimal. This has been fixed.
+
+ Will merge to 'master'.
+
+
+* rs/resolve-ref-optional-result (2017-09-24) 3 commits
+ (merged to 'next' on 2017-09-25 at b0f31228bb)
+ + refs: pass NULL to resolve_ref_unsafe() if hash is not needed
+ + refs: pass NULL to refs_resolve_ref_unsafe() if hash is not needed
+ + refs: make sha1 output parameter of refs_resolve_ref_unsafe() optional
Code clean-up.
Will merge to 'master'.
-* mg/name-rev-tests-with-short-stack (2017-09-08) 4 commits
- (merged to 'next' on 2017-09-14 at 1e4a0fe206)
- + t6120: test describe and name-rev with deep repos
- + t6120: clean up state after breaking repo
- + t6120: test name-rev --all and --stdin
- + t7004: move limited stack prereq to test-lib
- (this branch is used by rj/test-ulimit-on-windows.)
+* sb/doc-config-submodule-update (2017-09-24) 1 commit
+ (merged to 'next' on 2017-09-25 at 447014b4ce)
+ + Documentation/config: clarify the meaning of submodule.<name>.update
+
+ Will merge to 'master'.
+
+
+* jc/merge-x-theirs-docfix (2017-09-25) 1 commit
+ - merge-strategies: avoid implying that "-s theirs" exists
+
+ The documentation for '-X<option>' for merges was misleadingly
+ written to suggest that "-s theirs" exists, which is not the case.
+
+ Will merge to 'next'.
+
+--------------------------------------------------
+[Stalled]
+
+* mk/use-size-t-in-zlib (2017-08-10) 1 commit
+ . zlib.c: use size_t for size
- A handful of tests to demonstrates a recursive implementation of
- "name-rev" hurts.
+ The wrapper to call into zlib followed our long tradition to use
+ "unsigned long" for sizes of regions in memory, which have been
+ updated to use "size_t".
- Will merge to 'master'.
+ Needs resurrecting by making sure the fix is good and still applies
+ (or adjusted to today's codebase).
-* rk/commit-tree-make-F-verbatim (2017-09-10) 1 commit
- (merged to 'next' on 2017-09-14 at 3d40c900f3)
- + commit-tree: do not complete line in -F input
+* mg/status-in-progress-info (2017-05-10) 2 commits
+ - status --short --inprogress: spell it as --in-progress
+ - status: show in-progress info for short status
- Unlike "git commit-tree < file", "git commit-tree -F file" did not
- pass the contents of the file verbatim and instead completed an
- incomplete line at the end, if exists. The latter has been updated
- to match the behaviour of the former.
+ "git status" learns an option to report various operations
+ (e.g. "merging") that the user is in the middle of.
- Will merge to 'master'.
+ cf. <xmqqmvakcdqw.fsf@gitster.mtv.corp.google.com>
-* sb/merge-commit-msg-hook (2017-09-08) 1 commit
- (merged to 'next' on 2017-09-14 at e9d0e43031)
- + builtin/merge: honor commit-msg hook for merges
+* nd/worktree-move (2017-04-20) 6 commits
+ - worktree remove: new command
+ - worktree move: refuse to move worktrees with submodules
+ - worktree move: accept destination as directory
+ - worktree move: new command
+ - worktree.c: add update_worktree_location()
+ - worktree.c: add validate_worktree()
- As "git commit" to conclude a conflicted "git merge" honors the
- commit-msg hook, "git merge" that recoreds a merge commit that
- cleanly auto-merges should, but it didn't.
+ "git worktree" learned move and remove subcommands.
- Will merge to 'master'.
+ Expecting a reroll.
+ cf. <20170420101024.7593-1-pclouds@gmail.com>
+ cf. <20170421145916.mknekgqzhxffu7di@sigill.intra.peff.net>
+ cf. <d0e81b1e-5869-299e-f462-4d43dc997bd1@ramsayjones.plus.com>
-* ls/travis-scriptify (2017-09-11) 3 commits
- (merged to 'next' on 2017-09-14 at 8fa685d3b7)
- + travis: dedent a few scripts that are indented overly deeply
- + travis-ci: skip a branch build if equal tag is present
- + travis-ci: move Travis CI code into dedicated scripts
+* sg/clone-refspec-from-command-line-config (2017-06-16) 2 commits
+ - Documentation/clone: document ignored configuration variables
+ - clone: respect additional configured fetch refspecs during initial fetch
+ (this branch is used by sg/remote-no-string-refspecs.)
- The scripts to drive TravisCI has been reorganized and then an
- optimization to avoid spending cycles on a branch whose tip is
- tagged has been implemented.
+ "git clone -c var=val" is a way to set configuration variables in
+ the resulting repository, but it is more useful to also make these
+ variables take effect while the initial clone is happening,
+ e.g. these configuration variables could be fetch refspecs.
- Will merge to 'master'.
+ Waiting for a response.
+ cf. <20170617112228.vugswym4o4owf6wj@sigill.intra.peff.net>
+ cf. <xmqqmv8zhdap.fsf@gitster.mtv.corp.google.com>
+--------------------------------------------------
+[Cooking]
-* dw/diff-highlight-makefile-fix (2017-09-06) 1 commit
- (merged to 'next' on 2017-09-10 at 8dfda480ac)
- + diff-highlight: add clean target to Makefile
+* js/rebase-i-final (2017-07-27) 10 commits
+ - rebase -i: rearrange fixup/squash lines using the rebase--helper
+ - t3415: test fixup with wrapped oneline
+ - rebase -i: skip unnecessary picks using the rebase--helper
+ - rebase -i: check for missing commits in the rebase--helper
+ - t3404: relax rebase.missingCommitsCheck tests
+ - rebase -i: also expand/collapse the SHA-1s via the rebase--helper
+ - rebase -i: do not invent onelines when expanding/collapsing SHA-1s
+ - rebase -i: remove useless indentation
+ - rebase -i: generate the script via rebase--helper
+ - t3415: verify that an empty instructionFormat is handled as before
- Build clean-up.
+ The final batch to "git rebase -i" updates to move more code from
+ the shell script to C.
- Will merge to 'master'.
+ Will merge to 'next'.
-* jk/config-lockfile-leak-fix (2017-09-06) 1 commit
- (merged to 'next' on 2017-09-10 at 7b91d71749)
- + config: use a static lock_file struct
+* mk/diff-delta-avoid-large-offset (2017-08-11) 1 commit
+ - diff-delta: do not allow delta offset truncation
- A leakfix.
+ The delta format used in the packfile cannot reference data at
+ offset larger than what can be expressed in 4-byte, but the
+ generator for the data failed to make sure the offset does not
+ overflow. This has been corrected.
- Will merge to 'master'.
+ Will merge to 'next'.
-* kw/merge-recursive-cleanup (2017-09-08) 3 commits
- (merged to 'next' on 2017-09-14 at 9f20025e6b)
- + merge-recursive: change current file dir string_lists to hashmap
- + merge-recursive: remove return value from get_files_dirs
- + merge-recursive: fix memory leak
+* mk/diff-delta-uint-may-be-shorter-than-ulong (2017-08-10) 1 commit
+ - diff-delta: fix encoding size that would not fit in "unsigned int"
- A leakfix and code clean-up.
+ The machinery to create xdelta used in pack files received the
+ sizes of the data in size_t, but lost the higher bits of them by
+ storing them in "unsigned int" during the computation, which is
+ fixed.
- Will merge to 'master'.
+ Will merge to 'next'.
-* ma/pkt-line-leakfix (2017-09-06) 1 commit
- (merged to 'next' on 2017-09-10 at f0d9994319)
- + pkt-line: re-'static'-ify buffer in packet_write_fmt_1()
+* bp/fsmonitor (2017-09-24) 12 commits
+ - fsmonitor: add a performance test
+ - fsmonitor: add a sample integration script for Watchman
+ - fsmonitor: add test cases for fsmonitor extension
+ - split-index: disable the fsmonitor extension when running the split index test
+ - fsmonitor: add a test tool to dump the index extension
+ - update-index: add fsmonitor support to update-index
+ - ls-files: Add support in ls-files to display the fsmonitor valid bit
+ - fsmonitor: add documentation for the fsmonitor extension.
+ - fsmonitor: teach git to optionally utilize a file system monitor to speed up detecting new or changed files.
+ - update-index: add a new --force-write-index option
+ - preload-index: add override to enable testing preload-index
+ - bswap: add 64 bit endianness helper get_be64
- A leakfix.
+ We learned to talk to watchman to speed up "git status" and other
+ operations that need to see which paths have been modified.
- Will merge to 'master'.
+ Looking mostly ready. Further comments?
-* ma/split-symref-update-fix (2017-09-10) 4 commits
- (merged to 'next' on 2017-09-10 at 96c403fca7)
- + refs/files-backend: add `refname`, not "HEAD", to list
- + refs/files-backend: correct return value in lock_ref_for_update
- + refs/files-backend: fix memory leak in lock_ref_for_update
- + refs/files-backend: add longer-scoped copy of string to list
+* bw/protocol-v1 (2017-09-21) 9 commits
+ - i5700: add interop test for protocol transition
+ - http: tell server that the client understands v1
+ - connect: tell server that the client understands v1
+ - connect: teach client to recognize v1 server response
+ - upload-pack, receive-pack: introduce protocol version 1
+ - daemon: recognize hidden request arguments
+ - protocol: introduce protocol extention mechanisms
+ - connect: die when a capability line comes after a ref
+ - pkt-line: add packet_write function
- A leakfix.
+ A new mechanism to upgrade the wire protocol in place is proposed
+ and demonstrated that it works with the older versions of Git
+ without harming them.
- Will merge to 'master'.
+ Expecting a reroll,
+ together with Jonathan's update to get_remote_heads()
+ cf. <20170922201551.15012-1-jonathantanmy@google.com>
-* mg/timestamp-t-fix (2017-09-06) 1 commit
- (merged to 'next' on 2017-09-10 at a5df4d5b3e)
- + name-rev: change ULONG_MAX to TIME_MAX
+* mh/mmap-packed-refs (2017-09-24) 22 commits
+ - SQUASH???
+ - packed-backend.c: rename a bunch of things and update comments
+ - mmapped_ref_iterator: inline into `packed_ref_iterator`
+ - ref_cache: remove support for storing peeled values
+ - packed_ref_store: get rid of the `ref_cache` entirely
+ - ref_store: implement `refs_peel_ref()` generically
+ - packed_read_raw_ref(): read the reference from the mmapped buffer
+ - packed_ref_iterator_begin(): iterate using `mmapped_ref_iterator`
+ - read_packed_refs(): ensure that references are ordered when read
+ - packed_ref_cache: keep the `packed-refs` file mmapped if possible
+ - packed-backend.c: reorder some definitions
+ - mmapped_ref_iterator_advance(): no peeled value for broken refs
+ - mmapped_ref_iterator: add iterator over a packed-refs file
+ - packed_ref_cache: remember the file-wide peeling state
+ - read_packed_refs(): read references with minimal copying
+ - read_packed_refs(): make parsing of the header line more robust
+ - read_packed_refs(): only check for a header at the top of the file
+ - read_packed_refs(): use mmap to read the `packed-refs` file
+ - die_unterminated_line(), die_invalid_line(): new functions
+ - packed_ref_cache: add a backlink to the associated `packed_ref_store`
+ - prefix_ref_iterator: break when we leave the prefix
+ - ref_iterator: keep track of whether the iterator output is ordered
- A mismerge fix.
+ Operations that do not touch (majority of) packed refs have been
+ optimized by making accesses to packed-refs file lazy; we no longer
+ pre-parse everything, and an access to a single ref in the
+ packed-refs does not touch majority of irrelevant refs, either.
- Will merge to 'master'.
+ Under review; expecting an eventual reroll.
+ cf. <b092c424-987a-fe00-43d4-17062000dfc0@alum.mit.edu> etc.
-* pc/submodule-helper (2017-08-25) 4 commits
+* pc/submodule-helper (2017-09-25) 4 commits
- submodule: port submodule subcommand 'status' from shell to C
- submodule: port set_name_rev() from shell to C
- submodule--helper: introduce for_each_listed_submodule()
GSoC.
+ Looking good; it appeared to me that 3/4 is totally superfluous, though.
+
* sb/parse-options-blank-line-before-option-list (2017-08-25) 1 commit
- usage_with_options: omit double new line on empty option list
"git worktree" with no option and no subcommand showed too many
blank lines in its help text, which has been reduced.
-
-* mh/notes-cleanup (2017-09-09) 13 commits
- (merged to 'next' on 2017-09-10 at cb1d725504)
- + load_subtree(): check that `prefix_len` is in the expected range
- (merged to 'next' on 2017-08-26 at 2d6df46966)
- + load_subtree(): declare some variables to be `size_t`
- + hex_to_bytes(): simpler replacement for `get_oid_hex_segment()`
- + get_oid_hex_segment(): don't pad the rest of `oid`
- + load_subtree(): combine some common code
- + get_oid_hex_segment(): return 0 on success
- + load_subtree(): only consider blobs to be potential notes
- + load_subtree(): check earlier whether an internal node is a tree entry
- + load_subtree(): separate logic for internal vs. terminal entries
- + load_subtree(): fix incorrect comment
- + load_subtree(): reduce the scope of some local variables
- + load_subtree(): remove unnecessary conditional
- + notes: make GET_NIBBLE macro more robust
-
- Code clean-up.
-
- Will merge to 'master'.
-
-
-* nd/prune-in-worktree (2017-08-24) 16 commits
- (merged to 'next' on 2017-09-14 at 3efe283118)
- + refs.c: reindent get_submodule_ref_store()
- + refs.c: remove fallback-to-main-store code get_submodule_ref_store()
- + rev-list: expose and document --single-worktree
- + revision.c: --reflog add HEAD reflog from all worktrees
- + files-backend: make reflog iterator go through per-worktree reflog
- + revision.c: --all adds HEAD from all worktrees
- + refs: remove dead for_each_*_submodule()
- + refs.c: move for_each_remote_ref_submodule() to submodule.c
- + revision.c: use refs_for_each*() instead of for_each_*_submodule()
- + refs: add refs_head_ref()
- + refs: move submodule slash stripping code to get_submodule_ref_store
- + refs.c: refactor get_submodule_ref_store(), share common free block
- + revision.c: --indexed-objects add objects from all worktrees
- + revision.c: refactor add_index_objects_to_pending()
- + refs.c: use is_dir_sep() in resolve_gitlink_ref()
- + revision.h: new flag in struct rev_info wrt. worktree-related refs
-
- "git gc" and friends when multiple worktrees are used off of a
- single repository did not consider the index and per-worktree refs
- of other worktrees as the root for reachability traversal, making
- objects that are in use only in other worktrees to be subject to
- garbage collection.
-
- Will merge to 'master'.
+ Superseded by bc/rev-parse-parseopt-fix?
* bc/hash-algo (2017-08-20) 5 commits
cf. <20170821000022.26729-1-sandals@crustytoothpaste.net>
-* mk/diff-delta-uint-may-be-shorter-than-ulong (2017-08-10) 1 commit
- . diff-delta: fix encoding size that would not fit in "unsigned int"
-
- The machinery to create xdelta used in pack files received the
- sizes of the data in size_t, but lost the higher bits of them by
- storing them in "unsigned int" during the computation, which is
- fixed.
-
- Dropped, as it was rerolled for review as part of a larger series.
- cf. <1502914591-26215-1-git-send-email-martin@mail.zuhause>
-
-
* jk/drop-ancient-curl (2017-08-09) 5 commits
- http: #error on too-old curl
- curl: remove ifdef'd code never used with curl >=7.19.4
Will be rerolled after tc/curl-with-backports stabilizes.
-* mk/use-size-t-in-zlib (2017-08-10) 1 commit
- . zlib.c: use size_t for size
-
- The wrapper to call into zlib followed our long tradition to use
- "unsigned long" for sizes of regions in memory, which have been
- updated to use "size_t".
-
- Dropped, as it was rerolled for review as part of a larger series.
- cf. <1502914591-26215-1-git-send-email-martin@mail.zuhause>
-
-
-* mk/diff-delta-avoid-large-offset (2017-08-11) 1 commit
- . diff-delta: do not allow delta offset truncation
-
- The delta format used in the packfile cannot reference data at
- offset larger than what can be expressed in 4-byte, but the
- generator for the data failed to make sure the offset does not
- overflow. This has been corrected.
-
- Dropped, as it was rerolled for review as part of a larger series.
- cf. <1502914591-26215-1-git-send-email-martin@mail.zuhause>
-
-
-* bw/git-clang-format (2017-08-14) 2 commits
- - Makefile: add style build rule
- - clang-format: outline the git project's coding style
-
- "make style" runs git-clang-format to help developers by pointing
- out coding style issues.
-
-
* sb/submodule-recursive-checkout-detach-head (2017-07-28) 2 commits
- Documentation/checkout: clarify submodule HEADs to be detached
- recursive submodules: detach HEAD from new state
this is better than rejecting recursive checkout, for example.
-* ti/external-sha1dc (2017-08-16) 2 commits
- (merged to 'next' on 2017-08-26 at a0fb4e91a5)
- + sha1dc: allow building with the external sha1dc library
- + sha1dc: build git plumbing code more explicitly
-
- Platforms that ship with a separate sha1 with collision detection
- library can link to it instead of using the copy we ship as part of
- our source tree.
-
- Will merge to 'master'.
-
-
* jk/check-ref-format-oor-fix (2017-07-14) 1 commit
- check-ref-format: require a repository for --branch
this release cycle.
-* sd/branch-copy (2017-06-18) 3 commits
+* sd/branch-copy (2017-09-24) 4 commits
+ - branch: fix "copy" to never touch HEAD
- branch: add a --copy (-c) option to go with --move (-m)
- branch: add test for -m renaming multiple config sections
- config: create a function to format section headers
"git branch" learned "-c/-C" to create and switch to a new branch
by copying an existing one.
- I personally do not think "branch --copy master backup" while on
- "master" that switches to "backup" is a good UI, and I *will* say
- "I told you so" when users complain after we merge this down to
- 'master'.
+ Will merge to 'next'.
--------------------------------------------------
[Discarded]
This served as an input to updated tb/apply-with-crlf.
-
* jn/per-repo-obj-store (2017-09-07) 39 commits
. pack: allow sha1_loose_object_info to handle arbitrary repositories
. pack: allow map_sha1_file to handle arbitrary repositories
repository we visit.
Will be rerolled.
-
-