1 To: git@vger.kernel.org
3 Subject: What's cooking in git.git (Oct 2013, #08; Wed, 30)
4 X-master-at: 42817b96b1b80b56fd5a4d5e0d6239524b1832a3
5 X-next-at: a9bf06aa4c8db76465f9b7c11b2704229b2adb5a
7 What's cooking in git.git (Oct 2013, #08; Wed, 30)
8 --------------------------------------------------
10 Here are the topics that have been cooking. Commits prefixed with
11 '-' are only in 'pu' (proposed updates) while commits prefixed with
14 An early preview 1.8.5-rc0 has been tagged. There still are handful
15 of fixes and enhancements left in 'next' that I'd like to see in the
16 final, which will hopefully be in when the first release candidate
19 As promised/requested, the final steps for 2.0 are in 'next'; they,
20 together with a handful topics that have been merged to 'next'
21 fairly recently, will _not_ be part of the upcoming 1.8.5 release,
22 but will be carried over in 'next' to the next cycle.
24 You can find the changes described here in the integration branches
25 of the repositories listed at
27 http://git-blame.blogspot.com/p/git-public-repositories.html
29 --------------------------------------------------
30 [Graduated to "master"]
32 * fc/styles (2013-10-16) 7 commits
33 (merged to 'next' on 2013-10-28 at cf592ed)
34 + block-sha1/sha1.c: have SP around arithmetic operators
35 + base85.c: have SP around arithmetic operators
36 + archive.c: have SP around arithmetic operators
37 + alloc.c: have SP around arithmetic operators
38 + abspath.c: have SP around arithmetic operators
39 + alias: have SP around arithmetic operators
40 + C: have space around && and || operators
45 * hn/log-graph-color-octopus (2013-10-18) 1 commit
46 (merged to 'next' on 2013-10-28 at e103175)
47 + graph: fix coloring around octopus merges
50 * jc/upload-pack-send-symref (2013-10-22) 10 commits
51 (merged to 'next' on 2013-10-23 at 8ef5660)
52 + t5570: Update for clone-progress-to-stderr branch
53 + Merge branch 'jk/clone-progress-to-stderr' into jc/upload-pack-send-symref
54 + t5570: Update for symref capability
55 (merged to 'next' on 2013-10-16 at eb1ae25)
56 + clone: test the new HEAD detection logic
57 + connect: annotate refs with their symref information in get_remote_head()
58 + connect.c: make parse_feature_value() static
59 + upload-pack: send non-HEAD symbolic refs
60 + upload-pack: send symbolic ref information as capability
61 + upload-pack.c: do not pass confusing cb_data to mark_our_ref()
62 + t5505: fix "set-head --auto with ambiguous HEAD" test
64 One long-standing flaw in the pack transfer protocol used by "git
65 clone" was that there was no way to tell the other end which branch
66 "HEAD" points at, and the receiving end needed to guess. A new
67 capability has been defined in the pack protocol to convey this
68 information so that cloning from a repository with more than one
69 branches pointing at the same commit where the HEAD is at now
70 reliably sets the initial branch in the resulting repository.
73 * jk/date-c-double-semicolon (2013-10-24) 1 commit
74 (merged to 'next' on 2013-10-28 at 00ce440)
75 + drop redundant semicolon in empty while
78 * jk/http-auth-redirects (2013-10-24) 10 commits
79 (merged to 'next' on 2013-10-24 at 4bebb66)
80 + http.c: Spell the null pointer as NULL
81 + remote-curl: rewrite base url from info/refs redirects
82 + remote-curl: store url as a strbuf
83 + remote-curl: make refs_url a strbuf
84 + http: update base URLs when we see redirects
85 + http: provide effective url to callers
86 + http: hoist credential request out of handle_curl_result
87 (merged to 'next' on 2013-10-14 at a0642be)
88 + http: refactor options to http_get_*
89 + http_request: factor out curlinfo_strbuf
90 + http_get_file: style fixes
92 Handle the case where http transport gets redirected during the
93 authorization request better.
96 * jk/refs-c-squelch-gcc (2013-10-24) 1 commit
97 (merged to 'next' on 2013-10-28 at d15f7c2)
98 + silence gcc array-bounds warning
101 * jl/pack-transfer-avoid-double-close (2013-10-23) 1 commit
102 (merged to 'next' on 2013-10-28 at 4a55bba)
103 + Clear fd after closing to avoid double-close error
105 The codepath that send_pack() calls pack_objects() mistakenly
106 closed the same file descriptor twice, leading to potentially
107 closing a wrong file descriptor that was opened in the meantime.
110 * mm/checkout-auto-track-fix (2013-10-18) 2 commits
111 (merged to 'next' on 2013-10-28 at f4594ba)
112 + checkout: proper error message on 'git checkout foo bar --'
113 + checkout: allow dwim for branch creation for "git checkout $branch --"
115 "git checkout topic", when there is not yet a local "topic" branch
116 but there is a unique remote-tracking branch for a remote "topic"
117 branch, pretended as if "git checkout -t -b topic remote/$r/topic"
118 (for that unique remote $r) was run. This hack however was not
119 implemented for "git checkout topic --".
122 * nd/gc-lock-against-each-other (2013-10-18) 1 commit
123 (merged to 'next' on 2013-10-28 at 14bd458)
124 + gc: remove gc.pid file at end of execution
127 * nd/lift-path-max (2013-10-24) 2 commits
128 (merged to 'next' on 2013-10-28 at 07698af)
129 + checkout_entry(): clarify the use of topath[] parameter
130 + entry.c: convert checkout_entry to use strbuf
133 * nd/magic-pathspec (2013-10-22) 1 commit
134 (merged to 'next' on 2013-10-28 at 50eda68)
135 + Fix calling parse_pathspec with no paths nor PATHSPEC_PREFER_* flags
137 All callers to parse_pathspec() must choose between getting no
138 pathspec or one path that is limited to the current directory
139 when there is no paths given on the command line, but there were
140 two callers that violated this rule, triggering a BUG().
143 * sb/git-svn-docs-indent-with-ht (2013-10-22) 1 commit
144 (merged to 'next' on 2013-10-28 at 8a952d1)
145 + git-svn docs: Use tabs consistently within the ascii doc
148 * sg/t3600-nul-sha1-fix (2013-10-16) 1 commit
149 (merged to 'next' on 2013-10-28 at ac4b703)
150 + t3600: fix broken "choking git rm" test
153 * tr/gitk-doc-update (2013-10-22) 1 commit
154 (merged to 'next' on 2013-10-28 at f4158b8)
155 + Documentation: revamp gitk(1)
158 * tr/valgrind-test-fix (2013-10-22) 2 commits
159 (merged to 'next' on 2013-10-28 at 4d3f31a)
160 + Revert "test-lib: allow prefixing a custom string before "ok N" etc."
161 + Revert "test-lib: support running tests under valgrind in parallel"
163 --------------------------------------------------
166 * jn/test-prereq-perl-doc (2013-10-28) 1 commit
167 - t/README: tests can use perl even with NO_PERL
169 Will merge to 'next'.
172 * ak/cvsserver-stabilize-use-of-hash-keys (2013-10-30) 1 commit
173 - cvsserver: Determinize output to combat Perl 5.18 hash randomization
175 Will merge to 'next'.
178 * jk/replace-perl-in-built-scripts (2013-10-29) 1 commit
179 - use @@PERL@@ in built scripts
181 Will merge to 'next'.
184 * jk/subtree-install-fix (2013-10-30) 1 commit
185 - subtree: add makefile target for html docs
187 Will merge to 'next'.
190 * jk/wrap-perl-used-in-tests (2013-10-29) 2 commits
191 - t: use perl instead of "$PERL_PATH" where applicable
192 - t: provide a perl() function which uses $PERL_PATH
194 Will merge to 'next'.
197 * jt/commit-fixes-footer (2013-10-30) 1 commit
198 - commit: Add -f, --fixes <commit> option to add Fixes: line
200 There is an ongoing discussion around this topic; in general I am
201 fairly negative on a new feature that is too narrow and prefer a
202 more generic solution that can be tailored for specific needs, as
203 many people stated in the thread.
205 --------------------------------------------------
208 * np/pack-v4 (2013-09-18) 90 commits
209 . packv4-parse.c: add tree offset caching
210 . t1050: replace one instance of show-index with verify-pack
211 . index-pack, pack-objects: allow creating .idx v2 with .pack v4
212 . unpack-objects: decode v4 trees
213 . unpack-objects: allow to save processed bytes to a buffer
216 Nico and Duy advancing the eternal vaporware pack-v4. This is here
217 primarily for wider distribution of the preview edition.
219 Temporarily ejected from 'pu', to try out jk/pack-bitmap, which
220 this topic conflicts with.
223 * mf/graph-show-root (2013-10-25) 1 commit
224 . graph.c: mark root commit differently
226 In a repository with multiple-roots, "log --graph", especially with
227 "--oneline", does not give the reader enough visual cue to see
228 where one line of history ended and a separate history began.
230 This is the version that marks the roots 'x' when they would have
231 been marked as '*'; Keshav Kini suggested an alternative of giving
232 an extra blank line after every root, which I tend to think is a
233 better approach to the problem.
236 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
237 - perf-lib: add test_perf_cleanup target
238 - perf-lib: split starting the test from the execution
240 Add test_perf_cleanup shell function to the perf suite, that allows
241 the script writers to define a test with a clean-up action.
243 Holding until needed.
246 * yt/shortened-rename (2013-10-18) 2 commits
247 - SQUASH??? style fixes and s/omit/shorten/ where appropriate
248 - diff.c: keep arrow(=>) on show_stats()'s shortened filename part to make rename visible
250 Attempts to give more weight on the fact that a filepair represents
251 a rename than showing substring of the actual path when diffstat
252 lines are not wide enough.
254 I am not sure if that is solving a right problem, though.
257 * jc/ref-excludes (2013-09-03) 2 commits
258 - document --exclude option
259 - revision: introduce --exclude=<glob> to tame wildcards
261 People often wished a way to tell "git log --branches" (and "git
262 log --remotes --not --branches") to exclude some local branches
263 from the expansion of "--branches" (similarly for "--tags", "--all"
264 and "--glob=<pattern>"). Now they have one.
266 Needs a matching change to rev-parse.
269 * rv/send-email-cache-generated-mid (2013-08-21) 2 commits
270 - git-send-email: Cache generated message-ids, use them when prompting
271 - git-send-email: add optional 'choices' parameter to the ask sub
274 * rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
275 - ### DONTMERGE: needs better explanation on what config they need
276 - pack-refs.c: Add missing call to git_config()
277 - show-ref.c: Add missing call to git_config()
279 The changes themselves are probably good, but it is unclear what
280 basic setting needs to be read for which exact operation.
282 Waiting for clarification.
286 * jc/format-patch (2013-04-22) 2 commits
287 - format-patch: --inline-single
288 - format-patch: rename "no_inline" field
290 A new option to send a single patch to the standard output to be
291 appended at the bottom of a message. I personally have no need for
292 this, but it was easy enough to cobble together. Tests, docs and
293 stripping out more MIMEy stuff are left as exercises to interested
297 * jk/gitweb-utf8 (2013-04-08) 4 commits
298 - gitweb: Fix broken blob action parameters on blob/commitdiff pages
299 - gitweb: Don't append ';js=(0|1)' to external links
300 - gitweb: Make feed title valid utf8
301 - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
303 Various fixes to gitweb.
305 Drew Northup volunteered to take a look into this.
309 * jc/show-branch (2013-06-07) 5 commits
310 - show-branch: use commit slab to represent bitflags of arbitrary width
311 - show-branch.c: remove "all_mask"
312 - show-branch.c: abstract out "flags" operation
313 - show-branch.c: lift all_mask/all_revs to a global static
314 - show-branch.c: update comment style
316 Waiting for the final step to lift the hard-limit before sending it out.
318 --------------------------------------------------
321 * sc/doc-howto-dumb-http (2013-10-28) 1 commit
322 - doc/howto: warn about (dumb)http server document being too old
324 Will merge to 'next'.
327 * bw/solaris-sed-tr-test-portability (2013-10-30) 2 commits
328 - Avoid difference in tr semantics between System V and BSD
329 - Change sed i\ usage to something Solaris' sed can handle
331 The bottom one may want to lose the "\<nl>" that seems to be a
335 * fc/transport-helper-fixes (2013-10-28) 13 commits
336 - test: remote-helper: add test for force pushes
337 - git-remote-testgit: support the new 'force' option
338 - fixup! transport-helper: add 'force' to 'export' helpers
339 - transport-helper: don't update refs in dry-run
340 - transport-helper: add support to delete branches
341 - fast-export: add support to delete refs
342 - fast-import: add support to delete refs
343 - transport-helper: add support for old:new refspec
344 - fast-export: add new --refspec option
345 - fast-export: improve argument parsing
346 - transport-helper: check for 'forced update' message
347 - transport-helper: fix extra lines
348 - transport-helper: add 'force' to 'export' helpers
350 This may need to be rerolled, taking review comments and
351 discussions into account.
354 * jh/loose-object-dirs-creation-race (2013-10-28) 1 commit
355 - sha1_file.c:create_tmpfile(): Fix race when creating loose object dirs
357 Will merge to 'next'.
360 * js/test-help-format-windows-port-fix (2013-10-30) 1 commit
361 (merged to 'next' on 2013-10-30 at b98e991)
362 + t3200: do not open a HTML manual page when DEFAULT_MAN_FORMAT is html
364 Will merge to 'master'.
367 * js/tests-windows-port-fix (2013-10-28) 3 commits
368 (merged to 'next' on 2013-10-30 at 61f8e24)
369 + tests: undo special treatment of CRLF for Windows
370 + Windows: a test_cmp that is agnostic to random LF <> CRLF conversions
371 + t5300-pack-object: do not compare binary data using test_cmp
373 Will merge to 'master'.
376 * nd/liteal-pathspecs (2013-10-28) 1 commit
377 - pathspec: stop --*-pathspecs impact on internal parse_pathspec() uses
379 Will merge to 'next'.
382 * rs/web-browse-xdg-open (2013-10-30) 1 commit
383 (merged to 'next' on 2013-10-30 at 37d6eb4)
384 + web--browse: Add support for xdg-open
386 Will merge to 'master'.
389 * sb/refs-code-cleanup (2013-10-28) 2 commits
390 (merged to 'next' on 2013-10-30 at a9bf06a)
391 + cache: remove unused function 'have_git_dir'
392 + refs: remove unused function invalidate_ref_cache
394 Will merge to 'master'.
397 * th/reflog-annotated-tag (2013-10-28) 1 commit
398 - reflog: handle lightweight and annotated tags equally
400 Will merge to 'next'.
403 * tr/merge-recursive-index-only (2013-10-28) 3 commits
404 - merge-recursive: -Xindex-only to leave worktree unchanged
405 - merge-recursive: internal flag to avoid touching the worktree
406 - merge-recursive: remove dead conditional in update_stages()
409 * bc/http-100-continue (2013-10-29) 1 commit
410 - remote-curl: fix large pushes with GSSAPI
412 Conditionally allow "100 Continue" responses to help use of
413 GSS-Negotiate authentication scheme over HTTP transport.
415 Still being updated, but it seems like we are getting there.
418 * jc/merge-base-reflog (2013-10-29) 2 commits
419 - merge-base: teach "--fork-point" mode
420 - merge-base: use OPT_CMDMODE and clarify the command line parsing
422 Code the logic in "pull --rebase" that figures out a fork point
423 from reflog entries in C.
425 Will merge to 'next'.
428 * jk/for-each-ref-skip-parsing (2013-10-30) 1 commit
429 (merged to 'next' on 2013-10-30 at 56ea310)
430 + for-each-ref: avoid loading objects to print %(objectname)
432 Will merge to 'master'.
435 * jk/pack-bitmap (2013-10-30) 20 commits
436 - count-objects: recognize .bitmap in garbage-checking
437 - pack-bitmap: implement optional name_hash cache
438 - t: add basic bitmap functionality tests
439 - repack: consider bitmaps when performing repacks
440 - repack: handle optional files created by pack-objects
441 - repack: turn exts array into array-of-struct
442 - repack: stop using magic number for ARRAY_SIZE(exts)
443 - pack-objects: implement bitmap writing
444 - rev-list: add bitmap mode to speed up object lists
445 - pack-objects: use bitmaps when packing objects
446 - pack-bitmap: add support for bitmap indexes
447 - documentation: add documentation for the bitmap format
448 - ewah: compressed bitmap implementation
449 - compat: add endianness helpers
450 - sha1_file: export `git_open_noatime`
451 - revision: allow setting custom limiter function
452 - pack-objects: factor out name_hash
453 - pack-objects: refactor the packing list
454 - revindex: export new APIs
455 - sha1write: make buffer const-correct
457 Borrows the bitmap index into packfiles from JGit to speed up
458 enumeration of objects involved in a commit range without having to
459 fully traverse the history.
461 Still under discussion.
464 * jk/robustify-parse-commit (2013-10-24) 6 commits
465 - checkout: do not die when leaving broken detached HEAD
466 - use parse_commit_or_die instead of custom message
467 - use parse_commit_or_die instead of segfaulting
468 - assume parse_commit checks for NULL commit
469 - assume parse_commit checks commit->object.parsed
470 - log_tree_diff: die when we fail to parse a commit
472 Will merge to 'next' after taking another look.
475 * mh/fetch-tags-in-addition-to-normal-refs (2013-10-30) 23 commits
476 - fetch: improve the error messages emitted for conflicting refspecs
477 - handle_duplicate(): mark error message for translation
478 - ref_remote_duplicates(): extract a function handle_duplicate()
479 - ref_remove_duplicates(): simplify loop logic
480 - t5536: new test of refspec conflicts when fetching
481 - ref_remove_duplicates(): avoid redundant bisection
482 - git-fetch.txt: improve description of tag auto-following
483 - fetch-options.txt: simplify ifdef/ifndef/endif usage
484 - fetch, remote: properly convey --no-prune options to subprocesses
485 - builtin/remote.c:update(): use struct argv_array
486 - builtin/remote.c: reorder function definitions
487 - query_refspecs(): move some constants out of the loop
488 - fetch --prune: prune only based on explicit refspecs
489 - fetch --tags: fetch tags *in addition to* other stuff
490 - fetch: only opportunistically update references based on command line
491 - get_expanded_map(): avoid memory leak
492 - get_expanded_map(): add docstring
493 - builtin/fetch.c: reorder function definitions
494 - get_ref_map(): rename local variables
495 - api-remote.txt: correct section "struct refspec"
496 - t5510: check that "git fetch --prune --tags" does not prune branches
497 - t5510: prepare test refs more straightforwardly
498 - t5510: use the correct tag name in test
500 Will merge to 'next' after taking another look.
503 * jk/pack-corruption-post-mortem (2013-10-25) 1 commit
504 (merged to 'next' on 2013-10-30 at 2248df6)
505 + howto: add article on recovering a corrupted object
507 Will merge to 'master'.
510 * jk/reset-p-current-head-fix (2013-10-25) 2 commits
511 (merged to 'next' on 2013-10-30 at 37ae6e0)
512 + reset: pass real rev name to add--interactive
513 + add-interactive: handle unborn branch in patch mode
515 "git reset -p HEAD" has codepath to special case it from resetting
516 to contents of other commits, but recent change broke it.
518 Will merge to 'master'.
521 * nv/parseopt-opt-arg (2013-10-25) 1 commit
522 - rev-parse --parseopt: add the --sticked-long mode
524 Enhance "rev-parse --parseopt" mode to help parsing options with
525 an optional parameter.
527 Option name bikeshedding aside ("Is it sticked or stuck?"), the
528 change seems to be competently done.
531 * ap/remote-hg-unquote-cquote (2013-10-23) 1 commit
532 (merged to 'next' on 2013-10-28 at 6b99fd5)
533 + remote-hg: unquote C-style paths when exporting
535 A fast-import stream expresses a pathname with funny characters by
536 quoting them in C style; remote-hg remote helper forgot to unquote
539 Will merge to 'master'.
542 * ak/submodule-foreach-quoting (2013-09-27) 1 commit
543 (merged to 'next' on 2013-10-14 at d77c5f1)
544 + submodule foreach: skip eval for more than one argument
546 A behavior change, but a worthwhile one: "git submodule foreach"
547 was treating its arguments as part of a single command to be
548 concatenated and passed to a shell, making writing buggy
551 This patch preserves the old "just pass it to the shell" behavior
552 when a single argument is passed to 'git submodule foreach' and
553 moves to a new "skip the shell and use the arguments passed
554 unmolested" behavior when more than one argument is passed.
556 The old behavior (always concatenating and passing to the shell)
557 was similar to the 'ssh' command, while the new behavior (switching
558 on the number of arguments) is what 'xterm -e' does.
560 May need more thought to make sure this change is advertised well
561 so that scripts that used multiple arguments but added their own
562 extra layer of quoting are not broken.
564 Will cook in 'next' for the rest of this cycle.
567 * jl/submodule-mv (2013-10-13) 1 commit
568 (merged to 'next' on 2013-10-28 at 8dc9b31)
569 + mv: Fix spurious warning when moving a file in presence of submodules
571 Moving a regular file in a repository with a .gitmodules file was
572 producing a warning 'Could not find section in .gitmodules where
575 Will merge to 'master'.
578 * kb/fast-hashmap (2013-10-22) 12 commits
579 - remove old hash.[ch] implementation
580 - read-cache.c: fix memory leaks caused by removed cache entries
581 - name-hash.c: remove cache entries instead of marking them CE_UNHASHED
582 - name-hash.c: use new hash map implementation for cache entries
583 - name-hash.c: remove unreferenced directory entries
584 - name-hash.c: use new hash map implementation for directories
585 - diffcore-rename.c: use new hash map implementation
586 - diffcore-rename.c: simplify finding exact renames
587 - diffcore-rename.c: move code around to prepare for the next patch
588 - buitin/describe.c: use new hash map implementation
589 - add a hashtable implementation that supports O(1) removal
590 - submodule: don't access the .gitmodules cache entry after removing it
592 Improvements to our hash table to get it to meet the needs of the
593 msysgit fscache project, with some nice performance improvements.
595 The preparatory clean-up to submodule from Jens is at the bottom. I
596 also squashed in a fix-up by Karsten found at $gmane/236468 (please
597 double-check the result).
599 More valgrind breakage reported ($gmane/236869).
602 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
603 (merged to 'next' on 2013-10-28 at d8cdf30)
604 + git add: -u/-A now affects the entire working tree
606 Will cook in 'next' until Git 2.0.
609 * jc/core-checkstat-2.0 (2013-05-06) 1 commit
610 (merged to 'next' on 2013-10-28 at f1bec96)
611 + core.statinfo: remove as promised in Git 2.0
613 Will cook in 'next' until Git 2.0.
616 * jc/push-2.0-default-to-simple (2013-06-18) 1 commit
617 (merged to 'next' on 2013-10-28 at 3153a9e)
618 + push: switch default from "matching" to "simple"
620 Will cook in 'next' until Git 2.0.
623 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
624 (merged to 'next' on 2013-10-28 at 5fd76ec)
625 + git add <pathspec>... defaults to "-A"
627 Updated endgame for "git add <pathspec>" that defaults to "--all"
628 aka "--no-ignore-removal".
630 Will cook in 'next' until Git 2.0.
633 * jc/hold-diff-remove-q-synonym-for-no-deletion (2013-07-19) 1 commit
634 - diff: remove "diff-files -q" in a version of Git in a distant future
636 Will merge to and cook in 'next' until a distant future.