1 To: git@vger.kernel.org
3 Subject: What's cooking in git.git (Nov 2013, #02; Wed, 6)
4 X-master-at: 6ba01babcd37e92e88221fcf35ee4471aa66bf4c
5 X-next-at: 1ea5b1861e50543207d31c936d4f7bbd4571e433
7 What's cooking in git.git (Nov 2013, #02; Wed, 6)
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 The first release candidate 1.8.5-rc1 has been tagged.
16 As promised/requested, the final steps for 2.0 are in 'next'; they,
17 together with a handful topics that have been merged to 'next'
18 fairly recently, will _not_ be part of the upcoming 1.8.5 release,
19 but will be carried over in 'next' to the next cycle.
21 There is a proposed rewording of advice message from "git push"
22 patch, which is tentatively queued near the tip of 'pu' for now; it
23 would be nice to get a few more sets of eyeballs. I am not sure if
24 we should merge it before the 1.8.5 final, yet (we have i18n to
25 worry about, among other things).
27 You can find the changes described here in the integration branches
28 of the repositories listed at
30 http://git-blame.blogspot.com/p/git-public-repositories.html
32 --------------------------------------------------
33 [Graduated to "master"]
35 * ak/cvsserver-stabilize-use-of-hash-keys (2013-10-30) 1 commit
36 (merged to 'next' on 2013-11-01 at cc3b890)
37 + cvsserver: Determinize output to combat Perl 5.18 hash randomization
42 * bw/solaris-sed-tr-test-portability (2013-11-04) 3 commits
43 (merged to 'next' on 2013-11-04 at c2c09e28)
44 + t4015: simplify sed command that is not even seen by sed
45 (merged to 'next' on 2013-11-01 at f04be9a)
46 + Avoid difference in tr semantics between System V and BSD
47 + Change sed i\ usage to something Solaris' sed can handle
49 Shell script portability fix.
52 * fc/trivial (2013-10-31) 13 commits
53 (merged to 'next' on 2013-11-04 at c608324)
54 + setup: trivial style fixes
55 + run-command: trivial style fixes
56 + diff: trivial style fix
57 + revision: trivial style fixes
58 + pretty: trivial style fix
59 + describe: trivial style fixes
60 + transport-helper: trivial style fix
61 + sha1-name: trivial style cleanup
62 + branch: trivial style fix
63 + revision: add missing include
64 + doc/pull: clarify the illustrations
65 + t: replace pulls with merges
66 + merge: simplify ff-only option
68 A random collection of style fixes and minor doc updates.
71 * jk/duplicate-objects-in-packs (2013-10-31) 1 commit
72 (merged to 'next' on 2013-11-01 at 8951339)
73 + Fix '\%o' for printf from coreutils
75 Test fixup to a topic recently graduated.
78 * jk/subtree-install-fix (2013-10-30) 1 commit
79 (merged to 'next' on 2013-11-01 at 531bd79)
80 + subtree: add makefile target for html docs
82 We did not generate HTML version of documentation to "git subtree"
86 * jk/wrap-perl-used-in-tests (2013-10-29) 2 commits
87 (merged to 'next' on 2013-11-01 at 73444c5)
88 + t: use perl instead of "$PERL_PATH" where applicable
89 + t: provide a perl() function which uses $PERL_PATH
94 * jn/test-prereq-perl-doc (2013-10-28) 1 commit
95 (merged to 'next' on 2013-11-01 at 4d4a8b4)
96 + t/README: tests can use perl even with NO_PERL
98 The interaction between use of Perl in our test suite and NO_PERL
99 has been clarified a bit.
102 * sc/doc-howto-dumb-http (2013-10-28) 1 commit
103 (merged to 'next' on 2013-11-01 at a734b6e)
104 + doc/howto: warn about (dumb)http server document being too old
106 An ancient How-To on serving Git repositories on an HTTP server
107 lacked a warning that it has been mostly superseded with more
111 * vd/doc-unpack-objects (2013-11-01) 2 commits
112 (merged to 'next' on 2013-11-01 at 443d0f4)
113 + Documentation: "pack-file" is not literal in unpack-objects
114 + Documentation: restore a space in unpack-objects usage
116 The synopsis section of "git unpack-objects" documentation has been
119 --------------------------------------------------
122 * cc/remote-remove-redundant-postfixcmp (2013-11-06) 2 commits
123 (merged to 'next' on 2013-11-06 at 7b45219)
124 + Rename suffixcmp() to has_suffix() and invert its result
125 (merged to 'next' on 2013-11-04 at 6408502)
126 + builtin/remote: remove postfixcmp() and use suffixcmp() instead
133 * tb/clone-ssh-with-colon-for-port (2013-11-04) 1 commit
134 . git clone: is an URL local or ssh
136 Still being reworked.
139 * cn/thin-push-capability (2013-11-06) 2 commits
140 - send-pack: only send a thin pack if the server supports it
141 - receive-pack: advertise thin-pack
143 Peff had a good suggestion to control this by expressing what the
144 receiving end wants in a more direct way, namely to advertise a
145 'no-thin' trait in the capability list.
148 * nd/wt-status-align-i18n (2013-11-06) 1 commit
149 - wt-status: take the alignment burden off translators
151 An attempt to automatically align the names in the "git status"
152 output, taking the display width of (translated) section labels
156 * nv/commit-gpgsign-config (2013-11-06) 1 commit
157 - Add the commit.gpgsign option to sign all commits
159 Introduce commit.gpgsign configuration variable to force every
160 commit to be GPG signed.
162 Needs tests, perhaps?
165 * sb/sha1-loose-object-info-check-existence (2013-11-06) 1 commit
166 (merged to 'next' on 2013-11-06 at 1ea5b18)
167 + sha1_loose_object_info(): do not return success on missing object
169 "git cat-file --batch-check=ok" did not check the existence of the
172 Will merge to 'next', but I think this can wait in 'next' during
175 * gj/push-more-verbose-advice (2013-11-06) 2 commits
176 - push: switch default from "matching" to "simple"
177 - push: Enhance unspecified push default warning
179 Explain 'simple' and 'matching' in "git push" advice message; the
180 topmost patch is a rebase of jc/push-2.0-default-to-simple on top
183 --------------------------------------------------
186 * np/pack-v4 (2013-09-18) 90 commits
187 . packv4-parse.c: add tree offset caching
188 . t1050: replace one instance of show-index with verify-pack
189 . index-pack, pack-objects: allow creating .idx v2 with .pack v4
190 . unpack-objects: decode v4 trees
191 . unpack-objects: allow to save processed bytes to a buffer
194 Nico and Duy advancing the eternal vaporware pack-v4. This is here
195 primarily for wider distribution of the preview edition.
197 Temporarily ejected from 'pu', to try out jk/pack-bitmap, which
198 this topic conflicts with.
201 * mf/graph-show-root (2013-10-25) 1 commit
202 . graph.c: mark root commit differently
204 In a repository with multiple-roots, "log --graph", especially with
205 "--oneline", does not give the reader enough visual cue to see
206 where one line of history ended and a separate history began.
208 This is the version that marks the roots 'x' when they would have
209 been marked as '*'; Keshav Kini suggested an alternative of giving
210 an extra blank line after every root, which I tend to think is a
211 better approach to the problem.
214 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
215 - perf-lib: add test_perf_cleanup target
216 - perf-lib: split starting the test from the execution
218 Add test_perf_cleanup shell function to the perf suite, that allows
219 the script writers to define a test with a clean-up action.
221 Holding until needed.
224 * yt/shortened-rename (2013-10-18) 2 commits
225 - SQUASH??? style fixes and s/omit/shorten/ where appropriate
226 - diff.c: keep arrow(=>) on show_stats()'s shortened filename part to make rename visible
228 Attempts to give more weight on the fact that a filepair represents
229 a rename than showing substring of the actual path when diffstat
230 lines are not wide enough.
232 I am not sure if that is solving a right problem, though.
235 * rv/send-email-cache-generated-mid (2013-08-21) 2 commits
236 - git-send-email: Cache generated message-ids, use them when prompting
237 - git-send-email: add optional 'choices' parameter to the ask sub
240 * rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
241 - ### DONTMERGE: needs better explanation on what config they need
242 - pack-refs.c: Add missing call to git_config()
243 - show-ref.c: Add missing call to git_config()
245 The changes themselves are probably good, but it is unclear what
246 basic setting needs to be read for which exact operation.
248 Waiting for clarification.
252 * jc/format-patch (2013-04-22) 2 commits
253 - format-patch: --inline-single
254 - format-patch: rename "no_inline" field
256 A new option to send a single patch to the standard output to be
257 appended at the bottom of a message. I personally have no need for
258 this, but it was easy enough to cobble together. Tests, docs and
259 stripping out more MIMEy stuff are left as exercises to interested
263 * jk/gitweb-utf8 (2013-04-08) 4 commits
264 - gitweb: Fix broken blob action parameters on blob/commitdiff pages
265 - gitweb: Don't append ';js=(0|1)' to external links
266 - gitweb: Make feed title valid utf8
267 - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
269 Various fixes to gitweb.
271 Drew Northup volunteered to take a look into this.
275 * jc/show-branch (2013-06-07) 5 commits
276 - show-branch: use commit slab to represent bitflags of arbitrary width
277 - show-branch.c: remove "all_mask"
278 - show-branch.c: abstract out "flags" operation
279 - show-branch.c: lift all_mask/all_revs to a global static
280 - show-branch.c: update comment style
282 Waiting for the final step to lift the hard-limit before sending it out.
284 --------------------------------------------------
287 * rr/for-each-ref-decoration (2013-10-31) 4 commits
288 - fixup! for-each-ref: introduce %(upstream:track[short])
289 - for-each-ref: introduce %(upstream:track[short])
290 - for-each-ref: introduce %(HEAD) asterisk marker
291 - for-each-ref: introduce %C(...) for color
294 * jk/two-way-merge-corner-case-fix (2013-11-04) 3 commits
295 (merged to 'next' on 2013-11-04 at 79f4fb0)
296 + t1005: add test for "read-tree --reset -u A B"
298 + unpack-trees: fix "read-tree -u --reset A B" with conflicted index
300 Fix a rather longstanding corner-case bug in twoway "reset to
301 there" merge, which is most often seen in "git am --abort".
306 * jc/ref-excludes (2013-11-01) 5 commits
307 (merged to 'next' on 2013-11-04 at fac1ed0)
308 + rev-parse: introduce --exclude=<glob> to tame wildcards
309 + rev-list --exclude: export add/clear-ref-exclusion and ref-excluded API
310 + rev-list --exclude: tests
311 + document --exclude option
312 + revision: introduce --exclude=<glob> to tame wildcards
314 People often wished a way to tell "git log --branches" (and "git
315 log --remotes --not --branches") to exclude some local branches
316 from the expansion of "--branches" (similarly for "--tags", "--all"
317 and "--glob=<pattern>"). Now they have one.
322 * jk/replace-perl-in-built-scripts (2013-10-29) 1 commit
323 (merged to 'next' on 2013-11-01 at 2384e29)
324 + use @@PERL@@ in built scripts
329 * jt/commit-fixes-footer (2013-10-30) 1 commit
330 - commit: Add -f, --fixes <commit> option to add Fixes: line
332 There is an ongoing discussion around this topic; in general I am
333 fairly negative on a new feature that is too narrow and prefer a
334 more generic solution that can be tailored for specific needs, as
335 many people stated in the thread.
338 * fc/transport-helper-fixes (2013-11-06) 12 commits
339 - transport-helper: demote lack of "force" option to a warning
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 - fixup! fast-export: add new --refspec option
345 - fast-export: add new --refspec option
346 - fast-export: improve argument parsing
347 - transport-helper: check for 'forced update' message
348 - transport-helper: add 'force' to 'export' helpers
349 - transport-helper: don't update refs in dry-run
350 - transport-helper: mismerge fix
352 Updates transport-helper, fast-import and fast-export to allow the
353 ref mapping and ref deletion in a way similar to the natively
354 supported transports.
356 Expecting a reroll to fix use of vla.
359 * jh/loose-object-dirs-creation-race (2013-10-28) 1 commit
360 (merged to 'next' on 2013-11-01 at 3169b0f)
361 + sha1_file.c:create_tmpfile(): Fix race when creating loose object dirs
366 * nd/liteal-pathspecs (2013-10-28) 1 commit
367 (merged to 'next' on 2013-11-01 at 1a91775)
368 + pathspec: stop --*-pathspecs impact on internal parse_pathspec() uses
373 * th/reflog-annotated-tag (2013-10-28) 1 commit
374 (merged to 'next' on 2013-11-01 at 8b154cc)
375 + reflog: handle lightweight and annotated tags equally
377 "git log -g $annotated_tag", when there is no reflog history, should
378 have produced a single output entry (i.e. the ref creation event),
379 but instead showed the history leading to the tag.
381 Broken at the design level. Any reflog entry that points at a non
382 commit needs to be handled with new code that does not exist yet,
383 and lifting the "this code handles only commits" without adding
384 such code does not solve anything.
387 * tr/merge-recursive-index-only (2013-10-28) 3 commits
388 - merge-recursive: -Xindex-only to leave worktree unchanged
389 - merge-recursive: internal flag to avoid touching the worktree
390 - merge-recursive: remove dead conditional in update_stages()
392 Will hold until using script appears.
395 * bc/http-100-continue (2013-10-31) 3 commits
396 (merged to 'next' on 2013-11-01 at e12ae23)
397 + remote-curl: fix large pushes with GSSAPI
398 + remote-curl: pass curl slot_results back through run_slot
399 + http: return curl's AUTHAVAIL via slot_results
401 Issue "100 Continue" responses to help use of GSS-Negotiate
402 authentication scheme over HTTP transport when needed.
407 * jc/merge-base-reflog (2013-10-29) 2 commits
408 (merged to 'next' on 2013-11-01 at 6114764)
409 + merge-base: teach "--fork-point" mode
410 + merge-base: use OPT_CMDMODE and clarify the command line parsing
412 Code the logic in "pull --rebase" that figures out a fork point
413 from reflog entries in C.
418 * jk/pack-bitmap (2013-10-30) 20 commits
419 - count-objects: recognize .bitmap in garbage-checking
420 - pack-bitmap: implement optional name_hash cache
421 - t: add basic bitmap functionality tests
422 - repack: consider bitmaps when performing repacks
423 - repack: handle optional files created by pack-objects
424 - repack: turn exts array into array-of-struct
425 - repack: stop using magic number for ARRAY_SIZE(exts)
426 - pack-objects: implement bitmap writing
427 - rev-list: add bitmap mode to speed up object lists
428 - pack-objects: use bitmaps when packing objects
429 - pack-bitmap: add support for bitmap indexes
430 - documentation: add documentation for the bitmap format
431 - ewah: compressed bitmap implementation
432 - compat: add endianness helpers
433 - sha1_file: export `git_open_noatime`
434 - revision: allow setting custom limiter function
435 - pack-objects: factor out name_hash
436 - pack-objects: refactor the packing list
437 - revindex: export new APIs
438 - sha1write: make buffer const-correct
440 Borrows the bitmap index into packfiles from JGit to speed up
441 enumeration of objects involved in a commit range without having to
442 fully traverse the history.
444 Still under discussion.
447 * jk/robustify-parse-commit (2013-10-24) 6 commits
448 (merged to 'next' on 2013-11-01 at 2bfbaab)
449 + checkout: do not die when leaving broken detached HEAD
450 + use parse_commit_or_die instead of custom message
451 + use parse_commit_or_die instead of segfaulting
452 + assume parse_commit checks for NULL commit
453 + assume parse_commit checks commit->object.parsed
454 + log_tree_diff: die when we fail to parse a commit
459 * mh/fetch-tags-in-addition-to-normal-refs (2013-10-30) 23 commits
460 (merged to 'next' on 2013-11-06 at 6932893)
461 + fetch: improve the error messages emitted for conflicting refspecs
462 + handle_duplicate(): mark error message for translation
463 + ref_remote_duplicates(): extract a function handle_duplicate()
464 + ref_remove_duplicates(): simplify loop logic
465 + t5536: new test of refspec conflicts when fetching
466 + ref_remove_duplicates(): avoid redundant bisection
467 + git-fetch.txt: improve description of tag auto-following
468 + fetch-options.txt: simplify ifdef/ifndef/endif usage
469 + fetch, remote: properly convey --no-prune options to subprocesses
470 + builtin/remote.c:update(): use struct argv_array
471 + builtin/remote.c: reorder function definitions
472 + query_refspecs(): move some constants out of the loop
473 + fetch --prune: prune only based on explicit refspecs
474 + fetch --tags: fetch tags *in addition to* other stuff
475 + fetch: only opportunistically update references based on command line
476 + get_expanded_map(): avoid memory leak
477 + get_expanded_map(): add docstring
478 + builtin/fetch.c: reorder function definitions
479 + get_ref_map(): rename local variables
480 + api-remote.txt: correct section "struct refspec"
481 + t5510: check that "git fetch --prune --tags" does not prune branches
482 + t5510: prepare test refs more straightforwardly
483 + t5510: use the correct tag name in test
485 The "-tags" option to "git fetch" used to be literally a synonym to
486 a "refs/tags/*:refs/tags/*" refspec, which meant that (1) as an
487 explicit refspec given from the command line, it silenced the lazy
488 "git fetch" default that is configured, and (2) also as an explicit
489 refspec given from the command line, it interacted with "--prune"
490 to remove any tag that the remote we are fetching from does not
493 This demotes it to an option; with it, we fetch all tags in
494 addition to what would be fetched without the option, and it does
495 not interact with the decision "--prune" makes to see what
496 remote-tracking refs the local has are missing the remote
502 * nv/parseopt-opt-arg (2013-10-31) 2 commits
503 (merged to 'next' on 2013-11-01 at cd2afd9)
504 + rev-parse --parseopt: add the --stuck-long mode
505 + Use the word 'stuck' instead of 'sticked'
507 Enhance "rev-parse --parseopt" mode to help parsing options with
508 an optional parameter.
513 * ak/submodule-foreach-quoting (2013-09-27) 1 commit
514 (merged to 'next' on 2013-10-14 at d77c5f1)
515 + submodule foreach: skip eval for more than one argument
517 A behavior change, but a worthwhile one: "git submodule foreach"
518 was treating its arguments as part of a single command to be
519 concatenated and passed to a shell, making writing buggy
522 This patch preserves the old "just pass it to the shell" behavior
523 when a single argument is passed to 'git submodule foreach' and
524 moves to a new "skip the shell and use the arguments passed
525 unmolested" behavior when more than one argument is passed.
527 The old behavior (always concatenating and passing to the shell)
528 was similar to the 'ssh' command, while the new behavior (switching
529 on the number of arguments) is what 'xterm -e' does.
531 May need more thought to make sure this change is advertised well
532 so that scripts that used multiple arguments but added their own
533 extra layer of quoting are not broken.
538 * kb/fast-hashmap (2013-10-22) 12 commits
539 - remove old hash.[ch] implementation
540 - read-cache.c: fix memory leaks caused by removed cache entries
541 - name-hash.c: remove cache entries instead of marking them CE_UNHASHED
542 - name-hash.c: use new hash map implementation for cache entries
543 - name-hash.c: remove unreferenced directory entries
544 - name-hash.c: use new hash map implementation for directories
545 - diffcore-rename.c: use new hash map implementation
546 - diffcore-rename.c: simplify finding exact renames
547 - diffcore-rename.c: move code around to prepare for the next patch
548 - buitin/describe.c: use new hash map implementation
549 - add a hashtable implementation that supports O(1) removal
550 - submodule: don't access the .gitmodules cache entry after removing it
552 Improvements to our hash table to get it to meet the needs of the
553 msysgit fscache project, with some nice performance improvements.
555 The preparatory clean-up to submodule from Jens is at the bottom. I
556 also squashed in a fix-up by Karsten found at $gmane/236468 (please
557 double-check the result).
559 More valgrind breakage reported ($gmane/236869).
562 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
563 (merged to 'next' on 2013-10-28 at d8cdf30)
564 + git add: -u/-A now affects the entire working tree
566 Will cook in 'next' until Git 2.0.
569 * jc/core-checkstat-2.0 (2013-05-06) 1 commit
570 (merged to 'next' on 2013-10-28 at f1bec96)
571 + core.statinfo: remove as promised in Git 2.0
573 Will cook in 'next' until Git 2.0.
576 * jc/push-2.0-default-to-simple (2013-06-18) 1 commit
577 (merged to 'next' on 2013-10-28 at 3153a9e)
578 + push: switch default from "matching" to "simple"
580 Will cook in 'next' until Git 2.0.
583 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
584 (merged to 'next' on 2013-10-28 at 5fd76ec)
585 + git add <pathspec>... defaults to "-A"
587 Updated endgame for "git add <pathspec>" that defaults to "--all"
588 aka "--no-ignore-removal".
590 Will cook in 'next' until Git 2.0.
593 * jc/hold-diff-remove-q-synonym-for-no-deletion (2013-07-19) 1 commit
594 (merged to 'next' on 2013-11-01 at 5fc26e4)
595 + diff: remove "diff-files -q" in a version of Git in a distant future
597 Will cook in 'next' until a distant future.