]> git.ipfire.org Git - thirdparty/git.git/commitdiff
What's cooking (2016/07 #06)
authorJunio C Hamano <gitster@pobox.com>
Tue, 19 Jul 2016 21:26:54 +0000 (14:26 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 19 Jul 2016 21:26:54 +0000 (14:26 -0700)
whats-cooking.txt

index 8e3bac5831675a7560dc03bd1f6afecfe714dd1f..c09c174dae3f9d8ea3fced9085f3276297e82e4c 100644 (file)
@@ -1,10 +1,10 @@
 To: git@vger.kernel.org
 Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Jul 2016, #05; Wed, 13)
-X-master-at: b1ec08fda8e0c3ed19b680404770ca4ec313ca8c
-X-next-at: aa0ab43525ebd305d89ffde30b5d5837a535491c
+Subject: What's cooking in git.git (Jul 2016, #06; Tue, 19)
+X-master-at: 08bb3500a2a718c3c78b0547c68601cafa7a8fd9
+X-next-at: 66765a41ed474ba5c6702f65e187cd9aa6236993
 
-What's cooking in git.git (Jul 2016, #05; Wed, 13)
+What's cooking in git.git (Jul 2016, #06; Tue, 19)
 --------------------------------------------------
 
 Here are the topics that have been cooking.  Commits prefixed with
@@ -12,11 +12,6 @@ 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.
 
-It turns out that v2.9.1 had tests that weren't even meant to pass
-on platforms with 32-bit time_t/unsigned long, but did not properly
-exclude them.  A fix nas been prepared and I expect we'll cut v2.9.2
-with only that change relative to v2.9.1 soonish.
-
 You can find the changes described here in the integration branches
 of the repositories listed at
 
@@ -25,132 +20,485 @@ of the repositories listed at
 --------------------------------------------------
 [New Topics]
 
-* js/t0006-for-v2.9.2 (2016-07-12) 1 commit
- - t0006: skip "far in the future" test when unsigned long is not long enough
+* ew/autoconf-pthread (2016-07-18) 1 commit
+  (merged to 'next' on 2016-07-19 at 146e249)
+ + configure.ac: stronger test for pthread linkage
 
- A test merged to v2.9.1 forgot that the feature it was testing
- would not work on a platform with 32-bit time_t/unsigned long and
- reported breakage.  Skip the tests that cannot run correctly on
such platforms.
+ Existing autoconf generated test for the need to link with pthread
+ library did not check all the functions from pthread libraries;
+ recent FreeBSD has some functions in libc but not others, and we
mistakenly thought linking with libc is enough when it is not.
 
- Waiting for an Ack; will fast-track down to 'maint' to cut v2.9.2.
+ Will merge to 'master'.
 
 
-* js/am-3-merge-recursive-direct (2016-07-12) 21 commits
- - merge-recursive: flush output buffer even when erroring out
- - merge_trees(): ensure that the output buffer is released after calling it
- - merge-recursive: offer an option to retain the output in 'obuf'
- - merge-recursive: write the commit title in one go
- - merge-recursive: flush output buffer before printing error messages
- - am -3: use merge_recursive() directly again
- - merge-recursive: switch to returning errors instead of dying
- - merge-recursive: handle return values indicating errors
- - merge-recursive: allow write_tree_from_memory() to error out
- - merge-recursive: avoid returning a wholesale struct
- - merge_recursive: abort properly upon errors
- - prepare the builtins for a libified merge_recursive()
- - merge-recursive: clarify code in was_tracked()
- - die(_("BUG")): avoid translating bug messages
- - die("bug"): report bugs consistently
- - t5520: verify that `git pull --rebase` shows the advice when failing
- - Merge branch 'jh/clean-smudge-annex' into HEAD
- - Merge branch 'bc/cocci' into js/am-3-merge-recursive-direct
- - Merge branch 'js/am-call-theirs-theirs-in-fallback-3way' into js/am-3-merge-recursive-direct
- - Merge branch 'cc/apply-am' into js/am-3-merge-recursive-direct
- - Merge branch 'va/i18n-even-more' into js/am-3-merge-recursive-direct
- (this branch uses bc/cocci, cc/apply-am, jh/clean-smudge-annex, js/am-call-theirs-theirs-in-fallback-3way and va/i18n-even-more.)
+* ew/daemon-socket-keepalive (2016-07-18) 1 commit
+  (merged to 'next' on 2016-07-19 at 0140849)
+ + daemon: ignore ENOTSOCK from setsockopt
 
- "git am -3" calls "git merge-recursive" when it needs to fall back
- to a three-way merge; this call has been turned into an internal
- subroutine call instead of spawning a separate subprocess.
+ Recent update to "git daemon" tries to enable the socket-level
+ KEEPALIVE, but when it is spawned via inetd, the standard input
+ file descriptor may not necessarily be connected to a socket.
+ Suppress an ENOTSOCK error from setsockopt().
 
- Will need to wait for all the topics this depends on graduate to 'master'.
+ Will merge to 'master'.
 
 
-* ls/travis-enable-httpd-tests (2016-07-12) 1 commit
- - travis-ci: enable web server tests t55xx on Linux
+* jc/doc-diff-filter-exclude (2016-07-14) 1 commit
+  (merged to 'next' on 2016-07-19 at 0c8aa92)
+ + diff: document diff-filter exclusion
 
Allow http daemon tests in Travis CI tests.
Belated doc update for a feature added in v1.8.5.
 
+ Will merge to 'master'.
 
-* nd/cache-tree-ita (2016-07-12) 4 commits
- - cache-tree: do not generate empty trees as a result of all i-t-a subentries
- - cache-tree.c: fix i-t-a entry skipping directory updates sometimes
- - test-lib.sh: introduce and use $_EMPTY_BLOB
- - test-lib.sh: introduce and use $_EMPTY_TREE
 
- "git add -N dir/file && git write-tree" produced an incorrect tree
- when there are other paths in the same directory that sorts after
- "file".
+* jk/push-scrub-url (2016-07-14) 1 commit
+  (merged to 'next' on 2016-07-19 at 6ada3f1)
+ + push: anonymize URL in status output
 
- Looked mostly OK.  Further review comments are welcome.
+ "git fetch http://user:pass@host/repo..." scrubbed the userinfo
+ part, but "git push" didn't.
 
+ Will merge to 'master'.
 
-* nd/pack-ofs-4gb-limit (2016-07-13) 7 commits
- - fsck: use streaming interface for large blobs in pack
- - pack-objects: do not truncate result in-pack object size on 32-bit systems
- - index-pack: correct "offset" type in unpack_entry_data()
- - index-pack: report correct bad object offsets even if they are large
- - index-pack: correct "len" type in unpack_data()
- - sha1_file.c: use type off_t* for object_info->disk_sizep
- - pack-objects: pass length to check_pack_crc() without truncation
 
- "git pack-objects" and "git index-pack" mostly operate with off_t
- when talking about the offset of objects in a packfile, but there
- were a handful of places that used "unsigned long" to hold that
- value, leading to an unintended truncation.
+* js/fsck-name-object (2016-07-18) 4 commits
+  (merged to 'next' on 2016-07-19 at 6f39d2f)
+ + fsck: optionally show more helpful info for broken links
+ + fsck: give the error function a chance to see the fsck_options
+ + fsck_walk(): optionally name objects on the go
+ + fsck: refactor how to describe objects
+
+ When "git fsck" reports a broken link (e.g. a tree object contains
+ a blob that does not exist), both containing object and the object
+ that is referred to were reported with their 40-hex object names.
+ The command learned the "--name-objects" option to show the path to
+ the containing object from existing refs (e.g. "HEAD~24^2:file.txt").
+
+ Will merge to 'master'.
+
+
+* mh/blame-worktree (2016-07-18) 2 commits
+  (merged to 'next' on 2016-07-19 at 4c39534)
+ + t/t8003-blame-corner-cases.sh: Use here documents
+ + blame: allow to blame paths freshly added to the index
+
+ "git blame file" allowed the lineage of lines in the uncommitted,
+ unadded contents of "file" to be inspected, but it refused when
+ "file" did not appear in the current commit.  When "file" was
+ created by renaming an existing file (but the change has not been
+ committed), this restriction was unnecessarily tight.
+
+ Will merge to 'master'.
+
+
+* jt/fetch-large-handshake-window-on-http (2016-07-19) 1 commit
+ - fetch-pack: grow stateless RPC windows exponentially
+
+ "git fetch" exchanges batched have/ack messages between the sender
+ and the receiver, initially doubling every time and then falling
+ back to use the maximum window size.  The "smart http" transport,
+ being an half-duplex protocol, outgrows the preset limit too
+ quickly and becomes inefficient when interacting with a large
+ repository.  The internal mechanism learned to grow the window size
+ more aggressively when working with the "smart http" transport.
 
  Will merge to 'next'.
 
 
-* sb/push-options (2016-07-12) 5 commits
- - add a test for push options
- - push: accept push options
- - SQUASH???
- - receive-pack: implement advertising and receiving push options
- - push options: {pre,post}-receive hook learns about push options
+* ew/svn-authorsprog-doc (2016-07-19) 1 commit
+ - git-svn: document svn.authorsProg in config
 
- "git push" learned to accept and pass extra options to the
- receiving end so that hooks can read and react to them.
+ Belated doc update.
+
+ Perhaps I will get a copy of this directly from Eric together with
+ other updates to git-svn, in which case this needs to be scrapped.
+
+
+* rs/use-strbuf-addbuf (2016-07-19) 1 commit
+  (merged to 'next' on 2016-07-19 at 679f992)
+ + use strbuf_addbuf() for appending a strbuf to another
+
+ Code cleanup.
+
+ Will merge to 'master'.
+
+
+* rs/submodule-config-code-cleanup (2016-07-19) 1 commit
+  (merged to 'next' on 2016-07-19 at 59dbd58)
+ + submodule-config: use explicit empty string instead of strbuf in config_from()
+
+ Code cleanup.
+
+ Will merge to 'master'.
+
+--------------------------------------------------
+[Graduated to "master"]
+
+* ah/unpack-trees-advice-messages (2016-06-27) 1 commit
+  (merged to 'next' on 2016-07-06 at 4254fc2)
+ + unpack-trees: fix English grammar in do-this-before-that messages
+
+ Grammofix.
+
+
+* ak/lazy-prereq-mktemp (2016-07-06) 1 commit
+  (merged to 'next' on 2016-07-11 at 66a9384)
+ + t7610: test for mktemp before test execution
+
+ A test that unconditionally used "mktemp" learned that the command
+ is not necessarily available everywhere.
+
+
+* bc/cocci (2016-06-28) 11 commits
+  (merged to 'next' on 2016-07-06 at f2e8e2a)
+ + diff: convert prep_temp_blob() to struct object_id
+ + merge-recursive: convert merge_recursive_generic() to object_id
+ + merge-recursive: convert leaf functions to use struct object_id
+ + merge-recursive: convert struct merge_file_info to object_id
+ + merge-recursive: convert struct stage_data to use object_id
+ + diff: rename struct diff_filespec's sha1_valid member
+ + diff: convert struct diff_filespec to struct object_id
+ + coccinelle: apply object_id Coccinelle transformations
+ + coccinelle: convert hashcpy() with null_sha1 to hashclr()
+ + contrib/coccinelle: add basic Coccinelle transforms
+ + hex: add oid_to_hex_r()
+ (this branch is used by js/am-3-merge-recursive-direct.)
+
+ Conversion from unsigned char sha1[20] to struct object_id
+ continues.
+
+
+* dg/subtree-rebase-test (2016-06-28) 1 commit
+  (merged to 'next' on 2016-07-06 at 4dec1ad)
+ + contrib/subtree: Add a test for subtree rebase that loses commits
+
+ Add a test to specify the desired behaviour that currently is not
+ available in "git rebase -Xsubtree=...".
+
+
+* dk/blame-move-no-reason-for-1-line-context (2016-05-29) 1 commit
+  (merged to 'next' on 2016-07-06 at 087490c)
+ + blame: require 0 context lines while finding moved lines with -M
+
+ "git blame -M" missed a single line that was moved within the file.
+
+
+* ew/gc-auto-pack-limit-fix (2016-06-27) 1 commit
+  (merged to 'next' on 2016-07-06 at aa023d3)
+ + gc: fix off-by-one error with gc.autoPackLimit
+
+ "gc.autoPackLimit" when set to 1 should not trigger a repacking
+ when there is only one pack, but the code counted poorly and did
+ so.
+
+
+* jk/big-and-future-archive-tar (2016-07-01) 5 commits
+  (merged to 'next' on 2016-07-06 at 89f3835)
+ + archive-tar: drop return value
+ + archive-tar: write extended headers for far-future mtime
+ + archive-tar: write extended headers for file sizes >= 8GB
+ + t5000: test tar files that overflow ustar headers
+ + t9300: factor out portable "head -c" replacement
+
+ "git archive" learned to handle files that are larger than 8GB and
+ commits far in the future than expressible by the traditional US-TAR
+ format.
+
+
+* jk/common-main (2016-07-06) 1 commit
+  (merged to 'next' on 2016-07-11 at 1c2228a)
+ + Merge branch 'jk/common-main-2.8' into jk/common-main
+ (this branch uses jk/common-main-2.8.)
+
+ There are certain house-keeping tasks that need to be performed at
+ the very beginning of any Git program, and programs that are not
+ built-in commands had to do them exactly the same way as "git"
+ potty does.  It was easy to make mistakes in one-off standalone
+ programs (like test helpers).  A common "main()" function that
+ calls cmd_main() of individual program has been introduced to
+ make it harder to make mistakes.
+
+
+* jk/common-main-2.8 (2016-07-06) 6 commits
+ + mingw: declare main()'s argv as const
+ + common-main: call git_setup_gettext()
+ + common-main: call restore_sigpipe_to_default()
+ + common-main: call sanitize_stdfds()
+ + common-main: call git_extract_argv0_path()
+ + add an extra level of indirection to main()
+ (this branch is used by jk/common-main.)
+
+ There are certain house-keeping tasks that need to be performed at
+ the very beginning of any Git program, and programs that are not
+ built-in commands had to do them exactly the same way as "git"
+ potty does.  It was easy to make mistakes in one-off standalone
+ programs (like test helpers).  A common "main()" function that
+ calls cmd_main() of individual program has been introduced to
+ make it harder to make mistakes.
+
+
+* jk/printf-format (2016-07-08) 3 commits
+  (merged to 'next' on 2016-07-11 at 731eafb)
+ + commit.c: remove print_commit_list()
+ + avoid using sha1_to_hex output as printf format
+ + walker: let walker_say take arbitrary formats
+
+ Code clean-up to avoid using a variable string that compilers may
+ feel untrustable as printf-style format given to write_file()
+ helper function.
+
+
+* jk/test-match-signal (2016-07-06) 4 commits
+  (merged to 'next' on 2016-07-11 at 54e1462)
+ + t/lib-git-daemon: use test_match_signal
+ + test_must_fail: use test_match_signal
+ + t0005: use test_match_signal as appropriate
+ + tests: factor portable signal check out of t0005
+
+ The test framework learned a new helper test_match_signal to
+ check an exit code from getting killed by an expected signal.
+
+
+* jk/write-file (2016-07-08) 9 commits
+  (merged to 'next' on 2016-07-11 at f51b449)
+ + branch: use write_file_buf instead of write_file
+ + use write_file_buf where applicable
+ + write_file: add format attribute
+ + write_file: add pointer+len variant
+ + write_file: use xopen
+ + write_file: drop "gently" form
+ + branch: use non-gentle write_file for branch description
+ + am: ignore return value of write_file()
+ + config: fix bogus fd check when setting up default config
+
+ General code clean-up around a helper function to write a
+ single-liner to a file.
+
+ While it is textually independent, jk/printf-format needs to be
+ merged before this one.
+
+
+* js/am-call-theirs-theirs-in-fallback-3way (2016-07-08) 1 commit
+  (merged to 'next' on 2016-07-11 at abae4bc)
+ + am: counteract gender bias
+ (this branch is used by js/am-3-merge-recursive-direct.)
+
+ One part of "git am" had an oddball helper function that called
+ stuff from outside "his" as opposed to calling what we have "ours",
+ which was not gender-neutral and also inconsistent with the rest of
+ the system where outside stuff is usuall called "theirs" in
+ contrast to "ours".
+
+
+* js/log-to-diffopt-file (2016-07-11) 12 commits
+  (merged to 'next' on 2016-07-13 at d7a0af7)
+ + mingw: fix the shortlog --output=<file> test
+  (merged to 'next' on 2016-07-06 at 39e7a5f)
+ + diff: do not color output when --color=auto and --output=<file> is given
+ + t4211: ensure that log respects --output=<file>
+ + shortlog: respect the --output=<file> setting
+ + format-patch: use stdout directly
+ + format-patch: avoid freopen()
+ + format-patch: explicitly switch off color when writing to files
+ + shortlog: support outputting to streams other than stdout
+ + graph: respect the diffopt.file setting
+ + line-log: respect diffopt's configured output file stream
+ + log-tree: respect diffopt's configured output file stream
+ + log: prepare log/log-tree to reuse the diffopt.close_file attribute
+
+ The commands in the "log/diff" family have had an FILE* pointer in the
+ data structure they pass around for a long time, but some codepaths
+ used to always write to the standard output.  As a preparatory step
+ to make "git format-patch" available to the internal callers, these
+ codepaths have been updated to consistently write into that FILE*
+ instead.
+
+
+* js/sign-empty-commit-fix (2016-06-29) 1 commit
+  (merged to 'next' on 2016-07-06 at 448da1b)
+ + commit -S: avoid invalid pointer with empty message
+
+ "git commit --amend --allow-empty-message -S" for a commit without
+ any message body could have misidentified where the header of the
+ commit object ends.
+
+
+* js/t3404-grammo-fix (2016-06-29) 1 commit
+  (merged to 'next' on 2016-07-06 at 4378654)
+ + t3404: fix a grammo (commands are ran -> commands are run)
+
+ Grammofix.
+
+
+* lf/recv-sideband-cleanup (2016-07-06) 2 commits
+  (merged to 'next' on 2016-07-06 at d527bcb)
+ + sideband.c: small optimization of strbuf usage
+ + sideband.c: refactor recv_sideband()
+
+ Code simplification.
+
+
+* ls/p4-tmp-refs (2016-07-08) 1 commit
+  (merged to 'next' on 2016-07-11 at 4af2d93)
+ + git-p4: place temporary refs used for branch import under refs/git-p4-tmp
+
+ "git p4" used a location outside $GIT_DIR/refs/ to place its
+ temporary branches, which has been moved to refs/git-p4-tmp/.
+
+
+* mm/doc-tt (2016-06-28) 7 commits
+  (merged to 'next' on 2016-07-06 at a8c74bd)
+ + doc: typeset HEAD and variants as literal
+ + CodingGuidelines: formatting HEAD in documentation
+ + doc: typeset long options with argument as literal
+ + doc: typeset '--' as literal
+ + doc: typeset long command-line options as literal
+ + doc: typeset short command-line options as literal
+ + Documentation/git-mv.txt: fix whitespace indentation
+
+ More mark-up updates to typeset strings that are expected to
+ literally typed by the end user in fixed-width font.
+
+
+* nd/connect-ssh-command-config (2016-07-06) 1 commit
+  (merged to 'next' on 2016-07-06 at 6eac316)
+ + connect: read $GIT_SSH_COMMAND from config file
+
+ A new configuration variable core.sshCommand has been added to
+ specify what value for GIT_SSH_COMMAND to use per repository.
+
+
+* nd/doc-new-command (2016-06-27) 1 commit
+  (merged to 'next' on 2016-07-06 at 1404b64)
+ + new-command.txt: correct the command description file
+
+ Typofix in a doc.
+
+
+* nd/fetch-ref-summary (2016-07-06) 5 commits
+  (merged to 'next' on 2016-07-11 at 379df9f)
+ + fetch: reduce duplicate in ref update status lines with placeholder
+ + fetch: align all "remote -> local" output
+ + fetch: change flag code for displaying tag update and deleted ref
+ + fetch: refactor ref update status formatting code
+ + git-fetch.txt: document fetch output
+
+ Improve the look of the way "git fetch" reports what happened to
+ each ref that was fetched.
+
+
+* nd/icase (2016-07-01) 12 commits
+  (merged to 'next' on 2016-07-11 at a00d080)
+ + grep.c: reuse "icase" variable
+ + diffcore-pickaxe: support case insensitive match on non-ascii
+ + diffcore-pickaxe: Add regcomp_or_die()
+ + grep/pcre: support utf-8
+ + gettext: add is_utf8_locale()
+ + grep/pcre: prepare locale-dependent tables for icase matching
+ + grep: rewrite an if/else condition to avoid duplicate expression
+ + grep/icase: avoid kwsset when -F is specified
+ + grep/icase: avoid kwsset on literal non-ascii strings
+ + test-regex: expose full regcomp() to the command line
+ + test-regex: isolate the bug test code
+ + grep: break down an "if" stmt in preparation for next changes
+
+ "git grep -i" has been taught to fold case in non-ascii locales
+ correctly.
 
- Discussion continues, expecting a further reroll.
- ($gmane/299156)
 
+* nd/ita-cleanup (2016-07-01) 3 commits
+  (merged to 'next' on 2016-07-06 at f15aeba)
+ + grep: fix grepping for "intent to add" files
+ + t7810-grep.sh: fix a whitespace inconsistency
+ + t7810-grep.sh: fix duplicated test name
 
-* ew/http-walker (2016-07-12) 3 commits
- - http-walker: reduce O(n) ops with doubly-linked list
- - http: avoid disconnecting on 404s for loose objects
- - http-walker: remove unused parameter from fetch_object
+ Git does not know what the contents in the index should be for a
+ path added with "git add -N" yet, so "git grep --cached" should not
+ show hits (or show lack of hits, with -L) in such a path, but that
+ logic does not apply to "git grep", i.e. searching in the working
+ tree files.  But we did so by mistake, which has been corrected.
 
- Optimize dumb http transport on the client side.
 
+* ps/rebase-i-auto-unstash-upon-abort (2016-06-29) 1 commit
+  (merged to 'next' on 2016-07-06 at 0fdcedb)
+ + rebase -i: restore autostash on abort
 
-* nd/log-decorate-color-head-arrow (2016-07-12) 1 commit
- - log: decorate HEAD -> branch with the same color for arrow and HEAD
+ "git rebase -i --autostash" did not restore the auto-stashed change
+ when the operation was aborted.
 
- An entry "git log --decorate" for the tip of the current branch is
- shown as "HEAD -> name" (where "name" is the name of the branch);
- paint the arrow in the same color as "HEAD", not in the color for
- commits.
 
- Comments?  Personally I find it more-or-less "Meh".
+* rs/help-c-source-with-gitattributes (2016-07-07) 1 commit
+  (merged to 'next' on 2016-07-11 at b90b7d0)
+ + .gitattributes: set file type for C files
 
+ The .c/.h sources are marked as such in our .gitattributes file so
+ that "git diff -W" and friends would work better.
 
-* rs/rm-strbuf-optim (2016-07-12) 1 commit
- - rm: reuse strbuf for all remove_dir_recursively() calls
 
- The use of strbuf in "git rm" to build filename to remove was a bit
- suboptimal, which has been fixed.
+* sb/submodule-parallel-fetch (2016-07-11) 3 commits
+  (merged to 'next' on 2016-07-11 at 4983ded)
+ + hoist out handle_nonblock function for xread and xwrite
+  (merged to 'next' on 2016-07-06 at de5fd35)
+ + xwrite: poll on non-blocking FDs
+ + xread: retry after poll on EAGAIN/EWOULDBLOCK
 
- Will merge to 'next'.
+ Fix recently introduced codepaths that are involved in parallel
+ submodule operations, which gave up on reading too early, and
+ could have wasted CPU while attempting to write under a corner
+ case condition.
 
 
-* rs/worktree-use-strbuf-absolute-path (2016-07-12) 1 commit
- - worktree: use strbuf_add_absolute_path() directly
+* va/i18n-even-more (2016-07-01) 39 commits
+  (merged to 'next' on 2016-07-01 at fa5e50e3)
+ + t5541: become resilient to GETTEXT_POISON
+  (merged to 'next' on 2016-06-28 at 5919dfa)
+ + i18n: branch: mark comment when editing branch description for translation
+ + i18n: unmark die messages for translation
+ + i18n: submodule: escape shell variables inside eval_gettext
+ + i18n: submodule: join strings marked for translation
+ + i18n: init-db: join message pieces
+ + i18n: remote: allow translations to reorder message
+ + i18n: remote: mark URL fallback text for translation
+ + i18n: standardise messages
+ + i18n: sequencer: add period to error message
+ + i18n: merge: change command option help to lowercase
+ + i18n: merge: mark messages for translation
+ + i18n: notes: mark options for translation
+ + i18n: notes: mark strings for translation
+ + i18n: transport-helper.c: change N_() call to _()
+ + i18n: bisect: mark strings for translation
+ + t5523: use test_i18ngrep for negation
+ + t4153: fix negated test_i18ngrep call
+ + t9003: become resilient to GETTEXT_POISON
+ + tests: unpack-trees: update to use test_i18n* functions
+ + tests: use test_i18n* functions to suppress false positives
+ + i18n: setup: mark strings for translation
+ + i18n: rebase-interactive: mark comments of squash for translation
+ + i18n: rebase-interactive: mark here-doc strings for translation
+ + i18n: rebase-interactive: mark strings for translation
+ + i18n: git-sh-setup.sh: mark strings for translation
+ + t6030: update to use test_i18ncmp
+ + i18n: bisect: simplify error message for i18n
+ + i18n: rebase: mark placeholder for translation
+ + i18n: rebase: fix marked string to use eval_gettext variant
+ + merge-octopus: use die shell function from git-sh-setup.sh
+ + i18n: merge-octopus: mark messages for translation
+ + i18n: sequencer: mark string for translation
+ + i18n: sequencer: mark entire sentences for translation
+ + i18n: transport: mark strings for translation
+ + i18n: advice: internationalize message for conflicts
+ + i18n: advice: mark string about detached head for translation
+ + i18n: builtin/remote.c: fix mark for translation
+ + Merge branch 'jc/t2300-setup' into HEAD
+ (this branch is used by js/am-3-merge-recursive-direct.)
 
- Code simplification.
+ More markings of messages for i18n, with updates to various tests
+ to pass GETTEXT_POISON tests.
 
- Will merge to 'next'.
+ One patch from the original submission dropped due to conflicts
+ with jk/upload-pack-hook, which is still in flux.
 
 --------------------------------------------------
 [Stalled]
@@ -205,15 +553,6 @@ of the repositories listed at
  Needs review.
 
 
-* tb/convert-peek-in-index (2016-07-07) 3 commits
- . correct ce_compare_data() in a middle of a merge
- . read-cache: factor out get_sha1_from_index() helper
- - convert: unify the "auto" handling of CRLF
- (this branch is tangled with jc/renormalize-merge-kill-safer-crlf.)
-
- Tentatively replaced with jc/renormalize-merge-kill-safer-crlf
-
-
 * sb/bisect (2016-04-15) 22 commits
  - SQUASH???
  - bisect: get back halfway shortcut
@@ -238,422 +577,336 @@ of the repositories listed at
  - bisect: allow 'bisect run' if no good commit is known
  - bisect: write about `bisect next` in documentation
 
- The internal algorithm used in "git bisect" to find the next commit
- to check has been optimized greatly.
-
- Expecting a reroll.
- ($gmane/291163)
-
-
-* sg/completion-updates (2016-02-28) 21 commits
- . completion: cache the path to the repository
- . completion: extract repository discovery from __gitdir()
- . completion: don't guard git executions with __gitdir()
- . completion: consolidate silencing errors from git commands
- . completion: don't use __gitdir() for git commands
- . completion: respect 'git -C <path>'
- . completion: fix completion after 'git -C <path>'
- . completion: don't offer commands when 'git --opt' needs an argument
- . rev-parse: add '--absolute-git-dir' option
- . completion: list short refs from a remote given as a URL
- . completion: don't list 'HEAD' when trying refs completion outside of a repo
- . completion: list refs from remote when remote's name matches a directory
- . completion: respect 'git --git-dir=<path>' when listing remote refs
- . completion: fix most spots not respecting 'git --git-dir=<path>'
- . completion: ensure that the repository path given on the command line exists
- . completion tests: add tests for the __git_refs() helper function
- . completion tests: check __gitdir()'s output in the error cases
- . completion tests: consolidate getting path of current working directory
- . completion tests: make the $cur variable local to the test helper functions
- . completion tests: don't add test cruft to the test repository
- . completion: improve __git_refs()'s in-code documentation
-
- Will be rerolled.
- ($gmane/287839)
-
-
-* ec/annotate-deleted (2015-11-20) 1 commit
- - annotate: skip checking working tree if a revision is provided
-
- Usability fix for annotate-specific "<file> <rev>" syntax with deleted
- files.
-
- Waiting for review.
-
-
-* dk/gc-more-wo-pack (2016-01-13) 4 commits
- - gc: clean garbage .bitmap files from pack dir
- - t5304: ensure non-garbage files are not deleted
- - t5304: test .bitmap garbage files
- - prepare_packed_git(): find more garbage
-
- Follow-on to dk/gc-idx-wo-pack topic, to clean up stale
- .bitmap and .keep files.
-
- Waiting for a reroll.
- ($gmane/284368).
-
-
-* jc/diff-b-m (2015-02-23) 5 commits
- . WIPWIP
- . WIP: diff-b-m
- - diffcore-rename: allow easier debugging
- - diffcore-rename.c: add locate_rename_src()
- - diffcore-break: allow debugging
-
- "git diff -B -M" produced incorrect patch when the postimage of a
- completely rewritten file is similar to the preimage of a removed
- file; such a resulting file must not be expressed as a rename from
- other place.
-
- The fix in this patch is broken, unfortunately.
- Will discard.
-
---------------------------------------------------
-[Cooking]
-
-* jh/clean-smudge-annex (2016-07-12) 9 commits
- - use smudgeToFile filter in recursive merge
- - use smudgeToFile filter in git am
- - better recovery from failure of smudgeToFile filter
- - warn on unusable smudgeToFile/cleanFromFile config
- - use smudgeToFile in git checkout etc
- - use cleanFromFile in git add
- - add smudgeToFile and cleanFromFile filter configs
- - clarify %f documentation
- - Merge branch 'cc/apply-am' into jh/clean-smudge-annex
- (this branch is used by js/am-3-merge-recursive-direct; uses cc/apply-am.)
-
- The interface to "clean/smudge" filters require Git to feed the
- whole contents via pipe, which is suboptimal for some applications.
- "cleanFromFile/smudgeToFile" commands are the moral equilvalents
- for these filters but they interact with the files on the
- filesystem directly.
-
- Will need to wait for all the topics this depends on graduate to 'master'.
-
-
-* js/ignore-space-at-eol (2016-07-11) 2 commits
- - diff: fix a double off-by-one with --ignore-space-at-eol
- - diff: demonstrate a bug with --patience and --ignore-space-at-eol
-
- An age old bug that caused "git diff --ignore-space-at-eol"
- misbehave has been fixed.
-
- Will merge to 'next'.
-
-
-* js/rebase-i-tests (2016-07-07) 3 commits
- - rebase -i: we allow extra spaces after fixup!/squash!
- - rebase -i: demonstrate a bug with --autosquash
- - t3404: add a test for the --gpg-sign option
-
- A few tests that specifically target "git rebase -i" have been
- added.
-
- Will merge to 'next'.
-
-
-* jc/renormalize-merge-kill-safer-crlf (2016-07-12) 2 commits
- - merge: avoid "safer crlf" during recording of merge results
- - convert: unify the "auto" handling of CRLF
- (this branch is tangled with tb/convert-peek-in-index.)
-
- "git merge" with renormalization did not work well with
- merge-recursive, due to "safer crlf" conversion kicking in when it
- shouldn't.
-
- Will merge to 'next', but extra set of eyes are appreciated.
-
-
-* rs/help-c-source-with-gitattributes (2016-07-07) 1 commit
-  (merged to 'next' on 2016-07-11 at b90b7d0)
- + .gitattributes: set file type for C files
-
- The .c/.h sources are marked as such in our .gitattributes file so
- that "git diff -W" and friends would work better.
-
- Will merge to 'master'.
-
-
-* rs/notes-merge-no-toctou (2016-07-07) 1 commit
- - notes-merge: use O_EXCL to avoid overwriting existing files
-
- "git notes merge" had a code to see if a path exists (and fails if
- it does) and then open the path for writing (when it doesn't).
- Replace it with open with O_EXCL.
-
- Will merge to 'next'.
-
-
-* rw/make-needs-librt (2016-07-11) 2 commits
- - config.mak.uname: define NEEDS_LIBRT under Linux, for now
- - Makefile: add NEEDS_LIBRT to optionally link with librt
-
- Makefile assumed that -lrt is always available on platforms that
- want to use clock_gettime() and CLOCK_MONOTONIC, which is not a
- case for recent Mac OS X.  The necessary symbols are often found in
- libc on many modern systems and having -lrt on the command line, as
- long as the library exists, had no effect, but when the platform
- removes librt.a that is a different matter--having -lrt will break
- the linkage.
-
- This change could be seen as a regression for those who do need to
- specify -lrt, as they now specifically ask for NEEDS_LIBRT when
- building. Hopefully they are in the minority these days.
-
- Will merge to 'next'.
-
-
-* jk/printf-format (2016-07-08) 3 commits
-  (merged to 'next' on 2016-07-11 at 731eafb)
- + commit.c: remove print_commit_list()
- + avoid using sha1_to_hex output as printf format
- + walker: let walker_say take arbitrary formats
+ The internal algorithm used in "git bisect" to find the next commit
+ to check has been optimized greatly.
 
- Code clean-up to avoid using a variable string that compilers may
- feel untrustable as printf-style format given to write_file()
- helper function.
+ Expecting a reroll.
+ ($gmane/291163)
 
- Will merge to 'master'.
 
+* sg/completion-updates (2016-02-28) 21 commits
+ . completion: cache the path to the repository
+ . completion: extract repository discovery from __gitdir()
+ . completion: don't guard git executions with __gitdir()
+ . completion: consolidate silencing errors from git commands
+ . completion: don't use __gitdir() for git commands
+ . completion: respect 'git -C <path>'
+ . completion: fix completion after 'git -C <path>'
+ . completion: don't offer commands when 'git --opt' needs an argument
+ . rev-parse: add '--absolute-git-dir' option
+ . completion: list short refs from a remote given as a URL
+ . completion: don't list 'HEAD' when trying refs completion outside of a repo
+ . completion: list refs from remote when remote's name matches a directory
+ . completion: respect 'git --git-dir=<path>' when listing remote refs
+ . completion: fix most spots not respecting 'git --git-dir=<path>'
+ . completion: ensure that the repository path given on the command line exists
+ . completion tests: add tests for the __git_refs() helper function
+ . completion tests: check __gitdir()'s output in the error cases
+ . completion tests: consolidate getting path of current working directory
+ . completion tests: make the $cur variable local to the test helper functions
+ . completion tests: don't add test cruft to the test repository
+ . completion: improve __git_refs()'s in-code documentation
 
-* jk/write-file (2016-07-08) 9 commits
-  (merged to 'next' on 2016-07-11 at f51b449)
- + branch: use write_file_buf instead of write_file
- + use write_file_buf where applicable
- + write_file: add format attribute
- + write_file: add pointer+len variant
- + write_file: use xopen
- + write_file: drop "gently" form
- + branch: use non-gentle write_file for branch description
- + am: ignore return value of write_file()
- + config: fix bogus fd check when setting up default config
+ Will be rerolled.
+ ($gmane/287839)
 
- General code clean-up around a helper function to write a
- single-liner to a file.
 
- Will merge to 'master'.
+* ec/annotate-deleted (2015-11-20) 1 commit
+ - annotate: skip checking working tree if a revision is provided
 
- While it is textually independent, jk/printf-format needs to be
merged before this one.
+ Usability fix for annotate-specific "<file> <rev>" syntax with deleted
files.
 
+ Waiting for review.
 
-* js/am-call-theirs-theirs-in-fallback-3way (2016-07-08) 1 commit
-  (merged to 'next' on 2016-07-11 at abae4bc)
- + am: counteract gender bias
- (this branch is used by js/am-3-merge-recursive-direct.)
 
- One part of "git am" had an oddball helper function that called
- stuff from outside "his" as opposed to calling what we have "ours",
- which was not gender-neutral and also inconsistent with the rest of
- the system where outside stuff is usuall called "theirs" in
- contrast to "ours".
+* dk/gc-more-wo-pack (2016-01-13) 4 commits
+ - gc: clean garbage .bitmap files from pack dir
+ - t5304: ensure non-garbage files are not deleted
+ - t5304: test .bitmap garbage files
+ - prepare_packed_git(): find more garbage
 
- Will merge to 'master'.
+ Follow-on to dk/gc-idx-wo-pack topic, to clean up stale
+ .bitmap and .keep files.
 
+ Waiting for a reroll.
+ ($gmane/284368).
 
-* ak/lazy-prereq-mktemp (2016-07-06) 1 commit
-  (merged to 'next' on 2016-07-11 at 66a9384)
- + t7610: test for mktemp before test execution
 
- A test that unconditionally used "mktemp" learned that the command
- is not necessarily available everywhere.
+* jc/diff-b-m (2015-02-23) 5 commits
+ . WIPWIP
+ . WIP: diff-b-m
+ - diffcore-rename: allow easier debugging
+ - diffcore-rename.c: add locate_rename_src()
+ - diffcore-break: allow debugging
 
- Will merge to 'master'.
+ "git diff -B -M" produced incorrect patch when the postimage of a
+ completely rewritten file is similar to the preimage of a removed
+ file; such a resulting file must not be expressed as a rename from
+ other place.
 
+ The fix in this patch is broken, unfortunately.
+ Will discard.
 
-* jk/difftool-in-subdir (2016-07-06) 1 commit
- - difftool: fix argument handling in subdirs
+--------------------------------------------------
+[Cooking]
 
- "git difftool <paths>..." started in a subdirectory failed to
- interpret the paths relative to that directory, which has been
- fixed.
+* js/am-3-merge-recursive-direct (2016-07-12) 21 commits
+ - merge-recursive: flush output buffer even when erroring out
+ - merge_trees(): ensure that the output buffer is released after calling it
+ - merge-recursive: offer an option to retain the output in 'obuf'
+ - merge-recursive: write the commit title in one go
+ - merge-recursive: flush output buffer before printing error messages
+ - am -3: use merge_recursive() directly again
+ - merge-recursive: switch to returning errors instead of dying
+ - merge-recursive: handle return values indicating errors
+ - merge-recursive: allow write_tree_from_memory() to error out
+ - merge-recursive: avoid returning a wholesale struct
+ - merge_recursive: abort properly upon errors
+ - prepare the builtins for a libified merge_recursive()
+ - merge-recursive: clarify code in was_tracked()
+ - die(_("BUG")): avoid translating bug messages
+ - die("bug"): report bugs consistently
+ - t5520: verify that `git pull --rebase` shows the advice when failing
+ - Merge branch 'jh/clean-smudge-annex' into HEAD
+ - Merge branch 'bc/cocci' into js/am-3-merge-recursive-direct
+ - Merge branch 'js/am-call-theirs-theirs-in-fallback-3way' into js/am-3-merge-recursive-direct
+ - Merge branch 'cc/apply-am' into js/am-3-merge-recursive-direct
+ - Merge branch 'va/i18n-even-more' into js/am-3-merge-recursive-direct
+ (this branch uses cc/apply-am and jh/clean-smudge-annex.)
 
- Favourably reviewed with some questions and a request for new tests.
- ($gmane/299319)
+ "git am -3" calls "git merge-recursive" when it needs to fall back
+ to a three-way merge; this call has been turned into an internal
+ subroutine call instead of spawning a separate subprocess.
 
+ Will be rerolled, unless Joey says something about the interaction
+ with the other topic.
 
-* nd/test-helpers (2016-07-11) 3 commits
- - t/test-lib.sh: fix running tests with --valgrind
- - Makefile: use VCSSVN_LIB to refer to svn library
- - Makefile: drop extra dependencies for test helpers
 
- Build clean-up.
+* ls/travis-enable-httpd-tests (2016-07-12) 1 commit
+  (merged to 'next' on 2016-07-13 at 06fa12e)
+ + travis-ci: enable web server tests t55xx on Linux
 
Will merge to 'next'.
Allow http daemon tests in Travis CI tests.
 
+ Will merge to 'master'.
 
-* dk/blame-move-no-reason-for-1-line-context (2016-05-29) 1 commit
-  (merged to 'next' on 2016-07-06 at 087490c)
- + blame: require 0 context lines while finding moved lines with -M
 
- "git blame -M" missed a single line that was moved within the file.
+* nd/cache-tree-ita (2016-07-18) 4 commits
+  (merged to 'next' on 2016-07-19 at 512fd96)
+ + cache-tree: do not generate empty trees as a result of all i-t-a subentries
+ + cache-tree.c: fix i-t-a entry skipping directory updates sometimes
+ + test-lib.sh: introduce and use $EMPTY_BLOB
+ + test-lib.sh: introduce and use $EMPTY_TREE
 
- We may want to squash a test or two to this commit.  Volunteers?
+ "git add -N dir/file && git write-tree" produced an incorrect tree
+ when there are other paths in the same directory that sorts after
+ "file".
 
+ Will merge to 'master'.
 
-* jk/common-main (2016-07-06) 1 commit
-  (merged to 'next' on 2016-07-11 at 1c2228a)
- + Merge branch 'jk/common-main-2.8' into jk/common-main
- (this branch uses jk/common-main-2.8.)
 
- Prepare jk/commin-main-2.8 topic to be mergeable to 2.9 and later.
+* nd/pack-ofs-4gb-limit (2016-07-13) 7 commits
+  (merged to 'next' on 2016-07-13 at 91e217d)
+ + fsck: use streaming interface for large blobs in pack
+ + pack-objects: do not truncate result in-pack object size on 32-bit systems
+ + index-pack: correct "offset" type in unpack_entry_data()
+ + index-pack: report correct bad object offsets even if they are large
+ + index-pack: correct "len" type in unpack_data()
+ + sha1_file.c: use type off_t* for object_info->disk_sizep
+ + pack-objects: pass length to check_pack_crc() without truncation
+
+ "git pack-objects" and "git index-pack" mostly operate with off_t
+ when talking about the offset of objects in a packfile, but there
+ were a handful of places that used "unsigned long" to hold that
+ value, leading to an unintended truncation.
 
  Will merge to 'master'.
 
 
-* jk/common-main-2.8 (2016-07-06) 6 commits
- + mingw: declare main()'s argv as const
- + common-main: call git_setup_gettext()
- + common-main: call restore_sigpipe_to_default()
- + common-main: call sanitize_stdfds()
- + common-main: call git_extract_argv0_path()
- + add an extra level of indirection to main()
- (this branch is used by jk/common-main.)
+* sb/push-options (2016-07-14) 4 commits
+  (merged to 'next' on 2016-07-19 at ee9a83a)
+ + add a test for push options
+ + push: accept push options
+ + receive-pack: implement advertising and receiving push options
+ + push options: {pre,post}-receive hook learns about push options
 
- There are certain house-keeping tasks that need to be performed at
- the very beginning of any Git program, and programs that are not
- built-in commands had to do them exactly the same way as "git"
- potty does.  It was easy to make mistakes in one-off standalone
- programs (like test helpers).  A common "main()" function that
- calls cmd_main() of individual program has been introduced to
- make it harder to make mistakes.
+ "git push" learned to accept and pass extra options to the
+ receiving end so that hooks can read and react to them.
 
+ Will merge to 'master'.
 
-* nd/ita-cleanup (2016-07-01) 3 commits
-  (merged to 'next' on 2016-07-06 at f15aeba)
- + grep: fix grepping for "intent to add" files
- + t7810-grep.sh: fix a whitespace inconsistency
- + t7810-grep.sh: fix duplicated test name
 
- Git does not know what the contents in the index should be for a
- path added with "git add -N" yet, so "git grep --cached" should not
- show hits (or show lack of hits, with -L) in such a path.  But we
- did by mistake, which has been corrected.
+* ew/http-walker (2016-07-18) 4 commits
+  (merged to 'next' on 2016-07-18 at a430a97)
+ + list: avoid incompatibility with *BSD sys/queue.h
+  (merged to 'next' on 2016-07-13 at 8585c03)
+ + http-walker: reduce O(n) ops with doubly-linked list
+ + http: avoid disconnecting on 404s for loose objects
+ + http-walker: remove unused parameter from fetch_object
+
+ Optimize dumb http transport on the client side.
 
  Will merge to 'master'.
 
 
-* dp/autoconf-curl-ssl (2016-06-28) 1 commit
- - ./configure.ac: detect SSL in libcurl using curl-config
+* nd/log-decorate-color-head-arrow (2016-07-12) 1 commit
+ - log: decorate HEAD -> branch with the same color for arrow and HEAD
 
- The ./configure script generated from configure.ac was taught how
- to detect support of SSL by libcurl better.
+ An entry "git log --decorate" for the tip of the current branch is
+ shown as "HEAD -> name" (where "name" is the name of the branch);
+ paint the arrow in the same color as "HEAD", not in the color for
+ commits.
 
Needs review.
Comments?  Personally I find it more-or-less "Meh".
 
 
-* js/sign-empty-commit-fix (2016-06-29) 1 commit
-  (merged to 'next' on 2016-07-06 at 448da1b)
- + commit -S: avoid invalid pointer with empty message
+* rs/rm-strbuf-optim (2016-07-12) 1 commit
+  (merged to 'next' on 2016-07-13 at 5b71fc8)
+ + rm: reuse strbuf for all remove_dir_recursively() calls
 
- "git commit --amend --allow-empty-message -S" for a commit without
- any message body could have misidentified where the header of the
- commit object ends.
+ The use of strbuf in "git rm" to build filename to remove was a bit
+ suboptimal, which has been fixed.
 
  Will merge to 'master'.
 
 
-* js/t3404-grammo-fix (2016-06-29) 1 commit
-  (merged to 'next' on 2016-07-06 at 4378654)
- + t3404: fix a grammo (commands are ran -> commands are run)
+* rs/worktree-use-strbuf-absolute-path (2016-07-12) 1 commit
+  (merged to 'next' on 2016-07-13 at e8c9c02)
+ + worktree: use strbuf_add_absolute_path() directly
 
Grammofix.
Code simplification.
 
  Will merge to 'master'.
 
 
-* ls/p4-tmp-refs (2016-07-08) 1 commit
-  (merged to 'next' on 2016-07-11 at 4af2d93)
- + git-p4: place temporary refs used for branch import under refs/git-p4-tmp
+* jh/clean-smudge-annex (2016-07-12) 9 commits
+ - use smudgeToFile filter in recursive merge
+ - use smudgeToFile filter in git am
+ - better recovery from failure of smudgeToFile filter
+ - warn on unusable smudgeToFile/cleanFromFile config
+ - use smudgeToFile in git checkout etc
+ - use cleanFromFile in git add
+ - add smudgeToFile and cleanFromFile filter configs
+ - clarify %f documentation
+ - Merge branch 'cc/apply-am' into jh/clean-smudge-annex
+ (this branch is used by js/am-3-merge-recursive-direct; uses cc/apply-am.)
 
- "git p4" used a location outside $GIT_DIR/refs/ to place its
- temporary branches, which has been moved to refs/git-p4-tmp/.
+ The interface to "clean/smudge" filters require Git to feed the
+ whole contents via pipe, which is suboptimal for some applications.
+ "cleanFromFile/smudgeToFile" commands are the moral equilvalents
+ for these filters but they interact with the files on the
+ filesystem directly.
 
- Will merge to 'master'.
+ Will need to wait for all the topics this depends on graduate to 'master'.
 
 
-* jc/pull-rebase-ff (2016-06-29) 1 commit
- -   pull: fast-forward "pull --rebase=true"
+* js/ignore-space-at-eol (2016-07-11) 2 commits
+  (merged to 'next' on 2016-07-13 at 429dd83)
+ + diff: fix a double off-by-one with --ignore-space-at-eol
+ + diff: demonstrate a bug with --patience and --ignore-space-at-eol
 
- "git pull --rebase", when there is no new commits on our side since
- we forked from the upstream, should be able to fast-forward without
- invoking "git rebase", but it didn't.
+ An age old bug that caused "git diff --ignore-space-at-eol"
+ misbehave has been fixed.
 
Needs a real log message and a few tests.
Will merge to 'master'.
 
 
-* ps/rebase-i-auto-unstash-upon-abort (2016-06-29) 1 commit
-  (merged to 'next' on 2016-07-06 at 0fdcedb)
- + rebase -i: restore autostash on abort
+* js/rebase-i-tests (2016-07-07) 3 commits
+  (merged to 'next' on 2016-07-13 at b06b28f)
+ + rebase -i: we allow extra spaces after fixup!/squash!
+ + rebase -i: demonstrate a bug with --autosquash
+ + t3404: add a test for the --gpg-sign option
 
- "git rebase -i --autostash" did not restore the auto-stashed change
when the operation was aborted.
+ A few tests that specifically target "git rebase -i" have been
added.
 
  Will merge to 'master'.
 
 
-* dg/subtree-rebase-test (2016-06-28) 1 commit
-  (merged to 'next' on 2016-07-06 at 4dec1ad)
- + contrib/subtree: Add a test for subtree rebase that loses commits
+* jc/renormalize-merge-kill-safer-crlf (2016-07-12) 2 commits
+  (merged to 'next' on 2016-07-13 at c243dd6)
+ + merge: avoid "safer crlf" during recording of merge results
+ + convert: unify the "auto" handling of CRLF
+ (this branch is tangled with tb/convert-peek-in-index.)
 
- This is just a test to specify the desired behaviour that currently
- is not available.
+ "git merge" with renormalization did not work well with
+ merge-recursive, due to "safer crlf" conversion kicking in when it
+ shouldn't.
 
  Will merge to 'master'.
 
 
-* jk/test-match-signal (2016-07-06) 4 commits
-  (merged to 'next' on 2016-07-11 at 54e1462)
- + t/lib-git-daemon: use test_match_signal
- + test_must_fail: use test_match_signal
- + t0005: use test_match_signal as appropriate
- + tests: factor portable signal check out of t0005
+* rs/notes-merge-no-toctou (2016-07-07) 1 commit
+  (merged to 'next' on 2016-07-13 at f08b530)
+ + notes-merge: use O_EXCL to avoid overwriting existing files
 
- The test framework learned a new helper test_match_signal to check
- an exit code from getting killed by an expected signal.
+ "git notes merge" had a code to see if a path exists (and fails if
+ it does) and then open the path for writing (when it doesn't).
+ Replace it with open with O_EXCL.
 
  Will merge to 'master'.
 
 
-* ah/unpack-trees-advice-messages (2016-06-27) 1 commit
-  (merged to 'next' on 2016-07-06 at 4254fc2)
- + unpack-trees: fix English grammar in do-this-before-that messages
+* rw/make-needs-librt (2016-07-11) 2 commits
+  (merged to 'next' on 2016-07-13 at 7fafd37)
+ + config.mak.uname: define NEEDS_LIBRT under Linux, for now
+ + Makefile: add NEEDS_LIBRT to optionally link with librt
 
- Grammofix.
+ Makefile assumed that -lrt is always available on platforms that
+ want to use clock_gettime() and CLOCK_MONOTONIC, which is not a
+ case for recent Mac OS X.  The necessary symbols are often found in
+ libc on many modern systems and having -lrt on the command line, as
+ long as the library exists, had no effect, but when the platform
+ removes librt.a that is a different matter--having -lrt will break
+ the linkage.
+
+ This change could be seen as a regression for those who do need to
+ specify -lrt, as they now specifically ask for NEEDS_LIBRT when
+ building. Hopefully they are in the minority these days.
 
  Will merge to 'master'.
 
 
-* ew/gc-auto-pack-limit-fix (2016-06-27) 1 commit
-  (merged to 'next' on 2016-07-06 at aa023d3)
- + gc: fix off-by-one error with gc.autoPackLimit
+* jk/difftool-in-subdir (2016-07-19) 4 commits
+ - difftool: use Git::* functions instead of passing around state
+ - SQUASH???
+ - difftool: avoid $GIT_DIR and $GIT_WORK_TREE
+ - difftool: fix argument handling in subdirs
 
- "gc.autoPackLimit" when set to 1 should not trigger a repacking
- when there is only one pack, but the code counted poorly and did
- so.
+ "git difftool <paths>..." started in a subdirectory failed to
+ interpret the paths relative to that directory, which has been
+ fixed.
+
+
+* nd/test-helpers (2016-07-11) 3 commits
+  (merged to 'next' on 2016-07-19 at 78ef465)
+ + t/test-lib.sh: fix running tests with --valgrind
+ + Makefile: use VCSSVN_LIB to refer to svn library
+ + Makefile: drop extra dependencies for test helpers
+
+ Build clean-up.
 
  Will merge to 'master'.
 
 
-* nd/connect-ssh-command-config (2016-07-06) 1 commit
-  (merged to 'next' on 2016-07-06 at 6eac316)
- + connect: read $GIT_SSH_COMMAND from config file
+* dp/autoconf-curl-ssl (2016-06-28) 1 commit
+ - ./configure.ac: detect SSL in libcurl using curl-config
 
- A new configuration variable core.sshCommand to specify what value
for GIT_SSH_COMMAND to use per repository.
+ The ./configure script generated from configure.ac was taught how
to detect support of SSL by libcurl better.
 
Will merge to 'master'.
Needs review.
 
 
-* nd/doc-new-command (2016-06-27) 1 commit
-  (merged to 'next' on 2016-07-06 at 1404b64)
- + new-command.txt: correct the command description file
+* jc/pull-rebase-ff (2016-06-29) 1 commit
+ -   pull: fast-forward "pull --rebase=true"
 
- Typofix in a doc.
+ "git pull --rebase", when there is no new commits on our side since
+ we forked from the upstream, should be able to fast-forward without
+ invoking "git rebase", but it didn't.
 
Will merge to 'master'.
Needs a real log message and a few tests.
 
 
 * po/range-doc (2016-07-01) 3 commits
@@ -671,53 +924,9 @@ of the repositories listed at
  review discussion.  Otherwise looked good.
 
 
-* sb/submodule-parallel-fetch (2016-07-11) 3 commits
-  (merged to 'next' on 2016-07-11 at 4983ded)
- + hoist out handle_nonblock function for xread and xwrite
-  (merged to 'next' on 2016-07-06 at de5fd35)
- + xwrite: poll on non-blocking FDs
- + xread: retry after poll on EAGAIN/EWOULDBLOCK
-
- Fix a recently introduced codepaths that are involved in parallel
- submodule operations, which gave up on reading too early, and
- could have wasted CPU while attempting to write under a corner case
- condition.
-
- Will merge to 'master'.
-
-
-* mm/doc-tt (2016-06-28) 7 commits
-  (merged to 'next' on 2016-07-06 at a8c74bd)
- + doc: typeset HEAD and variants as literal
- + CodingGuidelines: formatting HEAD in documentation
- + doc: typeset long options with argument as literal
- + doc: typeset '--' as literal
- + doc: typeset long command-line options as literal
- + doc: typeset short command-line options as literal
- + Documentation/git-mv.txt: fix whitespace indentation
-
- More mark-up updates to typeset strings that are expected to
- literally typed by the end user in fixed-width font.
-
- Will merge to 'master'.
-
-
-* nd/fetch-ref-summary (2016-07-06) 5 commits
-  (merged to 'next' on 2016-07-11 at 379df9f)
- + fetch: reduce duplicate in ref update status lines with placeholder
- + fetch: align all "remote -> local" output
- + fetch: change flag code for displaying tag update and deleted ref
- + fetch: refactor ref update status formatting code
- + git-fetch.txt: document fetch output
-
- Improve the look of the way "git fetch" reports what happened to
- each ref that was fetched.
-
- Will merge to 'master'.
-
-
 * ex/deprecate-empty-pathspec-as-match-all (2016-06-22) 1 commit
- - pathspec: warn on empty strings as pathspec
+  (merged to 'next' on 2016-07-13 at d9ca7fb)
+ + pathspec: warn on empty strings as pathspec
 
  An empty string used as a pathspec element has always meant
  'everything matches', but it is too easy to write a script that
@@ -730,28 +939,7 @@ of the repositories listed at
  eventually the warning can be turned into a hard error, upgrading
  the deprecation into removal of this (mis)feature.
 
- Will merge to 'next'.
-
-
-* nd/icase (2016-07-01) 12 commits
-  (merged to 'next' on 2016-07-11 at a00d080)
- + grep.c: reuse "icase" variable
- + diffcore-pickaxe: support case insensitive match on non-ascii
- + diffcore-pickaxe: Add regcomp_or_die()
- + grep/pcre: support utf-8
- + gettext: add is_utf8_locale()
- + grep/pcre: prepare locale-dependent tables for icase matching
- + grep: rewrite an if/else condition to avoid duplicate expression
- + grep/icase: avoid kwsset when -F is specified
- + grep/icase: avoid kwsset on literal non-ascii strings
- + test-regex: expose full regcomp() to the command line
- + test-regex: isolate the bug test code
- + grep: break down an "if" stmt in preparation for next changes
-
- "git grep -i" has been taught to fold case in non-ascii locales
- correctly.
-
- Will merge to 'master'.
+ Will hold to see if people scream.
 
 
 * mh/ref-store (2016-06-20) 38 commits
@@ -803,88 +991,18 @@ of the repositories listed at
 
 
 * mh/update-ref-errors (2016-06-20) 6 commits
- - lock_ref_for_update(): avoid a symref resolution
- - lock_ref_for_update(): make error handling more uniform
- - t1404: add more tests of update-ref error handling
- - t1404: document function test_update_rejected
- - t1404: remove "prefix" argument to test_update_rejected
- - t1404: rename file to t1404-update-ref-errors.sh
+  (merged to 'next' on 2016-07-13 at 53482fa)
+ + lock_ref_for_update(): avoid a symref resolution
+ + lock_ref_for_update(): make error handling more uniform
+ + t1404: add more tests of update-ref error handling
+ + t1404: document function test_update_rejected
+ + t1404: remove "prefix" argument to test_update_rejected
+ + t1404: rename file to t1404-update-ref-errors.sh
  (this branch uses mh/split-under-lock; is tangled with mh/ref-iterators and mh/ref-store.)
 
  Error handling in the codepaths that updates refs has been
  improved.
 
- Will merge to 'next'.
-
-
-* js/log-to-diffopt-file (2016-07-11) 12 commits
- - mingw: fix the shortlog --output=<file> test
-  (merged to 'next' on 2016-07-06 at 39e7a5f)
- + diff: do not color output when --color=auto and --output=<file> is given
- + t4211: ensure that log respects --output=<file>
- + shortlog: respect the --output=<file> setting
- + format-patch: use stdout directly
- + format-patch: avoid freopen()
- + format-patch: explicitly switch off color when writing to files
- + shortlog: support outputting to streams other than stdout
- + graph: respect the diffopt.file setting
- + line-log: respect diffopt's configured output file stream
- + log-tree: respect diffopt's configured output file stream
- + log: prepare log/log-tree to reuse the diffopt.close_file attribute
-
- The commands in the "log/diff" family had an FILE* pointer in the
- data structure they pass around for a long time, but some codepaths
- used to always write to the standard output.  As a preparatory step
- to make "git format-patch" available to the internal callers, these
- codepaths have been updated to consistently write into that FILE*
- instead.
-
- Will merge to 'master'.
-
-
-* bc/cocci (2016-06-28) 11 commits
-  (merged to 'next' on 2016-07-06 at f2e8e2a)
- + diff: convert prep_temp_blob() to struct object_id
- + merge-recursive: convert merge_recursive_generic() to object_id
- + merge-recursive: convert leaf functions to use struct object_id
- + merge-recursive: convert struct merge_file_info to object_id
- + merge-recursive: convert struct stage_data to use object_id
- + diff: rename struct diff_filespec's sha1_valid member
- + diff: convert struct diff_filespec to struct object_id
- + coccinelle: apply object_id Coccinelle transformations
- + coccinelle: convert hashcpy() with null_sha1 to hashclr()
- + contrib/coccinelle: add basic Coccinelle transforms
- + hex: add oid_to_hex_r()
- (this branch is used by js/am-3-merge-recursive-direct.)
-
- Conversion from unsigned char sha1[20] to struct object_id
- continues.
-
- Will merge to 'master'.
-
-
-* jk/big-and-future-archive-tar (2016-07-01) 5 commits
-  (merged to 'next' on 2016-07-06 at 89f3835)
- + archive-tar: drop return value
- + archive-tar: write extended headers for far-future mtime
- + archive-tar: write extended headers for file sizes >= 8GB
- + t5000: test tar files that overflow ustar headers
- + t9300: factor out portable "head -c" replacement
-
- "git archive" learned to handle files that are larger than 8GB and
- commits far in the future than expressible by the traditional US-TAR
- format.
-
- Will merge to 'master'.
-
-
-* lf/recv-sideband-cleanup (2016-07-06) 2 commits
-  (merged to 'next' on 2016-07-06 at d527bcb)
- + sideband.c: small optimization of strbuf usage
- + sideband.c: refactor recv_sideband()
-
- Code simplification.
-
  Will merge to 'master'.
 
 
@@ -961,25 +1079,26 @@ of the repositories listed at
 
 
 * mh/ref-iterators (2016-06-20) 13 commits
- - for_each_reflog(): reimplement using iterators
- - dir_iterator: new API for iterating over a directory tree
- - for_each_reflog(): don't abort for bad references
- - do_for_each_ref(): reimplement using reference iteration
- - refs: introduce an iterator interface
- - ref_resolves_to_object(): new function
- - entry_resolves_to_object(): rename function from ref_resolves_to_object()
- - get_ref_cache(): only create an instance if there is a submodule
- - remote rm: handle symbolic refs correctly
- - delete_refs(): add a flags argument
- - refs: use name "prefix" consistently
- - do_for_each_ref(): move docstring to the header file
- - refs: remove unnecessary "extern" keywords
+  (merged to 'next' on 2016-07-13 at a5b4e62)
+ + for_each_reflog(): reimplement using iterators
+ + dir_iterator: new API for iterating over a directory tree
+ + for_each_reflog(): don't abort for bad references
+ + do_for_each_ref(): reimplement using reference iteration
+ + refs: introduce an iterator interface
+ + ref_resolves_to_object(): new function
+ + entry_resolves_to_object(): rename function from ref_resolves_to_object()
+ + get_ref_cache(): only create an instance if there is a submodule
+ + remote rm: handle symbolic refs correctly
+ + delete_refs(): add a flags argument
+ + refs: use name "prefix" consistently
+ + do_for_each_ref(): move docstring to the header file
+ + refs: remove unnecessary "extern" keywords
  (this branch is used by mh/ref-store; uses mh/split-under-lock; is tangled with mh/update-ref-errors.)
 
  The API to iterate over all the refs (i.e. for_each_ref(), etc.)
  has been revamped.
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
 
 * mh/connect (2016-06-06) 10 commits
@@ -1000,73 +1119,21 @@ of the repositories listed at
  Comments?
 
 
-* va/i18n-even-more (2016-07-01) 39 commits
-  (merged to 'next' on 2016-07-01 at fa5e50e3)
- + t5541: become resilient to GETTEXT_POISON
-  (merged to 'next' on 2016-06-28 at 5919dfa)
- + i18n: branch: mark comment when editing branch description for translation
- + i18n: unmark die messages for translation
- + i18n: submodule: escape shell variables inside eval_gettext
- + i18n: submodule: join strings marked for translation
- + i18n: init-db: join message pieces
- + i18n: remote: allow translations to reorder message
- + i18n: remote: mark URL fallback text for translation
- + i18n: standardise messages
- + i18n: sequencer: add period to error message
- + i18n: merge: change command option help to lowercase
- + i18n: merge: mark messages for translation
- + i18n: notes: mark options for translation
- + i18n: notes: mark strings for translation
- + i18n: transport-helper.c: change N_() call to _()
- + i18n: bisect: mark strings for translation
- + t5523: use test_i18ngrep for negation
- + t4153: fix negated test_i18ngrep call
- + t9003: become resilient to GETTEXT_POISON
- + tests: unpack-trees: update to use test_i18n* functions
- + tests: use test_i18n* functions to suppress false positives
- + i18n: setup: mark strings for translation
- + i18n: rebase-interactive: mark comments of squash for translation
- + i18n: rebase-interactive: mark here-doc strings for translation
- + i18n: rebase-interactive: mark strings for translation
- + i18n: git-sh-setup.sh: mark strings for translation
- + t6030: update to use test_i18ncmp
- + i18n: bisect: simplify error message for i18n
- + i18n: rebase: mark placeholder for translation
- + i18n: rebase: fix marked string to use eval_gettext variant
- + merge-octopus: use die shell function from git-sh-setup.sh
- + i18n: merge-octopus: mark messages for translation
- + i18n: sequencer: mark string for translation
- + i18n: sequencer: mark entire sentences for translation
- + i18n: transport: mark strings for translation
- + i18n: advice: internationalize message for conflicts
- + i18n: advice: mark string about detached head for translation
- + i18n: builtin/remote.c: fix mark for translation
- + Merge branch 'jc/t2300-setup' into HEAD
- (this branch is used by js/am-3-merge-recursive-direct.)
-
- More markings of messages for i18n, with updates to various tests
- to pass GETTEXT_POISON tests.
-
- One patch from the original submission dropped due to conflicts
- with jk/upload-pack-hook, which is still in flux.
-
- Will merge to 'master'.
-
-
 * nd/worktree-lock (2016-07-08) 6 commits
- - worktree.c: find_worktree() search by path suffix
- - worktree: add "unlock" command
- - worktree: add "lock" command
- - worktree.c: add is_worktree_locked()
- - worktree.c: add is_main_worktree()
- - worktree.c: add find_worktree()
+  (merged to 'next' on 2016-07-13 at c768a85)
+ + worktree.c: find_worktree() search by path suffix
+ + worktree: add "unlock" command
+ + worktree: add "lock" command
+ + worktree.c: add is_worktree_locked()
+ + worktree.c: add is_main_worktree()
+ + worktree.c: add find_worktree()
 
  "git worktree prune" protected worktrees that are marked as
  "locked" by creating a file in a known location.  "git worktree"
  command learned a dedicated command pair to create and remoev such
  a file, so that the users do not have to do this with editor.
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
 
 * sb/submodule-default-paths (2016-06-20) 5 commits
@@ -1125,6 +1192,10 @@ of the repositories listed at
 
  GSoC "bisect" topic.
 
+ Are people happy with this version?  How much of the planned
+ "porting" is finished by this part of the work?  How much more to
+ go?
+
 
 * sb/pathspec-label (2016-06-03) 6 commits
  - pathspec: disable preload-index when attribute pathspec magic is in use
@@ -1143,45 +1214,46 @@ of the repositories listed at
 
 
 * mh/split-under-lock (2016-06-13) 33 commits
- - lock_ref_sha1_basic(): only handle REF_NODEREF mode
- - commit_ref_update(): remove the flags parameter
- - lock_ref_for_update(): don't resolve symrefs
- - lock_ref_for_update(): don't re-read non-symbolic references
- - refs: resolve symbolic refs first
- - ref_transaction_update(): check refname_is_safe() at a minimum
- - unlock_ref(): move definition higher in the file
- - lock_ref_for_update(): new function
- - add_update(): initialize the whole ref_update
- - verify_refname_available(): adjust constness in declaration
- - refs: don't dereference on rename
- - refs: allow log-only updates
- - delete_branches(): use resolve_refdup()
- - ref_transaction_commit(): correctly report close_ref() failure
- - ref_transaction_create(): disallow recursive pruning
- - refs: make error messages more consistent
- - lock_ref_sha1_basic(): remove unneeded local variable
- - read_raw_ref(): move docstring to header file
- - read_raw_ref(): improve docstring
- - read_raw_ref(): rename symref argument to referent
- - read_raw_ref(): clear *type at start of function
- - read_raw_ref(): rename flags argument to type
- - ref_transaction_commit(): remove local variables n and updates
- - rename_ref(): remove unneeded local variable
- - commit_ref_update(): write error message to *err, not stderr
- - refname_is_safe(): insist that the refname already be normalized
- - refname_is_safe(): don't allow the empty string
- - refname_is_safe(): use skip_prefix()
- - remove_dir_recursively(): add docstring
- - safe_create_leading_directories(): improve docstring
- - read_raw_ref(): don't get confused by an empty directory
- - commit_ref(): if there is an empty dir in the way, delete it
- - t1404: demonstrate a bug resolving references
+  (merged to 'next' on 2016-07-13 at aa598af)
+ + lock_ref_sha1_basic(): only handle REF_NODEREF mode
+ + commit_ref_update(): remove the flags parameter
+ + lock_ref_for_update(): don't resolve symrefs
+ + lock_ref_for_update(): don't re-read non-symbolic references
+ + refs: resolve symbolic refs first
+ + ref_transaction_update(): check refname_is_safe() at a minimum
+ + unlock_ref(): move definition higher in the file
+ + lock_ref_for_update(): new function
+ + add_update(): initialize the whole ref_update
+ + verify_refname_available(): adjust constness in declaration
+ + refs: don't dereference on rename
+ + refs: allow log-only updates
+ + delete_branches(): use resolve_refdup()
+ + ref_transaction_commit(): correctly report close_ref() failure
+ + ref_transaction_create(): disallow recursive pruning
+ + refs: make error messages more consistent
+ + lock_ref_sha1_basic(): remove unneeded local variable
+ + read_raw_ref(): move docstring to header file
+ + read_raw_ref(): improve docstring
+ + read_raw_ref(): rename symref argument to referent
+ + read_raw_ref(): clear *type at start of function
+ + read_raw_ref(): rename flags argument to type
+ + ref_transaction_commit(): remove local variables n and updates
+ + rename_ref(): remove unneeded local variable
+ + commit_ref_update(): write error message to *err, not stderr
+ + refname_is_safe(): insist that the refname already be normalized
+ + refname_is_safe(): don't allow the empty string
+ + refname_is_safe(): use skip_prefix()
+ + remove_dir_recursively(): add docstring
+ + safe_create_leading_directories(): improve docstring
+ + read_raw_ref(): don't get confused by an empty directory
+ + commit_ref(): if there is an empty dir in the way, delete it
+ + t1404: demonstrate a bug resolving references
  (this branch is used by mh/ref-iterators, mh/ref-store and mh/update-ref-errors.)
 
  Further preparatory work on the refs API before the pluggable
  backend series can land.
 
- Will merge to 'next'.
+ Will merge to 'master'.
 
 
 * kn/ref-filter-branch-list (2016-05-17) 17 commits
@@ -1238,10 +1310,8 @@ of the repositories listed at
  optionally interface with the watchman daemon to further reduce the
  refresh cost.
 
- Will merge to 'next'.
-
- Is everybody happy with this version?
- At v14.
+ Not quite ready yet, it seems.
+ ($gmane/298949, $gmane/299506)
 
 
 * jc/bundle (2016-03-03) 6 commits
@@ -1281,3 +1351,12 @@ of the repositories listed at
  . git-svn: warn instead of dying when commit data is missing
 
  Pulled directly from upstream hence discarded.
+
+
+* tb/convert-peek-in-index (2016-07-07) 3 commits
+ . correct ce_compare_data() in a middle of a merge
+ . read-cache: factor out get_sha1_from_index() helper
+ + convert: unify the "auto" handling of CRLF
+ (this branch is tangled with jc/renormalize-merge-kill-safer-crlf.)
+
+ Discarded and replaced by jc/renormalize-merge-kill-safer-crlf