1 To: git@vger.kernel.org
3 Subject: What's cooking in git.git (Nov 2013, #04; Wed, 13)
4 X-master-at: 03973056a08d1694cf1c819eb2e8b9557650f70e
5 X-next-at: 87216524bc6ef3cbd79ae913726957a0a7b5c236
7 What's cooking in git.git (Nov 2013, #04; Wed, 13)
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 second release candidate has been tagged. Hopefully we can have
15 an uneventful 1.8.5 final next week.
17 You can find the changes described here in the integration branches
18 of the repositories listed at
20 http://git-blame.blogspot.com/p/git-public-repositories.html
22 --------------------------------------------------
25 * jc/bundle (2013-11-12) 1 commit
26 - bundle: use argv-array
31 * jj/log-doc (2013-11-13) 2 commits
32 - Documentation/git-log.txt: mark-up fix and minor rephasing
33 - Documentation/git-log: update "--log-size" description
36 Needs extra sets of eyeballs.
39 * jj/rev-list-options-doc (2013-11-13) 1 commit
40 - Documentation/rev-list-options: fix mark-ups and typos
43 Needs extra sets of eyeballs.
46 * jk/remove-deprecated (2013-11-12) 4 commits
47 (merged to 'next' on 2013-11-13 at c324792)
48 + peek-remote: remove deprecated alias of ls-remote
49 + lost-found: remove deprecated command
50 + tar-tree: remove deprecated command
51 + repo-config: remove deprecated alias for "git config"
53 Will cook in 'next' until a distant future.
56 * mi/typofixes (2013-11-12) 3 commits
57 (merged to 'next' on 2013-11-13 at bb7c2eb)
59 + Documentation/technical/http-protocol.txt: typofixes
60 + typofixes: fix misspelt comments
65 * rh/remote-hg-bzr-updates (2013-11-12) 9 commits
66 - remote-bzr, remote-hg: fix email address regular expression
67 - test-hg.sh: help user correlate verbose output with email test
68 - test-hg.sh: fix duplicate content strings in author tests
69 - test-hg.sh: avoid obsolete 'test' syntax
70 - test-hg.sh: eliminate 'local' bashism
71 - test-bzr.sh, test-hg.sh: prepare for change to push.default=simple
72 - test-bzr.sh, test-hg.sh: allow running from any dir
73 - test-lib.sh: convert $TEST_DIRECTORY to an absolute path
74 - remote-hg: don't decode UTF-8 paths into Unicode objects
79 * tr/config-multivalue-lift-max (2013-11-13) 1 commit
80 - config: arbitrary number of matches for --unset and --replace-all
85 --------------------------------------------------
88 * tb/clone-ssh-with-colon-for-port (2013-11-04) 1 commit
89 . git clone: is an URL local or ssh
94 * cn/thin-push-capability (2013-11-06) 2 commits
95 - send-pack: only send a thin pack if the server supports it
96 - receive-pack: advertise thin-pack
98 Peff had a good suggestion to control this by expressing what the
99 receiving end wants in a more direct way, namely to advertise a
100 'no-thin' trait in the capability list, which seems to be favored
104 * jt/commit-fixes-footer (2013-10-30) 1 commit
105 - commit: Add -f, --fixes <commit> option to add Fixes: line
107 There is an ongoing discussion around this topic; in general I am
108 fairly negative on a new feature that is too narrow and prefer a
109 more generic solution that can be tailored for specific needs, as
110 many people stated in the thread.
112 It appears that the discussion stalled.
115 * np/pack-v4 (2013-09-18) 90 commits
116 . packv4-parse.c: add tree offset caching
117 . t1050: replace one instance of show-index with verify-pack
118 . index-pack, pack-objects: allow creating .idx v2 with .pack v4
119 . unpack-objects: decode v4 trees
120 . unpack-objects: allow to save processed bytes to a buffer
123 Nico and Duy advancing the eternal vaporware pack-v4. This is here
124 primarily for wider distribution of the preview edition.
126 Temporarily ejected from 'pu', to try out jk/pack-bitmap, which
127 this topic conflicts with.
130 * jk/pack-bitmap (2013-10-30) 20 commits
131 - count-objects: recognize .bitmap in garbage-checking
132 - pack-bitmap: implement optional name_hash cache
133 - t: add basic bitmap functionality tests
134 - repack: consider bitmaps when performing repacks
135 - repack: handle optional files created by pack-objects
136 - repack: turn exts array into array-of-struct
137 - repack: stop using magic number for ARRAY_SIZE(exts)
138 - pack-objects: implement bitmap writing
139 - rev-list: add bitmap mode to speed up object lists
140 - pack-objects: use bitmaps when packing objects
141 - pack-bitmap: add support for bitmap indexes
142 - documentation: add documentation for the bitmap format
143 - ewah: compressed bitmap implementation
144 - compat: add endianness helpers
145 - sha1_file: export `git_open_noatime`
146 - revision: allow setting custom limiter function
147 - pack-objects: factor out name_hash
148 - pack-objects: refactor the packing list
149 - revindex: export new APIs
150 - sha1write: make buffer const-correct
152 Borrows the bitmap index into packfiles from JGit to speed up
153 enumeration of objects involved in a commit range without having to
154 fully traverse the history.
156 Waiting for a reroll.
159 * mf/graph-show-root (2013-10-25) 1 commit
160 . graph.c: mark root commit differently
162 In a repository with multiple-roots, "log --graph", especially with
163 "--oneline", does not give the reader enough visual cue to see
164 where one line of history ended and a separate history began.
166 This is the version that marks the roots 'x' when they would have
167 been marked as '*'; Keshav Kini suggested an alternative of giving
168 an extra blank line after every root, which I tend to think is a
169 better approach to the problem.
172 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
173 - perf-lib: add test_perf_cleanup target
174 - perf-lib: split starting the test from the execution
176 Add test_perf_cleanup shell function to the perf suite, that allows
177 the script writers to define a test with a clean-up action.
179 Holding until needed.
182 * yt/shortened-rename (2013-10-18) 2 commits
183 - SQUASH??? style fixes and s/omit/shorten/ where appropriate
184 - diff.c: keep arrow(=>) on show_stats()'s shortened filename part to make rename visible
186 Attempts to give more weight on the fact that a filepair represents
187 a rename than showing substring of the actual path when diffstat
188 lines are not wide enough.
190 I am not sure if that is solving a right problem, though.
193 * rv/send-email-cache-generated-mid (2013-08-21) 2 commits
194 - git-send-email: Cache generated message-ids, use them when prompting
195 - git-send-email: add optional 'choices' parameter to the ask sub
198 * rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
199 - ### DONTMERGE: needs better explanation on what config they need
200 - pack-refs.c: Add missing call to git_config()
201 - show-ref.c: Add missing call to git_config()
203 The changes themselves are probably good, but it is unclear what
204 basic setting needs to be read for which exact operation.
206 Waiting for clarification.
210 * jc/format-patch (2013-04-22) 2 commits
211 - format-patch: --inline-single
212 - format-patch: rename "no_inline" field
214 A new option to send a single patch to the standard output to be
215 appended at the bottom of a message. I personally have no need for
216 this, but it was easy enough to cobble together. Tests, docs and
217 stripping out more MIMEy stuff are left as exercises to interested
221 * jk/gitweb-utf8 (2013-04-08) 4 commits
222 - gitweb: Fix broken blob action parameters on blob/commitdiff pages
223 - gitweb: Don't append ';js=(0|1)' to external links
224 - gitweb: Make feed title valid utf8
225 - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
227 Various fixes to gitweb.
229 Drew Northup volunteered to take a look into this.
233 * jc/show-branch (2013-06-07) 5 commits
234 - show-branch: use commit slab to represent bitflags of arbitrary width
235 - show-branch.c: remove "all_mask"
236 - show-branch.c: abstract out "flags" operation
237 - show-branch.c: lift all_mask/all_revs to a global static
238 - show-branch.c: update comment style
240 Waiting for the final step to lift the hard-limit before sending it out.
242 --------------------------------------------------
245 * kb/doc-exclude-directory-semantics (2013-11-07) 1 commit
246 (merged to 'next' on 2013-11-13 at 06e5645)
247 + gitignore.txt: clarify recursive nature of excluded directories
252 * jc/create-directories-microopt (2013-11-11) 1 commit
253 - checkout: most of the time we have good leading directories
255 Of unknown value until tested on non-Linux platforms (especially
261 * jl/submodule-update-retire-orig-flags (2013-11-11) 1 commit
262 (merged to 'next' on 2013-11-13 at 4b70d15)
263 + submodule update: remove unnecessary orig_flags variable
270 * jn/mediawiki-makefile-updates (2013-11-11) 4 commits
271 (merged to 'next' on 2013-11-13 at 71c8d20)
272 + git-remote-mediawiki build: handle DESTDIR/INSTLIBDIR with whitespace
273 + git-remote-mediawiki build: make 'install' command configurable
274 + git-remote-mediawiki: honor DESTDIR in "make install"
275 + git-remote-mediawiki: do not remove installed files in "clean" target
277 Build and Installation procedure clean-up.
282 * tb/doc-fetch-pack-url (2013-11-11) 1 commit
283 (merged to 'next' on 2013-11-13 at 90d6832)
284 + git-fetch-pack uses URLs like git-fetch
289 * cc/remote-remove-redundant-postfixcmp (2013-11-06) 2 commits
290 (merged to 'next' on 2013-11-06 at 7b45219)
291 + Rename suffixcmp() to has_suffix() and invert its result
292 (merged to 'next' on 2013-11-04 at 6408502)
293 + builtin/remote: remove postfixcmp() and use suffixcmp() instead
300 * nd/wt-status-align-i18n (2013-11-06) 1 commit
301 (merged to 'next' on 2013-11-13 at b033aa0)
302 + wt-status: take the alignment burden off translators
304 An attempt to automatically align the names in the "git status"
305 output, taking the display width of (translated) section labels
311 * nv/commit-gpgsign-config (2013-11-06) 1 commit
312 - Add the commit.gpgsign option to sign all commits
314 Introduce commit.gpgsign configuration variable to force every
315 commit to be GPG signed.
317 Needs tests, perhaps?
320 * sb/sha1-loose-object-info-check-existence (2013-11-06) 1 commit
321 (merged to 'next' on 2013-11-06 at 1ea5b18)
322 + sha1_loose_object_info(): do not return success on missing object
324 "git cat-file --batch-check=ok" did not check the existence of the
330 * gj/push-more-verbose-advice (2013-11-13) 2 commits
331 - push: switch default from "matching" to "simple"
332 - push: enhance unspecified push default warning
334 Explain 'simple' and 'matching' in "git push" advice message; the
335 topmost patch is a rebase of jc/push-2.0-default-to-simple on top
340 The first one should be merged to 'master' soon after the next
341 cycle opens; the other to replace jc/push-2.0-default-to-simple.
344 * rr/for-each-ref-decoration (2013-11-13) 5 commits
345 - fixup! for-each-ref: introduce %(color:...) for color
346 - for-each-ref: introduce %(color:...) for color
347 - fixup! for-each-ref: introduce %(upstream:track[short])
348 - for-each-ref: introduce %(upstream:track[short])
349 - for-each-ref: introduce %(HEAD) asterisk marker
351 Needs fix-ups, aut-reset, --color=auto support, and tests.
352 but it is a good start.
355 * jk/two-way-merge-corner-case-fix (2013-11-04) 3 commits
356 (merged to 'next' on 2013-11-04 at 79f4fb0)
357 + t1005: add test for "read-tree --reset -u A B"
359 + unpack-trees: fix "read-tree -u --reset A B" with conflicted index
361 Fix a rather longstanding corner-case bug in twoway "reset to
362 there" merge, which is most often seen in "git am --abort".
367 * jc/ref-excludes (2013-11-01) 5 commits
368 (merged to 'next' on 2013-11-04 at fac1ed0)
369 + rev-parse: introduce --exclude=<glob> to tame wildcards
370 + rev-list --exclude: export add/clear-ref-exclusion and ref-excluded API
371 + rev-list --exclude: tests
372 + document --exclude option
373 + revision: introduce --exclude=<glob> to tame wildcards
375 People often wished a way to tell "git log --branches" (and "git
376 log --remotes --not --branches") to exclude some local branches
377 from the expansion of "--branches" (similarly for "--tags", "--all"
378 and "--glob=<pattern>"). Now they have one.
383 * jk/replace-perl-in-built-scripts (2013-10-29) 1 commit
384 (merged to 'next' on 2013-11-01 at 2384e29)
385 + use @@PERL@@ in built scripts
390 * fc/transport-helper-fixes (2013-11-13) 12 commits
391 - remote-bzr: support the new 'force' option
392 - transport-helper: add support to delete branches
393 - fast-export: add support to delete refs
394 - fast-import: add support to delete refs
395 - transport-helper: add support for old:new refspec
396 - fast-export: add new --refspec option
397 - fast-export: improve argument parsing
398 - test-hg.sh: tests are now expected to pass
399 - transport-helper: check for 'forced update' message
400 - transport-helper: add 'force' to 'export' helpers
401 - transport-helper: don't update refs in dry-run
402 - transport-helper: mismerge fix
404 Updates transport-helper, fast-import and fast-export to allow the
405 ref mapping and ref deletion in a way similar to the natively
406 supported transports.
409 * jh/loose-object-dirs-creation-race (2013-10-28) 1 commit
410 (merged to 'next' on 2013-11-01 at 3169b0f)
411 + sha1_file.c:create_tmpfile(): Fix race when creating loose object dirs
416 * nd/liteal-pathspecs (2013-10-28) 1 commit
417 (merged to 'next' on 2013-11-01 at 1a91775)
418 + pathspec: stop --*-pathspecs impact on internal parse_pathspec() uses
423 * th/reflog-annotated-tag (2013-10-28) 1 commit
424 (merged to 'next' on 2013-11-01 at 8b154cc)
425 + reflog: handle lightweight and annotated tags equally
427 "git log -g $annotated_tag", when there is no reflog history, should
428 have produced a single output entry (i.e. the ref creation event),
429 but instead showed the history leading to the tag.
431 Broken at the design level. Any reflog entry that points at a non
432 commit needs to be handled with new code that does not exist yet,
433 and lifting the "this code handles only commits" without adding
434 such code does not solve anything.
437 * tr/merge-recursive-index-only (2013-10-28) 3 commits
438 - merge-recursive: -Xindex-only to leave worktree unchanged
439 - merge-recursive: internal flag to avoid touching the worktree
440 - merge-recursive: remove dead conditional in update_stages()
442 Will hold until using script appears.
445 * bc/http-100-continue (2013-10-31) 3 commits
446 (merged to 'next' on 2013-11-01 at e12ae23)
447 + remote-curl: fix large pushes with GSSAPI
448 + remote-curl: pass curl slot_results back through run_slot
449 + http: return curl's AUTHAVAIL via slot_results
451 Issue "100 Continue" responses to help use of GSS-Negotiate
452 authentication scheme over HTTP transport when needed.
457 * jc/merge-base-reflog (2013-10-29) 2 commits
458 (merged to 'next' on 2013-11-01 at 6114764)
459 + merge-base: teach "--fork-point" mode
460 + merge-base: use OPT_CMDMODE and clarify the command line parsing
462 Code the logic in "pull --rebase" that figures out a fork point
463 from reflog entries in C.
468 * jk/robustify-parse-commit (2013-10-24) 6 commits
469 (merged to 'next' on 2013-11-01 at 2bfbaab)
470 + checkout: do not die when leaving broken detached HEAD
471 + use parse_commit_or_die instead of custom message
472 + use parse_commit_or_die instead of segfaulting
473 + assume parse_commit checks for NULL commit
474 + assume parse_commit checks commit->object.parsed
475 + log_tree_diff: die when we fail to parse a commit
480 * mh/fetch-tags-in-addition-to-normal-refs (2013-10-30) 23 commits
481 (merged to 'next' on 2013-11-06 at 6932893)
482 + fetch: improve the error messages emitted for conflicting refspecs
483 + handle_duplicate(): mark error message for translation
484 + ref_remote_duplicates(): extract a function handle_duplicate()
485 + ref_remove_duplicates(): simplify loop logic
486 + t5536: new test of refspec conflicts when fetching
487 + ref_remove_duplicates(): avoid redundant bisection
488 + git-fetch.txt: improve description of tag auto-following
489 + fetch-options.txt: simplify ifdef/ifndef/endif usage
490 + fetch, remote: properly convey --no-prune options to subprocesses
491 + builtin/remote.c:update(): use struct argv_array
492 + builtin/remote.c: reorder function definitions
493 + query_refspecs(): move some constants out of the loop
494 + fetch --prune: prune only based on explicit refspecs
495 + fetch --tags: fetch tags *in addition to* other stuff
496 + fetch: only opportunistically update references based on command line
497 + get_expanded_map(): avoid memory leak
498 + get_expanded_map(): add docstring
499 + builtin/fetch.c: reorder function definitions
500 + get_ref_map(): rename local variables
501 + api-remote.txt: correct section "struct refspec"
502 + t5510: check that "git fetch --prune --tags" does not prune branches
503 + t5510: prepare test refs more straightforwardly
504 + t5510: use the correct tag name in test
506 The "-tags" option to "git fetch" used to be literally a synonym to
507 a "refs/tags/*:refs/tags/*" refspec, which meant that (1) as an
508 explicit refspec given from the command line, it silenced the lazy
509 "git fetch" default that is configured, and (2) also as an explicit
510 refspec given from the command line, it interacted with "--prune"
511 to remove any tag that the remote we are fetching from does not
514 This demotes it to an option; with it, we fetch all tags in
515 addition to what would be fetched without the option, and it does
516 not interact with the decision "--prune" makes to see what
517 remote-tracking refs the local has are missing the remote
523 * nv/parseopt-opt-arg (2013-10-31) 2 commits
524 (merged to 'next' on 2013-11-01 at cd2afd9)
525 + rev-parse --parseopt: add the --stuck-long mode
526 + Use the word 'stuck' instead of 'sticked'
528 Enhance "rev-parse --parseopt" mode to help parsing options with
529 an optional parameter.
534 * ak/submodule-foreach-quoting (2013-09-27) 1 commit
535 (merged to 'next' on 2013-10-14 at d77c5f1)
536 + submodule foreach: skip eval for more than one argument
538 A behavior change, but a worthwhile one: "git submodule foreach"
539 was treating its arguments as part of a single command to be
540 concatenated and passed to a shell, making writing buggy
543 This patch preserves the old "just pass it to the shell" behavior
544 when a single argument is passed to 'git submodule foreach' and
545 moves to a new "skip the shell and use the arguments passed
546 unmolested" behavior when more than one argument is passed.
548 The old behavior (always concatenating and passing to the shell)
549 was similar to the 'ssh' command, while the new behavior (switching
550 on the number of arguments) is what 'xterm -e' does.
552 May need more thought to make sure this change is advertised well
553 so that scripts that used multiple arguments but added their own
554 extra layer of quoting are not broken.
559 * kb/fast-hashmap (2013-11-07) 16 commits
560 - fixup! builtin/update-index.c: cleanup update_one
561 - fixup! read-cache.c: fix memory leaks caused by removed cache entries
562 - read-cache.c: fix memory leaks caused by removed cache entries
563 - builtin/update-index.c: cleanup update_one
564 - fix 'git update-index --verbose --again' output
565 - remove old hash.[ch] implementation
566 - name-hash.c: remove cache entries instead of marking them CE_UNHASHED
567 - name-hash.c: use new hash map implementation for cache entries
568 - name-hash.c: remove unreferenced directory entries
569 - name-hash.c: use new hash map implementation for directories
570 - diffcore-rename.c: use new hash map implementation
571 - diffcore-rename.c: simplify finding exact renames
572 - diffcore-rename.c: move code around to prepare for the next patch
573 - buitin/describe.c: use new hash map implementation
574 - add a hashtable implementation that supports O(1) removal
575 - submodule: don't access the .gitmodules cache entry after removing it
577 Improvements to our hash table to get it to meet the needs of the
578 msysgit fscache project, with some nice performance improvements.
580 The preparatory clean-up to submodule from Jens is at the bottom. I
581 also squashed in a fix-up by Karsten found at $gmane/236468 (please
582 double-check the result).
584 This is a reroll one after the valgrind breakage report ($gmane/236869).
586 Waiting for a reroll.
589 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
590 (merged to 'next' on 2013-10-28 at d8cdf30)
591 + git add: -u/-A now affects the entire working tree
593 Will cook in 'next' until Git 2.0.
596 * jc/core-checkstat-2.0 (2013-05-06) 1 commit
597 (merged to 'next' on 2013-10-28 at f1bec96)
598 + core.statinfo: remove as promised in Git 2.0
600 Will cook in 'next' until Git 2.0.
603 * jc/push-2.0-default-to-simple (2013-06-18) 1 commit
604 (merged to 'next' on 2013-10-28 at 3153a9e)
605 + push: switch default from "matching" to "simple"
607 Will cook in 'next' until Git 2.0.
610 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
611 (merged to 'next' on 2013-10-28 at 5fd76ec)
612 + git add <pathspec>... defaults to "-A"
614 Updated endgame for "git add <pathspec>" that defaults to "--all"
615 aka "--no-ignore-removal".
617 Will cook in 'next' until Git 2.0.
620 * jc/hold-diff-remove-q-synonym-for-no-deletion (2013-07-19) 1 commit
621 (merged to 'next' on 2013-11-01 at 5fc26e4)
622 + diff: remove "diff-files -q" in a version of Git in a distant future
624 Will cook in 'next' until a distant future.