To: git@vger.kernel.org
Bcc: lwn@lwn.net
-Subject: What's cooking in git.git (May 2015, #02; Wed, 6)
+Subject: What's cooking in git.git (May 2015, #03; Fri, 8)
X-master-at: 8440f74997cf7958c7e8ec853f590828085049b8
-X-next-at: 8e1974edaeee9161b10b8f31a7a86892259e9768
+X-next-at: 38e70713119c25ab5699df6b2fb13e4133d399ab
-What's cooking in git.git (May 2015, #02; Wed, 6)
+What's cooking in git.git (May 2015, #03; Fri, 8)
--------------------------------------------------
Here are the topics that have been cooking. Commits prefixed with
'-' are only in 'pu' (proposed updates) while commits prefixed with
'+' are in 'next'.
-The first batch for the next feature release (tentatively called 2.5)
-has been merged to 'master'. They mostly are fixes that are meant
-for the first maintenance release for 2.4.x track. The tip of 'next'
-has been rewound and rebuilt.
-
You can find the changes described here in the integration branches
of the repositories listed at
http://git-blame.blogspot.com/p/git-public-repositories.html
--------------------------------------------------
-[Graduated to "master"]
-
-* bc/object-id (2015-03-13) 10 commits
- (merged to 'next' on 2015-05-05 at 975002f)
- + apply: convert threeway_stage to object_id
- + patch-id: convert to use struct object_id
- + commit: convert parts to struct object_id
- + diff: convert struct combine_diff_path to object_id
- + bulk-checkin.c: convert to use struct object_id
- + zip: use GIT_SHA1_HEXSZ for trailers
- + archive.c: convert to use struct object_id
- + bisect.c: convert leaf functions to use struct object_id
- + define utility functions for object IDs
- + define a structure for object IDs
-
- Originally merged to 'next' on 2015-03-24
-
- Identify parts of the code that knows that we use SHA-1 hash to
- name our objects too much, and use (1) symbolic constants instead
- of hardcoded 20 as byte count and/or (2) use struct object_id
- instead of unsigned char [20] for object names.
-
-
-* cn/bom-in-gitignore (2015-04-16) 5 commits
- (merged to 'next' on 2015-05-05 at 8aa8b91)
- + attr: skip UTF8 BOM at the beginning of the input file
- + config: use utf8_bom[] from utf.[ch] in git_parse_source()
- + utf8-bom: introduce skip_utf8_bom() helper
- + add_excludes_from_file: clarify the bom skipping logic
- + dir: allow a BOM at the beginning of exclude files
-
- Originally merged to 'next' on 2015-04-21
-
- Teach the codepaths that read .gitignore and .gitattributes files
- that these files encoded in UTF-8 may have UTF-8 BOM marker at the
- beginning; this makes it in line with what we do for configuration
- files already.
-
-
-* ep/fix-test-lib-functions-report (2015-04-16) 1 commit
- (merged to 'next' on 2015-05-05 at e49e876)
- + test-lib-functions.sh: fix the second argument to some helper functions
-
- Originally merged to 'next' on 2015-04-21
-
-
-* jc/diff-no-index-d-f (2015-03-26) 2 commits
- (merged to 'next' on 2015-05-05 at 61538ca)
- + diff-no-index: align D/F handling with that of normal Git
- + diff-no-index: DWIM "diff D F" into "diff D/F F"
-
- Originally merged to 'next' on 2015-03-27
-
- The usual "git diff" when seeing a file turning into a directory
- showed a patchset to remove the file and create all files in the
- directory, but "git diff --no-index" simply refused to work. Also,
- when asked to compare a file and a directory, imitate POSIX "diff"
- and compare the file with the file with the same name in the
- directory, instead of refusing to run.
-
-
-* jc/epochtime-wo-tz (2015-04-15) 2 commits
- (merged to 'next' on 2015-05-05 at 3d10988)
- + parse_date_basic(): let the system handle DST conversion
- + parse_date_basic(): return early when given a bogus timestamp
-
- Originally merged to 'next' on 2015-04-21
-
- "git commit --date=now" or anything that relies on approxidate lost
- the daylight-saving-time offset.
-
-
-* jk/init-core-worktree-at-root (2015-04-02) 1 commit
- (merged to 'next' on 2015-05-05 at 65c7453)
- + init: don't set core.worktree when initializing /.git
-
- Originally merged to 'next' on 2015-04-08
-
- We avoid setting core.worktree when the repository location is the
- ".git" directory directly at the top level of the working tree, but
- the code misdetected the case in which the working tree is at the
- root level of the filesystem (which arguably is a silly thing to
- do, but still valid).
-
-
-* jk/prune-mtime (2015-04-20) 3 commits
- (merged to 'next' on 2015-05-05 at 6c0a311)
- + sha1_file: only freshen packs once per run
- + sha1_file: freshen pack objects before loose
- + reachable: only mark local objects as recent
-
- Originally merged to 'next' on 2015-04-21
-
- Access to objects in repositories that borrow from another one on a
- slow NFS server unnecessarily got more expensive due to recent code
- becoming more cautious in a naive way not to lose objects to pruning.
-
-
-* jk/type-from-string-gently (2015-04-17) 1 commit
- (merged to 'next' on 2015-05-05 at 73b5c2a)
- + type_from_string_gently: make sure length matches
-
- Originally merged to 'next' on 2015-04-20
-
- "git cat-file bl $blob" failed to barf even though there is no
- object type that is "bl".
-
-
-* ld/p4-filetype-detection (2015-04-04) 3 commits
- (merged to 'next' on 2015-05-05 at ce95858)
- + git-p4: fix filetype detection on files opened exclusively
- + git-p4: small fix for locked-file-move-test
- + git-p4: fix small bug in locked test scripts
-
- Originally merged to 'next' on 2015-04-08
-
-
-* mh/show-branch-topic (2015-03-31) 1 commit
- (merged to 'next' on 2015-05-05 at 43c6237)
- + show-branch: show all local heads when only giving one rev along --topics
-
- Originally merged to 'next' on 2015-04-08
-
- "git show-branch --topics HEAD" (with no other arguments) did not
- do anything interesting. Instead, contrast the given revision
- against all the local branches by default.
-
-
-* mm/usage-log-l-can-take-regex (2015-04-20) 2 commits
- (merged to 'next' on 2015-05-05 at dbe590c)
- + log -L: improve error message on malformed argument
- + Documentation: change -L:<regex> to -L:<funcname>
-
- Originally merged to 'next' on 2015-04-21
-
- Documentation fix.
-
-
-* nd/t1509-chroot-test (2015-04-18) 1 commit
- (merged to 'next' on 2015-05-05 at e93f60e)
- + t1509: update prepare script to be able to run t1509 in chroot again
-
- Originally merged to 'next' on 2015-04-21
-
- Correct test bitrot.
-
-
-* oh/fix-config-default-user-name-section (2015-04-17) 1 commit
- (merged to 'next' on 2015-05-05 at b4778c2)
- + config: fix settings in default_user_config template
-
- Originally merged to 'next' on 2015-04-20
-
- The default $HOME/.gitconfig file created upon "git config --global"
- that edits it had incorrectly spelled user.name and user.email
- entries in it.
+[New Topics]
+* dl/branch-error-message (2015-05-06) 1 commit
+ - branch: do not call a "remote-tracking branch" a "remote branch"
-* sb/line-log-plug-pairdiff-leak (2015-03-30) 1 commit
- (merged to 'next' on 2015-05-05 at 3d8e735)
- + line-log.c: fix a memleak
+ Will merge to 'next'.
- Originally merged to 'next' on 2015-04-08
+* dl/subtree-push-no-squash (2015-05-07) 1 commit
+ - contrib/subtree: there's no push --squash
-* sb/test-bitmap-free-at-end (2015-04-12) 1 commit
- (merged to 'next' on 2015-05-05 at 2b83c75)
- + pack-bitmap.c: fix a memleak
+ Will merge to 'next'.
- Originally merged to 'next' on 2015-04-14
+* ld/p4-editor-multi-words (2015-05-07) 2 commits
+ - git-p4: fix handling of multi-word P4EDITOR
+ - git-p4: add failing test for P4EDITOR handling
-* ts/checkout-advice-plural (2015-04-02) 1 commit
- (merged to 'next' on 2015-05-05 at 546f824)
- + checkout: call a single commit "it" intead of "them"
+ Unlike "$EDITOR" and "$GIT_EDITOR" that can hold the path to the
+ command and initial options (e.g. "/path/to/emacs -nw"), 'git p4'
+ did not let the shell interpolate the contents of the environment
+ variable that name the editor "$P4EDITOR" (and "$EDITOR", too).
+ Make it in line with the rest of Git, as well as with Perforce.
- Originally merged to 'next' on 2015-04-08
+ Reported to break some tests that assume the non-interpolating
+ behaviour that need to be fixed.
---------------------------------------------------
-[New Topics]
-* jc/daemon-no-ipv6-for-2.4.1 (2015-05-05) 1 commit
- (merged to 'next' on 2015-05-05 at 1eb279f)
- + daemon: unbreak NO_IPV6 build regression
+* dl/subtree-avoid-tricky-echo (2015-05-08) 1 commit
+ - contrib/subtree: portability fix for string printing
- "git daemon" fails to build from the source under NO_IPV6
- configuration (regression in 2.4).
+ "git subtree" script (in contrib/) used "echo -n" to produce
+ progress messages in a non-portable way.
- Will merge to 'master' in the second batch.
+ Will merge to 'next'.
-* sb/prefix-path-free-results (2015-05-05) 1 commit
- - prefix_path(): unconditionally free results in the callers
+* ls/http-ssl-cipher-list (2015-05-08) 1 commit
+ - http: add support for specifying an SSL cipher list
- Code clean-up (not a leak-fix).
+ Introduce http.<url>.SSLCipherList configuration variable to tweak
+ the list of cipher suite to be used with libcURL when talking with
+ https:// sites.
Will merge to 'next'.
-* sg/completion-omit-credential-helpers (2015-05-05) 2 commits
- - SQUASH???
- - completion: remove credential helpers from porcelain commands
+* ps/bundle-verify-arg (2015-05-08) 1 commit
+ - bundle: verify arguments more strictly
- The Git subcommand completion (in contrib/) listed credential
- helpers among candidates, which is not something the end user would
- invoke interatively.
-
- Will merge to 'next' after squashing the fix in.
+ Will merge to 'next'.
-* jk/skip-http-tests-under-no-curl (2015-05-06) 1 commit
- - t/lib-httpd.sh: skip tests if NO_CURL is defined
+* sg/help-subcommands (2015-05-08) 1 commit
+ - command-list.txt: fix whitespace inconsistency
- Test clean-up.
+ A preparatory clean-up step.
Will merge to 'next'.
--------------------------------------------------
[Cooking]
+* jc/daemon-no-ipv6-for-2.4.1 (2015-05-05) 1 commit
+ (merged to 'next' on 2015-05-05 at 1eb279f)
+ + daemon: unbreak NO_IPV6 build regression
+
+ "git daemon" fails to build from the source under NO_IPV6
+ configuration (regression in 2.4).
+
+ Will merge to 'master' in the second batch.
+
+
+* sb/prefix-path-free-results (2015-05-05) 1 commit
+ (merged to 'next' on 2015-05-07 at 64f15a8)
+ + prefix_path(): unconditionally free results in the callers
+
+ Code clean-up (not a leak-fix).
+
+ Will merge to 'master' in the second batch.
+
+
+* sg/completion-omit-credential-helpers (2015-05-06) 1 commit
+ - completion: remove credential helpers from porcelain commands
+
+ The Git subcommand completion (in contrib/) listed credential
+ helpers among candidates, which is not something the end user would
+ invoke interatively.
+
+ Will merge to 'next'.
+
+
+* jk/skip-http-tests-under-no-curl (2015-05-07) 2 commits
+ - tests: skip dav http-push tests under NO_EXPAT=NoThanks
+ - t/lib-httpd.sh: skip tests if NO_CURL is defined
+
+ Test clean-up.
+
+ Will merge to 'next'.
+
+
* mh/ref-directory-file (2015-05-05) 19 commits
- SQUASH???
- reflog_expire(): integrate lock_ref_sha1_basic() errors into ours
* nd/dwim-wildcards-as-pathspecs (2015-05-03) 1 commit
- - pathspec: avoid the need of "--" when wildcard is used
+ (merged to 'next' on 2015-05-07 at 8176de7)
+ + pathspec: avoid the need of "--" when wildcard is used
A heuristic to help the "git <cmd> <revs> <pathspec>" command line
convention to catch mistyped paths is to make sure all the non-rev
heuristic to declare that with a wildcard string the user likely
meant to give us a pathspec.
- Will merge to 'next'.
+ Will merge to 'master' in the third batch.
* pt/pull-tests (2015-05-03) 7 commits
* sg/complete-decorate-full-not-long (2015-05-03) 1 commit
- - completion: fix and update 'git log --decorate=' options
+ (merged to 'next' on 2015-05-07 at 2beb429)
+ + completion: fix and update 'git log --decorate=' options
The completion for "log --decorate=" parameter value was incorrect.
- Will merge to 'next'.
+ Will merge to 'master' in the second batch.
* sg/completion-no-redundant-all-command-list (2015-05-03) 1 commit
- - completion: remove redundant __git_compute_all_commands() call
+ (merged to 'next' on 2015-05-07 at 00b4bd9)
+ + completion: remove redundant __git_compute_all_commands() call
Code simplification.
- Will merge to 'next'.
+ Will merge to 'master' in the second batch.
* jc/hash-object (2015-05-05) 4 commits
- - write_sha1_file(): do not use a separate sha1[] array
- - t1007: add hash-object --literally tests
- - hash-object --literally: fix buffer overrun with extra-long object type
- - git-hash-object.txt: document --literally option
+ (merged to 'next' on 2015-05-07 at 9b81a06)
+ + write_sha1_file(): do not use a separate sha1[] array
+ + t1007: add hash-object --literally tests
+ + hash-object --literally: fix buffer overrun with extra-long object type
+ + git-hash-object.txt: document --literally option
- "hash-object --literally" introduced in v2.2 days was not prepared
- to take a really long object type name.
+ "hash-object --literally" introduced in v2.2 was not prepared to
+ take a really long object type name.
- Will merge to 'next'.
+ Will merge to 'master' in the second batch.
* jn/clean-use-error-not-fprintf-on-stderr (2015-05-04) 1 commit
* jk/filter-branch-use-of-sed-on-incomplete-line (2015-04-29) 1 commit
- - filter-branch: avoid passing commit message through sed
+ (merged to 'next' on 2015-05-07 at 849a24d)
+ + filter-branch: avoid passing commit message through sed
- "filter-branch" was broken by some "sed" implementations that
- corrupt commit log message that ends with an incomplete line.
- Work it around by avoiding to use "sed".
+ "filter-branch" corrupted commit log message that ends with an
+ incomplete line on platforms with some "sed" implementations that
+ munge such a line. Work it around by avoiding to use "sed".
- Will merge to 'next'.
+ Will merge to 'master' in the second batch.
* ph/rebase-i-redo (2015-04-29) 1 commit
- - rebase -i: redo tasks that die during cherry-pick
+ (merged to 'next' on 2015-05-07 at 8fc1f52)
+ + rebase -i: redo tasks that die during cherry-pick
"git rebase -i" moved the "current" command from "todo" to "done" a
bit too prematurely, losing a step when a "pick" did not even start.
- Will merge to 'next'.
+ Will merge to 'master' in the third batch.
* ep/do-not-feed-a-pointer-to-array-size (2015-05-05) 1 commit
- - git-compat-util.h: implement a different ARRAY_SIZE macro for for safely deriving the size of array
+ (merged to 'next' on 2015-05-07 at 64d9a20)
+ + git-compat-util.h: implement a different ARRAY_SIZE macro for for safely deriving the size of array
- Catch programmer mistake to feed a pointer not an array to
+ Catch a programmer mistake to feed a pointer not an array to
ARRAY_SIZE() macro, by using a couple of GCC extensions.
- Will merge to 'next'.
+ Will merge to 'master' in the second batch.
* tb/blame-resurrect-convert-to-git (2015-05-03) 1 commit
* jc/merge (2015-04-29) 15 commits
- - merge: deprecate 'git merge <message> HEAD <commit>' syntax
- - merge: handle FETCH_HEAD internally
- - merge: decide if we auto-generate the message early in collect_parents()
- - merge: make collect_parents() auto-generate the merge message
- - merge: extract prepare_merge_message() logic out
- - merge: narrow scope of merge_names
- - merge: split reduce_parents() out of collect_parents()
- - merge: clarify collect_parents() logic
- - merge: small leakfix and code simplification
- - merge: do not check argc to determine number of remote heads
- - merge: clarify "pulling into void" special case
- - t5520: test pulling an octopus into an unborn branch
- - t5520: style fixes
- - merge: simplify code flow
- - merge: test the top-level merge driver
+ (merged to 'next' on 2015-05-07 at 1c56512)
+ + merge: deprecate 'git merge <message> HEAD <commit>' syntax
+ + merge: handle FETCH_HEAD internally
+ + merge: decide if we auto-generate the message early in collect_parents()
+ + merge: make collect_parents() auto-generate the merge message
+ + merge: extract prepare_merge_message() logic out
+ + merge: narrow scope of merge_names
+ + merge: split reduce_parents() out of collect_parents()
+ + merge: clarify collect_parents() logic
+ + merge: small leakfix and code simplification
+ + merge: do not check argc to determine number of remote heads
+ + merge: clarify "pulling into void" special case
+ + t5520: test pulling an octopus into an unborn branch
+ + t5520: style fixes
+ + merge: simplify code flow
+ + merge: test the top-level merge driver
(this branch is used by jc/merge-drop-old-syntax.)
"git merge FETCH_HEAD" learned that the previous "git fetch" could
implementation of "git pull" script; the old style syntax can now
be deprecated.
- Will merge to 'next'.
+ Will merge to 'master' in the third batch.
* jc/merge-drop-old-syntax (2015-04-29) 1 commit
Will merge to 'master' in the second batch.
-* kn/cat-file-literally (2015-05-04) 5 commits
- - fixup! sha1_file: support reading from a loose object of unknown type
+* kn/cat-file-literally (2015-05-06) 4 commits
- t1006: add tests for git cat-file --allow-unknown-type
- cat-file: teach cat-file a '--allow-unknown-type' option
- cat-file: make the options mutually exclusive
Add the "--allow-unknown-type" option to "cat-file" to allow
inspecting loose objects of an experimental or a broken type.
- This is v10 $gmane/267960; I think with fixup! squashed in the
- series is in a good shape (the test may fail without Eric's fix
- to "hash-object --literally" elsewhere, though).
+ This is v10 $gmane/267960 with fixup! squashed in.
* lm/squelch-bg-progress (2015-04-15) 2 commits
* pt/xdg-config-path (2015-05-06) 7 commits
- - path.c: remove home_config_paths()
- - git-config: replace use of home_config_paths()
- - git-commit: replace use of home_config_paths()
- - credential-store.c: replace home_config_paths() with xdg_config_home()
- - dir.c: replace home_config_paths() with xdg_config_home()
- - attr.c: replace home_config_paths() with xdg_config_home()
- - path.c: implement xdg_config_home()
+ (merged to 'next' on 2015-05-07 at 38e7071)
+ + path.c: remove home_config_paths()
+ + git-config: replace use of home_config_paths()
+ + git-commit: replace use of home_config_paths()
+ + credential-store.c: replace home_config_paths() with xdg_config_home()
+ + dir.c: replace home_config_paths() with xdg_config_home()
+ + attr.c: replace home_config_paths() with xdg_config_home()
+ + path.c: implement xdg_config_home()
(this branch uses pt/credential-xdg.)
Code clean-up for xdg configuration path support.
- Will merge to 'next'.
+ Will merge to 'master' in the second batch.
* nd/diff-i-t-a (2015-03-23) 1 commit