To: git@vger.kernel.org
Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (Feb 2015, #03; Wed, 11)
-X-master-at: 18d0fec24027ac226dc2c4df2b955eef2a16462a
-X-next-at: f4dfab7ad497860623d9e20dfd5586a410cf6ec6
+Subject: What's cooking in git.git (Feb 2015, #04; Tue, 17)
+X-master-at: 3188ab3af60df6ace996d3985e8f1ca1ed3cbda5
+X-next-at: 7185a7e9c0f380b366991f3563e613dcf68b776f
-What's cooking in git.git (Feb 2015, #03; Wed, 11)
+What's cooking in git.git (Feb 2015, #04; Tue, 17)
--------------------------------------------------
Here are the topics that have been cooking. Commits prefixed with
'-' are only in 'pu' (proposed updates) while commits prefixed with
'+' are in 'next'.
-Git 2.3 is out, and the first batch of topics that have been cooking
-in the 'next' branch are now in the 'master' branch. The 'next'
-branch will be rewound shortly but not yet.
+The second batch of topics have been merged to 'master'. I am
+tempted to start discarding topics in the Stalled category that
+haven't seen much reviews and discussions on for a long time.
You can find the changes described here in the integration branches
of the repositories listed at
--------------------------------------------------
[Graduated to "master"]
-* ah/usage-strings (2015-01-14) 1 commit
- (merged to 'next' on 2015-01-22 at bfa5bab)
- + standardize usage info string format
+* ak/add-i-empty-candidates (2015-01-22) 1 commit
+ (merged to 'next' on 2015-02-12 at 0d3cc64)
+ + add -i: return from list_and_choose if there is no candidate
+ The interactive "show a list and let the user choose from it"
+ interface "add -i" used showed and prompted to the user even when
+ the candidate list was empty, against which the only "choice" the
+ user could have made was to choose nothing.
-* ak/typofixes (2015-01-21) 2 commits
- (merged to 'next' on 2015-01-22 at e36f25a)
- + t/lib-terminal.sh: fix typo
- + pack-bitmap: fix typo
+* jc/apply-ws-fix-expands (2015-01-22) 3 commits
+ (merged to 'next' on 2015-02-12 at 9a45b66)
+ + apply: count the size of postimage correctly
+ + apply: make update_pre_post_images() sanity check the given postlen
+ + apply.c: typofix
+ (this branch is used by jc/apply-ws-fix-expands-report.)
-* bc/http-fallback-to-password-after-krb-fails (2015-01-07) 1 commit
- (merged to 'next' on 2015-01-12 at 4c67038)
- + remote-curl: fall back to Basic auth if Negotiate fails
+ "git apply --whitespace=fix" used to under-allocate the memory
+ when the fix resulted in a longer text than the original patch.
- After attempting and failing a password-less authentication
- (e.g. kerberos), libcURL refuses to fall back to password based
- Basic authentication without a bit of help/encouragement.
+* jc/diff-format-doc (2015-01-28) 1 commit
+ (merged to 'next' on 2015-02-12 at 72a018a)
+ + diff-format doc: a score can follow M for rewrite
-* cj/log-invert-grep (2015-01-13) 1 commit
- (merged to 'next' on 2015-01-13 at c908e99)
- + log: teach --invert-grep option
+ The documentation incorrectly said that C(opy) and R(ename) are the
+ only ones that can be followed by the score number in the output in
+ the --raw format.
-* dk/format-patch-ignore-diff-submodule (2015-01-07) 2 commits
- (merged to 'next' on 2015-01-12 at 6b4605b)
- + format-patch: ignore diff.submodule setting
- + t4255: test am submodule with diff.submodule
+* jc/doc-log-rev-list-options (2015-01-23) 1 commit
+ (merged to 'next' on 2015-02-12 at 614331f)
+ + Documentation: what does "git log --indexed-objects" even mean?
- Setting diff.submodule to 'log' made "git format-patch" produce
- broken patches.
+ "git log --help" used to show rev-list options that are irrelevant
+ to the "log" command.
-* jc/coding-guidelines (2015-01-15) 1 commit
- (merged to 'next' on 2015-01-22 at 3c96639)
- + CodingGuidelines: clarify C #include rules
+* jc/t4122-use-test-write-lines (2015-01-28) 1 commit
+ (merged to 'next' on 2015-02-12 at 3ceaae3)
+ + t4122: use test_write_lines from test-lib-functions
-* jc/pretty-format-doc (2015-01-15) 1 commit
- (merged to 'next' on 2015-01-22 at 2a81ecc)
- + "log --pretty" documentation: do not forget "tformat:"
+* jk/dumb-http-idx-fetch-fix (2015-01-27) 1 commit
+ (merged to 'next' on 2015-02-12 at 6338345)
+ + dumb-http: do not pass NULL path to parse_pack_index
+ A broken pack .idx file in the receiving repository prevented the
+ dumb http transport from fetching a good copy of it from the other
+ side.
-* jc/push-to-checkout (2015-01-08) 2 commits
- (merged to 'next' on 2015-01-12 at e64df63)
- + receive-pack: support push-to-checkout hook
- + receive-pack: refactor updateInstead codepath
- Extending the js/push-to-deploy topic, the behaviour of "git push"
- when updating the working tree and the index with an update to the
- branch that is checked out can be tweaked by push-to-checkout hook.
+* jk/remote-curl-an-array-in-struct-cannot-be-null (2015-01-28) 1 commit
+ (merged to 'next' on 2015-02-12 at 669040d)
+ + do not check truth value of flex arrays
+ Fix a misspelled conditional that is always true.
-* jc/unused-symbols (2015-01-15) 8 commits
- (merged to 'next' on 2015-01-22 at 77fd5f0)
- + shallow.c: make check_shallow_file_for_update() static
- + remote.c: make clear_cas_option() static
- + urlmatch.c: make match_urls() static
- + revision.c: make save_parents() and free_saved_parents() static
- + line-log.c: make line_log_data_init() static
- + pack-bitmap.c: make pack_bitmap_filename() static
- + prompt.c: remove git_getpass() nobody uses
- + http.c: make finish_active_slot() and handle_curl_result() static
- Mark file-local symbols as "static", and drop functions that nobody
- uses.
+* jk/status-read-branch-name-fix (2015-01-28) 1 commit
+ (merged to 'next' on 2015-02-12 at 1af96a9)
+ + read_and_strip_branch: fix typo'd address-of operator
+ Code to read branch name from various files in .git/ directory
+ would have misbehaved if the code to write them left an empty file.
-* jk/blame-commit-label (2015-01-13) 5 commits
- (merged to 'next' on 2015-01-15 at 1b32e21)
- + blame.c: fix garbled error message
- + use xstrdup_or_null to replace ternary conditionals
- + builtin/commit.c: use xstrdup_or_null instead of envdup
- + builtin/apply.c: use xstrdup_or_null instead of null_strdup
- + git-compat-util: add xstrdup_or_null helper
+* ks/rebase-i-abbrev (2015-01-22) 1 commit
+ (merged to 'next' on 2015-02-12 at 35c3739)
+ + rebase -i: use full object name internally throughout the script
-* jn/rerere-fail-on-auto-update-failure (2015-01-08) 1 commit
- (merged to 'next' on 2015-01-12 at 313c449)
- + rerere: error out on autoupdate failure
+ The insn sheet "git rebase -i" creates did not fully honor
+ core.abbrev settings.
- "git rerere" (invoked internally from many mergy operations) did
- not correctly signal errors when told to update the working tree
- files and failed to do so for whatever reason.
+* mg/commit-author-no-match-malformed-message (2015-01-26) 1 commit
+ (merged to 'next' on 2015-02-12 at 200cd9c)
+ + commit: reword --author error message
-* km/gettext-n (2015-01-12) 1 commit
- (merged to 'next' on 2015-01-12 at 0cbbf4a)
- + gettext.h: add parentheses around N_ expansion if supported
+ The error message from "git commit", when a non-existing author
+ name was given as value to the "--author=" parameter, has been
+ reworded to avoid misunderstanding.
-* ld/p4-exclude-in-sync (2015-01-28) 1 commit
- (merged to 'next' on 2015-02-05 at ab410a1)
- + git-p4: support excluding paths on sync
+* mg/push-repo-option-doc (2015-01-28) 1 commit
+ (merged to 'next' on 2015-02-12 at 021ec32)
+ + git-push.txt: document the behavior of --repo
+ The "git push" documentation made the "--repo=<there>" option
+ easily misunderstood.
-* ld/p4-submit-hint (2015-01-23) 1 commit
- (merged to 'next' on 2015-01-23 at ed972d3)
- + git-p4: correct --prepare-p4-only instructions
+* mh/deref-symref-over-helper-transport (2015-01-21) 1 commit
+ (merged to 'next' on 2015-02-12 at de36191)
+ + transport-helper: do not request symbolic refs to remote helpers
-* mh/reflog-expire (2014-12-22) 24 commits
- (merged to 'next' on 2015-01-12 at 12a7dff)
- + refs.c: let fprintf handle the formatting
- + refs.c: don't expose the internal struct ref_lock in the header file
- + lock_any_ref_for_update(): inline function
- + refs.c: remove unlock_ref/close_ref/commit_ref from the refs api
- + reflog_expire(): new function in the reference API
- + expire_reflog(): treat the policy callback data as opaque
- + Move newlog and last_kept_sha1 to "struct expire_reflog_cb"
- + expire_reflog(): move rewrite to flags argument
- + expire_reflog(): move verbose to flags argument
- + expire_reflog(): pass flags through to expire_reflog_ent()
- + struct expire_reflog_cb: a new callback data type
- + Rename expire_reflog_cb to expire_reflog_policy_cb
- + expire_reflog(): move updateref to flags argument
- + expire_reflog(): move dry_run to flags argument
- + expire_reflog(): add a "flags" argument
- + expire_reflog(): extract two policy-related functions
- + Extract function should_expire_reflog_ent()
- + expire_reflog(): use a lock_file for rewriting the reflog file
- + expire_reflog(): return early if the reference has no reflog
- + expire_reflog(): rename "ref" parameter to "refname"
- + expire_reflog(): it's not an each_ref_fn anymore
- + refs.c: add a function to append a reflog entry to a fd
- + refs.c: make ref_transaction_delete a wrapper for ref_transaction_update
- + refs.c: make ref_transaction_create a wrapper for ref_transaction_update
- (this branch is used by sb/atomic-push and sb/atomic-push-fix.)
-
- Restructure "reflog expire" to fit the reflogs better with the
- recently updated ref API.
-
-
-* sb/atomic-push (2015-01-14) 11 commits
- (merged to 'next' on 2015-01-14 at 12c4e28)
- + Document receive.advertiseatomic
- (merged to 'next' on 2015-01-12 at 411c6a6)
- + t5543-atomic-push.sh: add basic tests for atomic pushes
- + push.c: add an --atomic argument
- + send-pack.c: add --atomic command line argument
- + send-pack: rename ref_update_to_be_sent to check_to_send_update
- + receive-pack.c: negotiate atomic push support
- + receive-pack.c: add execute_commands_atomic function
- + receive-pack.c: move transaction handling in a central place
- + receive-pack.c: move iterating over all commands outside execute_commands
- + receive-pack.c: die instead of error in case of possible future bug
- + receive-pack.c: shorten the execute_commands loop over all commands
- (this branch is used by sb/atomic-push-fix; uses mh/reflog-expire.)
-
- "git push" has been taught a "--atomic" option that makes push to
- update more than one ref an "all-or-none" affair.
+ "git fetch" over a remote-helper that cannot respond to "list"
+ command could not fetch from a symbolic reference e.g. HEAD.
--------------------------------------------------
[New Topics]
-* ab/merge-file-prefix (2015-02-11) 1 commit
- - merge-file: correctly open files when in a subdir
+* jc/push-cert (2015-02-12) 1 commit
+ (merged to 'next' on 2015-02-16 at f40b3c5)
+ + transport-helper: fix typo in error message when --signed is not supported
+
+ "git push --signed" gave an incorrectly worded error message when
+ the other side did not support the capability.
+
+ Will merge to 'master'.
- "git merge-file" did not work correctly in a subdirectory.
+
+* dp/remove-duplicated-header-inclusion (2015-02-13) 1 commit
+ - do not include the same header twice
+
+ Code clean-up.
Will merge to 'next'.
-* es/blame-commit-info-fix (2015-02-10) 1 commit
- - builtin/blame: destroy initialized commit_info only
+* jc/diff-test-updates (2015-02-15) 6 commits
+ - t4008: modernise style
+ - t/diff-lib: check exact object names in compare_diff_raw
+ - tests: do not borrow from COPYING and README from the real source
+ - t4010: correct expected object names
+ - t9300: correct expected object names
+ - t4008: correct stale comments
+ (this branch is used by jc/diff-b-m.)
- "git blame" died, trying to free an uninitialized piece of memory.
+ Test clean-up.
Will merge to 'next'.
-* es/squelch-openssl-warnings-on-macosx (2015-02-09) 1 commit
- - git-compat-util: do not step on MAC_OS_X_VERSION_MIN_REQUIRED
+* jc/send-email-sensible-encoding (2015-02-13) 1 commit
+ - send-email: ask confirmation if given encoding name is very short
+
+ "git send-email" used to accept a mistaken "y" (or "yes") as an
+ answer to "What encoding do you want to use [UTF-8]? " without
+ questioning. Now it asks for confirmation when the answer looks
+ too short to be a valid encoding name.
Will merge to 'next'.
-* jc/max-io-size-and-ssize-max (2015-02-11) 1 commit
- - xread/xwrite: clip MAX_IO_SIZE to SSIZE_MAX
+* jk/push-config (2015-02-17) 4 commits
+ - [NEEDSACK] push: allow --follow-tags to be set by config push.followTags
+ - cmd_push: pass "flags" pointer to config callback
+ - cmd_push: set "atomic" bit directly
+ - git_push_config: drop cargo-culted wt_status pointer
+
+ Waiting for Ack and/or update for the tip one from Dave Olszewski
+ ($gmane/263880, $gmane/263991).
+
+
+* km/send-email-getopt-long-workarounds (2015-02-16) 1 commit
+ - git-send-email.perl: support no- prefix with older GetOptions
+
+ Even though we officially haven't dropped Perl 5.8 support, the
+ Getopt::Long package that came with it does not support "--no-"
+ prefix to negate a boolean option; manually add support to help
+ people with older Getopt::Long package.
Will merge to 'next'.
-* jk/fast-import-die-nicely-fix (2015-02-10) 1 commit
- - fast-import: avoid running end_packfile recursively
+* mh/transport-capabilities (2015-02-13) 2 commits
+ - transport-helper: ask the helper to set the same options for import as for fetch
+ - transport-helper: ask the helper to set progress and verbosity options after asking for its capabilities
- "git fast-import" used to crash when it could not close and
- conclude the resulting packfile cleanly.
+ Will merge to 'next'.
+
+
+* sb/hex-object-name-is-at-most-41-bytes-long (2015-02-13) 1 commit
+ - hex.c: reduce memory footprint of sha1_to_hex static buffers
Will merge to 'next'.
-* mh/expire-updateref-fixes (2015-02-09) 10 commits
- - reflog_expire(): lock symbolic refs themselves, not their referent
- - reflog_expire(): never update a reference to null_sha1
- - reflog_expire(): ignore --updateref for symbolic references
- - reflog: rearrange the manpage
- - reflog: fix documentation
- - lock_ref_sha1_basic(): do not set force_write for missing references
- - write_ref_sha1(): Move write elision test to callers
- - write_ref_sha1(): remove check for lock == NULL
- - Merge branch 'sb/atomic-push' into mh/ref-trans-value-check
- - Merge branch 'mh/reflog-expire' into mh/ref-trans-value-check
- (this branch is tangled with mh/refs-have-new.)
+* jk/daemon-interpolate (2015-02-17) 3 commits
+ - daemon: sanitize incoming virtual hostname
+ - t5570: test git-daemon's --interpolated-path option
+ - git_connect: let user override virtual-host we send to daemon
+ The "interpolated-path" option of "git daemon" inserted any string
+ client declared on the "host=" capability request without checking.
+ Sanitize and limit %H and %CH to a saner and a valid DNS name.
-* mh/refs-have-new (2015-02-09) 13 commits
- - update_ref(): improve documentation
- - ref_transaction_verify(): new function to check a reference's value
- - ref_transaction_delete(): check that old_sha1 is not null_sha1
- - ref_transaction_create(): check that new_sha1 is valid
- - commit: avoid race when creating orphan commits
- - commit: add tests of commit races
- - ref_transaction_delete(): remove "have_old" parameter
- - ref_transaction_update(): remove "have_old" parameter
- - struct ref_update: move "have_old" into "flags"
- - refs: remove the gap in the REF_* constant values
- - refs: move REF_DELETING to refs.c
- - Merge branch 'sb/atomic-push' into mh/ref-trans-value-check
- - Merge branch 'mh/reflog-expire' into mh/ref-trans-value-check
- (this branch is tangled with mh/expire-updateref-fixes.)
+ Will merge to 'next'.
-* nd/slim-index-pack-memory-usage (2015-02-10) 3 commits
- - index-pack: kill union delta_base to save memory
- - FIXUP
- - index-pack: reduce memory footprint a bit
+* rs/daemon-interpolate (2015-02-17) 2 commits
+ - daemon: use callback to build interpolated path
+ - daemon: look up client-supplied hostname lazily
+
+ "git daemon" looked up the hostname even when "%CH" and "%IP"
+ interpolations are not requested, which was unnecessary.
+
+ Will merge to 'next'.
+
+
+* sb/plug-leak-in-make-cache-entry (2015-02-17) 1 commit
+ - read-cache.c: free cache entry when refreshing fails
+
+ "update-index --refresh" used to leak when an entry cannot be
+ refreshed for whatever reason.
+
+ Will merge to 'next'.
--------------------------------------------------
[Stalled]
-* jk/sanity (2015-01-27) 3 commits
- - test-lib.sh: set prerequisite SANITY by testing what we really need
- - tests: correct misuses of POSIXPERM
- - t/lib-httpd: switch SANITY check for NOT_ROOT
+* nd/list-files (2015-02-09) 21 commits
+ . t3080: tests for git-list-files
+ . list-files: -M aka diff-cached
+ . list-files -F: show submodules with the new indicator '&'
+ . list-files: add -F/--classify
+ . list-files: show directories as well as files
+ . list-files: do not show duplicate cached entries
+ . list-files: sort output and remove duplicates
+ . list-files: add -t back
+ . list-files: add -1 short for --no-column
+ . list-files: add -R/--recursive short for --max-depth=-1
+ . list-files: -u does not imply showing stages
+ . list-files: make alias 'ls' default to 'list-files'
+ . list-files: a user friendly version of ls-files and more
+ . ls-files: support --max-depth
+ . ls-files: add --column
+ . ls-files: add --color to highlight file names
+ . ls-files: buffer full item in strbuf before printing
+ . ls_colors.c: highlight submodules like directories
+ . ls_colors.c: add a function to color a file name
+ . ls_colors.c: parse color.ls.* from config file
+ . ls_colors.c: add $LS_COLORS parsing code
- Waiting for ack or counter-proposal from Torsten.
- Otherwise looking good.
+ A new "git list-files" Porcelain command, "ls-files" with bells and
+ whistles.
+ No comments? No reviews? No interests?
-* tc/t9001-noxmailer (2015-01-30) 1 commit
- - t9001: use older Getopt::Long boolean prefix '--no' rather than '--no-'
- Kyle's update to explicitly support --no-option with older
- Getopt::Long ($gmane/263203) might be a better alternative
- if we have to support them in the longer term.
+* nd/untracked-cache (2015-02-09) 24 commits
+ - git-status.txt: advertisement for untracked cache
+ - untracked cache: guard and disable on system changes
+ - mingw32: add uname()
+ - t7063: tests for untracked cache
+ - update-index: test the system before enabling untracked cache
+ - update-index: manually enable or disable untracked cache
+ - status: enable untracked cache
+ - untracked-cache: temporarily disable with $GIT_DISABLE_UNTRACKED_CACHE
+ - untracked cache: mark index dirty if untracked cache is updated
+ - untracked cache: print stats with $GIT_TRACE_UNTRACKED_STATS
+ - untracked cache: avoid racy timestamps
+ - read-cache.c: split racy stat test to a separate function
+ - untracked cache: invalidate at index addition or removal
+ - untracked cache: load from UNTR index extension
+ - untracked cache: save to an index extension
+ - ewah: add convenient wrapper ewah_serialize_strbuf()
+ - untracked cache: don't open non-existent .gitignore
+ - untracked cache: mark what dirs should be recursed/saved
+ - untracked cache: record/validate dir mtime and reuse cached output
+ - untracked cache: make a wrapper around {open,read,close}dir()
+ - untracked cache: invalidate dirs recursively if .gitignore changes
+ - untracked cache: initial untracked cache validation
+ - untracked cache: record .gitignore information and dir hierarchy
+ - dir.c: optionally compute sha-1 of a .gitignore file
+
+ Need extra sets of eyes to review this.
+
+
+* tb/connect-ipv6-parse-fix (2015-01-22) 3 commits
+ - t5500: show user name and host in diag-url
+ - t5601: add more test cases for IPV6
+ - connect.c: improve parsing of literal IPV6 addresses
+ Need extra sets of eyes to review this.
-* jc/diff-b-m (2015-02-01) 1 commit
- - diff: do not use creation-half of -B as a rename target candidate
+
+* ak/stash-store-create-help (2015-01-13) 1 commit
+ - stash: show "create" and "store" subcommands in usage-help
+
+ Will discard.
+
+
+* bp/diff-relative-config (2015-01-07) 2 commits
+ - diff: teach diff.relative to give default to --relative=<value>
+ - diff: teach --no-relative to override earlier --relative
+
+ No comments? No interests?
+
+
+* jc/diff-b-m (2015-02-17) 4 commits
+ . WIP: diff-b-m
+ - diffcore-rename: allow easier debugging
+ - diffcore-rename.c: add locate_rename_src()
+ - diffcore-break: allow debugging
+ (this branch uses jc/diff-test-updates.)
"git diff -B -M" produced incorrect patch when the postimage of a
completely rewritten file is similar to the preimage of a removed
The fix in this patch is broken, unfortunately.
-* jn/doc-api-errors (2014-12-04) 1 commit
- - doc: document error handling functions and conventions
+* nd/slim-index-pack-memory-usage (2015-02-10) 3 commits
+ - index-pack: kill union delta_base to save memory
+ - FIXUP
+ - index-pack: reduce memory footprint a bit
- For discussion.
- What's the status of this one????
+ Experimental?
* pw/remote-set-url-fetch (2014-11-26) 1 commit
"-C$n" option to customize this behaviour. The top patch
optionally flips the default to "--exact".
- Tired of waiting for an Ack; will discard.
+ Tired of waiting for an Ack
+ Will discard.
* tr/remerge-diff (2014-11-10) 9 commits
--------------------------------------------------
[Cooking]
-* jc/diff-files-ita (2015-02-04) 1 commit
- - run_diff_files(): clarify computation of sha1 validity
+* jn/doc-api-errors (2014-12-04) 1 commit
+ - doc: document error handling functions and conventions
Will merge to 'next'.
-* jk/config-no-ungetc-eof (2015-02-05) 2 commits
- - config_buf_ungetc: warn when pushing back a random character
- - config: do not ungetc EOF
+* jk/sanity (2015-02-15) 3 commits
+ - test-lib.sh: set prerequisite SANITY by testing what we really need
+ - tests: correct misuses of POSIXPERM
+ - t/lib-httpd: switch SANITY check for NOT_ROOT
+
+ The tests that wanted to see that file becomes unreadable after
+ running "chmod a-r file", and the tests that wanted to make sure it
+ is not run as root, we used "can we write into the / directory?" as
+ a cheap substitute, but on some platforms that is not a good
+ heuristics. The tests and their prerequisites have been updated to
+ check what they really require.
Will merge to 'next'.
-* jk/decimal-width-for-uintmax (2015-02-05) 1 commit
- - decimal_width: avoid integer overflow
+* ab/merge-file-prefix (2015-02-11) 1 commit
+ (merged to 'next' on 2015-02-16 at 89e0252)
+ + merge-file: correctly open files when in a subdir
- Will merge to 'next'.
+ "git merge-file" did not work correctly in a subdirectory.
+ Will merge to 'master'.
-* ss/check-builtins-on-windows (2015-02-05) 1 commit
- - check-builtins: strip executable suffix $X when enumerating builtins
- Will merge to 'next'.
+* es/blame-commit-info-fix (2015-02-10) 1 commit
+ (merged to 'next' on 2015-02-16 at f76ff44)
+ + builtin/blame: destroy initialized commit_info only
+ "git blame" died, trying to free an uninitialized piece of memory.
-* jc/diff-format-doc (2015-01-28) 1 commit
- - diff-format doc: a score can follow M for rewrite
+ Will merge to 'master'.
- The documentation incorrectly said that C(opy) and R(ename) are the
- only ones that can be followed by the score number in the output in
- the --raw format.
- Will merge to 'next'.
+* es/squelch-openssl-warnings-on-macosx (2015-02-09) 1 commit
+ (merged to 'next' on 2015-02-16 at bbe2880)
+ + git-compat-util: do not step on MAC_OS_X_VERSION_MIN_REQUIRED
+ An earlier workaround to squelch unhelpful deprecation warnings
+ from the complier on Mac OSX unnecessarily set minimum required
+ version of the OS, which the user might want to raise (or lower)
+ for other reasons.
-* jk/remote-curl-an-array-in-struct-cannot-be-null (2015-01-28) 1 commit
- - do not check truth value of flex arrays
+ Will merge to 'master'.
+
+
+* jc/max-io-size-and-ssize-max (2015-02-12) 1 commit
+ - xread/xwrite: clip MAX_IO_SIZE to SSIZE_MAX
+
+ Our default I/O size (8 MiB) for large files was too large for some
+ platforms with smaller SSIZE_MAX, leading to read(2)/write(2)
+ failures.
Will merge to 'next'.
-* jk/status-read-branch-name-fix (2015-01-28) 1 commit
- - read_and_strip_branch: fix typo'd address-of operator
+* jk/fast-import-die-nicely-fix (2015-02-10) 1 commit
+ - fast-import: avoid running end_packfile recursively
- Code to read branch name from various files in .git/ directory
- would have misbehaved if the code to write them left an empty file.
+ "git fast-import" used to crash when it could not close and
+ conclude the resulting packfile cleanly.
Will merge to 'next'.
+* mh/expire-updateref-fixes (2015-02-09) 10 commits
+ - reflog_expire(): lock symbolic refs themselves, not their referent
+ - reflog_expire(): never update a reference to null_sha1
+ - reflog_expire(): ignore --updateref for symbolic references
+ - reflog: rearrange the manpage
+ - reflog: fix documentation
+ - lock_ref_sha1_basic(): do not set force_write for missing references
+ - write_ref_sha1(): Move write elision test to callers
+ - write_ref_sha1(): remove check for lock == NULL
+ - Merge branch 'sb/atomic-push' into mh/ref-trans-value-check
+ - Merge branch 'mh/reflog-expire' into mh/ref-trans-value-check
+
+ Under discussion ($gmane/263552)
+
+
+* mh/refs-have-new (2015-02-17) 13 commits
+ - refs.h: remove duplication in function docstrings
+ - update_ref(): improve documentation
+ - ref_transaction_verify(): new function to check a reference's value
+ - ref_transaction_delete(): check that old_sha1 is not null_sha1
+ - ref_transaction_create(): check that new_sha1 is valid
+ - commit: avoid race when creating orphan commits
+ - commit: add tests of commit races
+ - ref_transaction_delete(): remove "have_old" parameter
+ - ref_transaction_update(): remove "have_old" parameter
+ - struct ref_update: move "have_old" into "flags"
+ - refs.c: change some "flags" to "unsigned int"
+ - refs: remove the gap in the REF_* constant values
+ - refs: move REF_DELETING to refs.c
+
+ Simplify the ref transaction API around how "the ref should be
+ pointing at this object" is specified.
+
+ Looked sensible.
+ Will merge to 'next', unless there is an objection.
+
+
+* jc/diff-files-ita (2015-02-04) 1 commit
+ (merged to 'next' on 2015-02-16 at d7867a3)
+ + run_diff_files(): clarify computation of sha1 validity
+
+ Code cleanup.
+
+ Will merge to 'master'.
+
+
+* jk/config-no-ungetc-eof (2015-02-05) 2 commits
+ (merged to 'next' on 2015-02-16 at b7fc890)
+ + config_buf_ungetc: warn when pushing back a random character
+ + config: do not ungetc EOF
+
+ Reading configuration from a blob object, when it ends with a lone
+ CR, use to confuse the configuration parser.
+
+ Will merge to 'master'.
+
+
+* jk/decimal-width-for-uintmax (2015-02-05) 1 commit
+ (merged to 'next' on 2015-02-16 at e608239)
+ + decimal_width: avoid integer overflow
+
+ We didn't format an integer that wouldn't fit in "int" but in
+ "uintmax_t" correctly.
+
+ Will merge to 'master'.
+
+
+* ss/check-builtins-on-windows (2015-02-05) 1 commit
+ (merged to 'next' on 2015-02-16 at 2c10cc1)
+ + check-builtins: strip executable suffix $X when enumerating builtins
+
+ Will merge to 'master'.
+
+
* ch/new-gpg-drops-rfc-1991 (2015-01-29) 2 commits
- - t/lib-gpg: sanity-check that we can actually sign
- - t/lib-gpg: include separate public keys in keyring.gpg
+ (merged to 'next' on 2015-02-16 at e2daf10)
+ + t/lib-gpg: sanity-check that we can actually sign
+ + t/lib-gpg: include separate public keys in keyring.gpg
- Older GnuPG implementation may not correctly import the keyring
+ Older GnuPG implementations may not correctly import the keyring
material we prepare for the tests to use.
- Will merge to 'next'.
+ Will merge to 'master'.
* jc/apply-beyond-symlink (2015-02-10) 4 commits
* jc/remote-set-url-doc (2015-01-29) 1 commit
- - Documentation/git-remote.txt: stress that set-url is not for triangular
+ (merged to 'next' on 2015-02-16 at 1f9c342)
+ + Documentation/git-remote.txt: stress that set-url is not for triangular
Clarify in the documentation that "remote.<nick>.pushURL" and
"remote.<nick>.URL" are there to name the same repository accessed
via different transports, not two separate repositories.
- Will merge to 'next'.
-
-
-* jc/t4122-use-test-write-lines (2015-01-28) 1 commit
- - t4122: use test_write_lines from test-lib-functions
-
- Will merge to 'next'.
+ Will merge to 'master'.
* jk/pack-bitmap (2015-02-04) 1 commit
- - ewah: fix building with gcc < 3.4.0
+ (merged to 'next' on 2015-02-16 at 2e30424)
+ + ewah: fix building with gcc < 3.4.0
- Will merge to 'next'.
+ The pack bitmap support did not build with older versions of GCC.
+
+ Will merge to 'master'.
* jk/prune-mtime (2015-02-09) 2 commits
- - sha1_file: fix iterating loose alternate objects
- - for_each_loose_file_in_objdir: take an optional strbuf path
+ (merged to 'next' on 2015-02-16 at 3d46eae)
+ + sha1_file: fix iterating loose alternate objects
+ + for_each_loose_file_in_objdir: take an optional strbuf path
In v2.2.0, we broke "git prune" that runs in a repository that
borrows from an alternate object store.
- Will merge to 'next'.
+ Will merge to 'master'.
* ps/submodule-sanitize-path-upon-add (2015-02-02) 1 commit
- - git-submodule.sh: fix '/././' path normalization
+ (merged to 'next' on 2015-02-16 at 8253132)
+ + git-submodule.sh: fix '/././' path normalization
- Will merge to 'next'.
+ "git submodule add" failed to squash "path/to/././submodule" to
+ "path/to/submodule".
+
+ Will merge to 'master'.
* tc/curl-vernum-output-broken-in-7.11 (2015-02-03) 1 commit
- - Makefile: handle broken curl version number in version check
+ (merged to 'next' on 2015-02-16 at de90f95)
+ + Makefile: handle broken curl version number in version check
- Cope with irregular output of "curl-config --vernum" given by
- certain older vintages of cURL.
+ Certain older vintages of cURL give irregular output from
+ "curl-config --vernum", which confused our build system.
- Will merge to 'next'.
+ Will merge to 'master'.
* tc/missing-http-proxyauth (2015-02-03) 1 commit
- http: support curl < 7.10.7
+ We did not check the curl library version before using
+ CURLOPT_PROXYAUTH feature that may not exist.
+
Will merge to 'next'.
* jc/apply-ws-fix-expands-report (2015-01-22) 1 commit
- apply: detect and mark whitespace errors in context lines when fixing
- (this branch uses jc/apply-ws-fix-expands.)
"git apply --whitespace=fix" fixed whitespace errors in the common
context lines but did so without reporting.
Will merge to 'next'.
-* ks/rebase-i-abbrev (2015-01-22) 1 commit
- - rebase -i: use full object name internally throughout the script
-
- The insn sheet "git rebase -i" creates did not fully honor
- core.abbrev settings.
-
- Will merge to 'next'.
-
-
-* mh/deref-symref-over-helper-transport (2015-01-21) 1 commit
- - transport-helper: do not request symbolic refs to remote helpers
-
- "git fetch" over a remote-helper that cannot respond to "list"
- command could not fetch from a symbolic reference e.g. HEAD.
-
- Will merge to 'next'.
-
-
-* ak/add-i-empty-candidates (2015-01-22) 1 commit
- - add -i: return from list_and_choose if there is no candidate
-
- The interactive "show a list and let the user choose from it"
- interface "add -i" used showed and prompted to the user even when
- the candidate list was empty, against which the only "choice" the
- user could have made was to choose nothing.
-
- Will merge to 'next'.
-
-
* av/wincred-with-at-in-username-fix (2015-01-25) 1 commit
- - wincred: fix get credential if username has "@"
-
- Will merge to 'next'.
+ (merged to 'next' on 2015-02-16 at 69dd76d)
+ + wincred: fix get credential if username has "@"
+ The credential helper for Windows (in contrib/) used to mishandle
+ a user name with an at-sign in it.
-* jc/conf-var-doc (2015-02-02) 3 commits
- - CodingGuidelines: describe naming rules for configuration variables
- - config.txt: mark deprecated variables more prominently
- - config.txt: clarify that add.ignore-errors is deprecated
-
- Will merge to 'next'.
+ Will merge to 'master'.
-* jc/doc-log-rev-list-options (2015-01-23) 1 commit
- - Documentation: what does "git log --indexed-objects" even mean?
-
- Will merge to 'next'.
-
-
-* jk/dumb-http-idx-fetch-fix (2015-01-27) 1 commit
- - dumb-http: do not pass NULL path to parse_pack_index
-
- Will merge to 'next'.
-
-
-* mg/commit-author-no-match-malformed-message (2015-01-26) 1 commit
- - commit: reword --author error message
-
- Will merge to 'next'.
+* jc/conf-var-doc (2015-02-02) 3 commits
+ (merged to 'next' on 2015-02-16 at 97512a3)
+ + CodingGuidelines: describe naming rules for configuration variables
+ + config.txt: mark deprecated variables more prominently
+ + config.txt: clarify that add.ignore-errors is deprecated
+ Longstanding configuration variable naming rules has been added to
+ the documentation.
-* mg/push-repo-option-doc (2015-01-28) 1 commit
- - git-push.txt: document the behavior of --repo
-
- Will merge to 'next'.
+ Will merge to 'master'.
* ye/http-accept-language (2015-01-28) 1 commit
- - http: add Accept-Language header if possible
+ (merged to 'next' on 2015-02-16 at 10ed819)
+ + http: add Accept-Language header if possible
Using environment variable LANGUAGE and friends on the client side,
- send Accept-Language when making HTTP requests.
-
- Will merge to 'next'.
-
-
-* jc/apply-ws-fix-expands (2015-01-22) 3 commits
- - apply: count the size of postimage correctly
- - apply: make update_pre_post_images() sanity check the given postlen
- - apply.c: typofix
- (this branch is used by jc/apply-ws-fix-expands-report.)
-
- "git apply --whitespace=fix" used to under-allocate the memory
- when the fix resulted in a longer text than the original patch.
+ HTTP-based transports now send Accept-Language when making requests.
- Will merge to 'next'.
+ Will merge to 'master'.
* js/fsck-opt (2015-01-21) 19 commits
- fsck: introduce identifiers for fsck messages
- fsck: introduce fsck options
- Need extra set of eyes to review this.
-
+ "fsck.warnings = <list of error tokens>" I suggested turned out to
+ be an unpopular choice (sorry Dscho).
-* tb/connect-ipv6-parse-fix (2015-01-22) 3 commits
- - t5500: show user name and host in diag-url
- - t5601: add more test cases for IPV6
- - connect.c: improve parsing of literal IPV6 addresses
-
- Need extra set of eyes to review this.
+ Expecting a reroll.
* jk/strbuf-doc-to-header (2015-01-16) 7 commits
Will merge to 'next'.
-* ak/stash-store-create-help (2015-01-13) 1 commit
- - stash: show "create" and "store" subcommands in usage-help
-
- Undecided.
-
-
-* bp/diff-relative-config (2015-01-07) 2 commits
- - diff: teach diff.relative to give default to --relative=<value>
- - diff: teach --no-relative to override earlier --relative
-
-
* nd/attr-optim (2014-12-29) 3 commits
- attr: avoid heavy work when we know the specified attr is not defined
- attr: do not attempt to expand when we know it's not a macro
- attr.c: rename arg name attr_nr to avoid shadowing the global one
+ Optimize attribute look-up, mostly useful in "git grep" on a
+ project that does not use many attributes, by avoiding it when we
+ (should) know that the attributes are not defined in the first
+ place.
-* nd/list-files (2015-02-09) 21 commits
- . t3080: tests for git-list-files
- . list-files: -M aka diff-cached
- . list-files -F: show submodules with the new indicator '&'
- . list-files: add -F/--classify
- . list-files: show directories as well as files
- . list-files: do not show duplicate cached entries
- . list-files: sort output and remove duplicates
- . list-files: add -t back
- . list-files: add -1 short for --no-column
- . list-files: add -R/--recursive short for --max-depth=-1
- . list-files: -u does not imply showing stages
- . list-files: make alias 'ls' default to 'list-files'
- . list-files: a user friendly version of ls-files and more
- . ls-files: support --max-depth
- . ls-files: add --column
- . ls-files: add --color to highlight file names
- . ls-files: buffer full item in strbuf before printing
- . ls_colors.c: highlight submodules like directories
- . ls_colors.c: add a function to color a file name
- . ls_colors.c: parse color.ls.* from config file
- . ls_colors.c: add $LS_COLORS parsing code
-
- A new "git list-files" Porcelain command, "ls-files" with bells and
- whistles.
+ Will merge to 'next'.
* nd/multiple-work-trees (2015-01-27) 38 commits
rely on symbolic links and make sharing of objects and refs safer
by making the borrowee and borrowers aware of each other.
+ Will merge to 'next'.
-* nd/untracked-cache (2015-02-09) 24 commits
- - git-status.txt: advertisement for untracked cache
- - untracked cache: guard and disable on system changes
- - mingw32: add uname()
- - t7063: tests for untracked cache
- - update-index: test the system before enabling untracked cache
- - update-index: manually enable or disable untracked cache
- - status: enable untracked cache
- - untracked-cache: temporarily disable with $GIT_DISABLE_UNTRACKED_CACHE
- - untracked cache: mark index dirty if untracked cache is updated
- - untracked cache: print stats with $GIT_TRACE_UNTRACKED_STATS
- - untracked cache: avoid racy timestamps
- - read-cache.c: split racy stat test to a separate function
- - untracked cache: invalidate at index addition or removal
- - untracked cache: load from UNTR index extension
- - untracked cache: save to an index extension
- - ewah: add convenient wrapper ewah_serialize_strbuf()
- - untracked cache: don't open non-existent .gitignore
- - untracked cache: mark what dirs should be recursed/saved
- - untracked cache: record/validate dir mtime and reuse cached output
- - untracked cache: make a wrapper around {open,read,close}dir()
- - untracked cache: invalidate dirs recursively if .gitignore changes
- - untracked cache: initial untracked cache validation
- - untracked cache: record .gitignore information and dir hierarchy
- - dir.c: optionally compute sha-1 of a .gitignore file
- Need extra set of eyes to review this.
+--------------------------------------------------
+[Discarded]
+
+* tc/t9001-noxmailer (2015-01-30) 1 commit
+ . t9001: use older Getopt::Long boolean prefix '--no' rather than '--no-'
+
+ Kyle's update to explicitly support --no-option with older
+ Getopt::Long ($gmane/263203) makes this unnecessary.