1 To: git@vger.kernel.org
3 Subject: What's cooking in git.git (Nov 2013, #05; Thu, 21)
4 X-master-at: 5fd09df3937f54c5cfda4f1087f5d99433cce527
5 X-next-at: df10213b17da8480bb44fc5e4ff77001f2265457
7 What's cooking in git.git (Nov 2013, #05; Thu, 21)
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 Hopefully 1.8.5-rc3 that was tagged on Wednesday will be the final
15 release candidate for this cycle.
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 --------------------------------------------------
23 [Graduated to "master"]
25 * nd/liteal-pathspecs (2013-10-28) 1 commit
26 (merged to 'next' on 2013-11-01 at 1a91775)
27 + pathspec: stop --*-pathspecs impact on internal parse_pathspec() uses
29 Fixes a regression on 'master' since v1.8.4.
31 --------------------------------------------------
34 * jj/doc-markup-hints-in-coding-guidelines (2013-11-18) 1 commit
35 (merged to 'next' on 2013-11-21 at 9c638a6)
36 + State correct usage of literal examples in man pages in the coding standards
41 * jn/perl-lib-extra (2013-11-18) 2 commits
42 (merged to 'next' on 2013-11-20 at 8c90afae)
43 + Makefile: add PERLLIB_EXTRA variable that adds to default perl path
44 + Makefile: rebuild perl scripts when perl paths change
47 * jj/doc-markup-gitcli (2013-11-20) 1 commit
48 (merged to 'next' on 2013-11-21 at 5e49fa8)
49 + Documentation/gitcli.txt: fix double quotes
54 * jk/remove-experimental-loose-object-support (2013-11-21) 1 commit
55 (merged to 'next' on 2013-11-21 at d37bab7)
56 + drop support for "experimental" loose objects
61 * jl/commit-v-strip-marker (2013-11-19) 1 commit
62 - commit -v: strip diffs and submodule shortlogs from the commit message
64 Perhaps another reroll for core.commentChar coming?
67 * nd/glossary-content-pathspec-markup (2013-11-21) 1 commit
68 (merged to 'next' on 2013-11-21 at 6072636)
69 + glossary-content.txt: fix documentation of "**" patterns
74 * nd/magic-pathspec (2013-11-20) 1 commit
75 (merged to 'next' on 2013-11-21 at f914a30)
76 + diff: restrict pathspec limitations to diff b/f case only
80 --------------------------------------------------
83 * fc/transport-helper-fixes (2013-11-13) 12 commits
84 - remote-bzr: support the new 'force' option
85 - transport-helper: add support to delete branches
86 - fast-export: add support to delete refs
87 - fast-import: add support to delete refs
88 - transport-helper: add support for old:new refspec
89 - fast-export: add new --refspec option
90 - fast-export: improve argument parsing
91 - test-hg.sh: tests are now expected to pass
92 - transport-helper: check for 'forced update' message
93 - transport-helper: add 'force' to 'export' helpers
94 - transport-helper: don't update refs in dry-run
95 - transport-helper: mismerge fix
97 Updates transport-helper, fast-import and fast-export to allow the
98 ref mapping and ref deletion in a way similar to the natively
101 The option name "--refspec" needs to be rethought. It does not mean
102 what refspec usually means, even though it shares the same syntax
103 with refspec; calling it --refspec only because it shares the same
104 syntax is like calling it --asciistring and does not make sense.
107 * nv/commit-gpgsign-config (2013-11-06) 1 commit
108 - Add the commit.gpgsign option to sign all commits
110 Introduce commit.gpgsign configuration variable to force every
111 commit to be GPG signed.
113 Needs tests, perhaps?
116 * tb/clone-ssh-with-colon-for-port (2013-11-04) 1 commit
117 . git clone: is an URL local or ssh
119 Still being reworked.
122 * cn/thin-push-capability (2013-11-06) 2 commits
123 - send-pack: only send a thin pack if the server supports it
124 - receive-pack: advertise thin-pack
126 Peff had a good suggestion to control this by expressing what the
127 receiving end wants in a more direct way, namely to advertise a
128 'no-thin' trait in the capability list, which seems to be favored
132 * jt/commit-fixes-footer (2013-10-30) 1 commit
133 - commit: Add -f, --fixes <commit> option to add Fixes: line
135 There is an ongoing discussion around this topic; in general I am
136 fairly negative on a new feature that is too narrow and prefer a
137 more generic solution that can be tailored for specific needs, as
138 many people stated in the thread.
140 It appears that the discussion stalled.
143 * np/pack-v4 (2013-09-18) 90 commits
144 . packv4-parse.c: add tree offset caching
145 . t1050: replace one instance of show-index with verify-pack
146 . index-pack, pack-objects: allow creating .idx v2 with .pack v4
147 . unpack-objects: decode v4 trees
148 . unpack-objects: allow to save processed bytes to a buffer
151 Nico and Duy advancing the eternal vaporware pack-v4. This is here
152 primarily for wider distribution of the preview edition.
154 Temporarily ejected from 'pu', to try out jk/pack-bitmap, which
155 this topic conflicts with.
158 * jk/pack-bitmap (2013-11-18) 22 commits
159 - compat/mingw.h: Fix the MinGW and msvc builds
160 - pack-bitmap: implement optional name_hash cache
161 - t/perf: add tests for pack bitmaps
162 - t: add basic bitmap functionality tests
163 - count-objects: recognize .bitmap in garbage-checking
164 - repack: consider bitmaps when performing repacks
165 - repack: handle optional files created by pack-objects
166 - repack: turn exts array into array-of-struct
167 - repack: stop using magic number for ARRAY_SIZE(exts)
168 - pack-objects: implement bitmap writing
169 - rev-list: add bitmap mode to speed up object lists
170 - pack-objects: use bitmaps when packing objects
171 - pack-bitmap: add support for bitmap indexes
172 - documentation: add documentation for the bitmap format
173 - ewah: compressed bitmap implementation
174 - compat: add endianness helpers
175 - sha1_file: export `git_open_noatime`
176 - revision: allow setting custom limiter function
177 - pack-objects: factor out name_hash
178 - pack-objects: refactor the packing list
179 - revindex: export new APIs
180 - sha1write: make buffer const-correct
182 Borrows the bitmap index into packfiles from JGit to speed up
183 enumeration of objects involved in a commit range without having to
184 fully traverse the history.
187 * mf/graph-show-root (2013-10-25) 1 commit
188 . graph.c: mark root commit differently
190 In a repository with multiple-roots, "log --graph", especially with
191 "--oneline", does not give the reader enough visual cue to see
192 where one line of history ended and a separate history began.
194 This is the version that marks the roots 'x' when they would have
195 been marked as '*'; Keshav Kini suggested an alternative of giving
196 an extra blank line after every root, which I tend to think is a
197 better approach to the problem.
200 * tg/perf-lib-test-perf-cleanup (2013-09-19) 2 commits
201 - perf-lib: add test_perf_cleanup target
202 - perf-lib: split starting the test from the execution
204 Add test_perf_cleanup shell function to the perf suite, that allows
205 the script writers to define a test with a clean-up action.
207 Holding until needed.
210 * yt/shortened-rename (2013-10-18) 2 commits
211 - SQUASH??? style fixes and s/omit/shorten/ where appropriate
212 - diff.c: keep arrow(=>) on show_stats()'s shortened filename part to make rename visible
214 Attempts to give more weight on the fact that a filepair represents
215 a rename than showing substring of the actual path when diffstat
216 lines are not wide enough.
218 I am not sure if that is solving a right problem, though.
221 * rv/send-email-cache-generated-mid (2013-08-21) 2 commits
222 - git-send-email: Cache generated message-ids, use them when prompting
223 - git-send-email: add optional 'choices' parameter to the ask sub
226 * rj/read-default-config-in-show-ref-pack-refs (2013-06-17) 3 commits
227 - ### DONTMERGE: needs better explanation on what config they need
228 - pack-refs.c: Add missing call to git_config()
229 - show-ref.c: Add missing call to git_config()
231 The changes themselves are probably good, but it is unclear what
232 basic setting needs to be read for which exact operation.
234 Waiting for clarification.
238 * jc/format-patch (2013-04-22) 2 commits
239 - format-patch: --inline-single
240 - format-patch: rename "no_inline" field
242 A new option to send a single patch to the standard output to be
243 appended at the bottom of a message. I personally have no need for
244 this, but it was easy enough to cobble together. Tests, docs and
245 stripping out more MIMEy stuff are left as exercises to interested
249 * jk/gitweb-utf8 (2013-04-08) 4 commits
250 - gitweb: Fix broken blob action parameters on blob/commitdiff pages
251 - gitweb: Don't append ';js=(0|1)' to external links
252 - gitweb: Make feed title valid utf8
253 - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
255 Various fixes to gitweb.
257 Drew Northup volunteered to take a look into this.
261 * jc/show-branch (2013-06-07) 5 commits
262 - show-branch: use commit slab to represent bitflags of arbitrary width
263 - show-branch.c: remove "all_mask"
264 - show-branch.c: abstract out "flags" operation
265 - show-branch.c: lift all_mask/all_revs to a global static
266 - show-branch.c: update comment style
268 Waiting for the final step to lift the hard-limit before sending it out.
270 --------------------------------------------------
273 * jj/log-doc (2013-11-13) 2 commits
274 (merged to 'next' on 2013-11-21 at cb0ddd2)
275 + Documentation/git-log.txt: mark-up fix and minor rephasing
276 + Documentation/git-log: update "--log-size" description
283 * jc/bundle (2013-11-12) 1 commit
284 (merged to 'next' on 2013-11-21 at 535b046)
285 + bundle: use argv-array
292 * jj/rev-list-options-doc (2013-11-18) 2 commits
293 (merged to 'next' on 2013-11-20 at db975de)
294 + Documentation/rev-list-options.txt: fix some grammatical issues and typos
295 + Documentation/rev-list-options.txt: fix mark-up
297 Mark-up and grammo fixes.
302 * jk/remove-deprecated (2013-11-12) 4 commits
303 (merged to 'next' on 2013-11-13 at c324792)
304 + peek-remote: remove deprecated alias of ls-remote
305 + lost-found: remove deprecated command
306 + tar-tree: remove deprecated command
307 + repo-config: remove deprecated alias for "git config"
309 Will cook in 'next' until a distant future.
312 * mi/typofixes (2013-11-12) 3 commits
313 (merged to 'next' on 2013-11-13 at bb7c2eb)
315 + Documentation/technical/http-protocol.txt: typofixes
316 + typofixes: fix misspelt comments
321 * rh/remote-hg-bzr-updates (2013-11-18) 9 commits
322 (merged to 'next' on 2013-11-20 at a36f3c4)
323 + remote-bzr, remote-hg: fix email address regular expression
324 + test-hg.sh: help user correlate verbose output with email test
325 + test-hg.sh: fix duplicate content strings in author tests
326 + test-hg.sh: avoid obsolete 'test' syntax
327 + test-hg.sh: eliminate 'local' bashism
328 + test-bzr.sh, test-hg.sh: prepare for change to push.default=simple
329 + test-bzr.sh, test-hg.sh: allow running from any dir
330 + test-lib.sh: convert $TEST_DIRECTORY to an absolute path
331 + remote-hg: don't decode UTF-8 paths into Unicode objects
336 * tr/config-multivalue-lift-max (2013-11-13) 1 commit
337 (merged to 'next' on 2013-11-20 at d18aac9)
338 + config: arbitrary number of matches for --unset and --replace-all
343 * kb/doc-exclude-directory-semantics (2013-11-07) 1 commit
344 (merged to 'next' on 2013-11-13 at 06e5645)
345 + gitignore.txt: clarify recursive nature of excluded directories
350 * jc/create-directories-microopt (2013-11-11) 1 commit
351 - checkout: most of the time we have good leading directories
353 Of unknown value until tested on non-Linux platforms (especially
359 * jl/submodule-update-retire-orig-flags (2013-11-11) 1 commit
360 (merged to 'next' on 2013-11-13 at 4b70d15)
361 + submodule update: remove unnecessary orig_flags variable
368 * jn/mediawiki-makefile-updates (2013-11-11) 4 commits
369 (merged to 'next' on 2013-11-13 at 71c8d20)
370 + git-remote-mediawiki build: handle DESTDIR/INSTLIBDIR with whitespace
371 + git-remote-mediawiki build: make 'install' command configurable
372 + git-remote-mediawiki: honor DESTDIR in "make install"
373 + git-remote-mediawiki: do not remove installed files in "clean" target
375 Build and Installation procedure clean-up.
380 * tb/doc-fetch-pack-url (2013-11-11) 1 commit
381 (merged to 'next' on 2013-11-13 at 90d6832)
382 + git-fetch-pack uses URLs like git-fetch
387 * cc/remote-remove-redundant-postfixcmp (2013-11-06) 2 commits
388 (merged to 'next' on 2013-11-06 at 7b45219)
389 + Rename suffixcmp() to has_suffix() and invert its result
390 (merged to 'next' on 2013-11-04 at 6408502)
391 + builtin/remote: remove postfixcmp() and use suffixcmp() instead
398 * nd/wt-status-align-i18n (2013-11-06) 1 commit
399 (merged to 'next' on 2013-11-13 at b033aa0)
400 + wt-status: take the alignment burden off translators
402 An attempt to automatically align the names in the "git status"
403 output, taking the display width of (translated) section labels
409 * sb/sha1-loose-object-info-check-existence (2013-11-06) 1 commit
410 (merged to 'next' on 2013-11-06 at 1ea5b18)
411 + sha1_loose_object_info(): do not return success on missing object
413 "git cat-file --batch-check=ok" did not check the existence of the
419 * gj/push-more-verbose-advice (2013-11-13) 2 commits
420 (merged to 'next' on 2013-11-21 at df10213)
421 + push: switch default from "matching" to "simple"
422 (merged to 'next' on 2013-11-21 at 4ee3d4a)
423 + push: enhance unspecified push default warning
425 Explain 'simple' and 'matching' in "git push" advice message; the
426 topmost patch is a rebase of jc/push-2.0-default-to-simple on top
431 The first one should be merged to 'master' soon after the next
432 cycle opens; the other to replace jc/push-2.0-default-to-simple.
435 * rr/for-each-ref-decoration (2013-11-19) 6 commits
436 (merged to 'next' on 2013-11-21 at ee7b0ed)
437 + for-each-ref: avoid color leakage
438 + for-each-ref: introduce %(color:...) for color
439 + for-each-ref: introduce %(upstream:track[short])
440 + for-each-ref: introduce %(HEAD) asterisk marker
441 + t6300 (for-each-ref): don't hardcode SHA-1 hexes
442 + t6300 (for-each-ref): clearly demarcate setup
447 * jk/two-way-merge-corner-case-fix (2013-11-04) 3 commits
448 (merged to 'next' on 2013-11-04 at 79f4fb0)
449 + t1005: add test for "read-tree --reset -u A B"
451 + unpack-trees: fix "read-tree -u --reset A B" with conflicted index
453 Fix a rather longstanding corner-case bug in twoway "reset to
454 there" merge, which is most often seen in "git am --abort".
459 * jc/ref-excludes (2013-11-01) 5 commits
460 (merged to 'next' on 2013-11-04 at fac1ed0)
461 + rev-parse: introduce --exclude=<glob> to tame wildcards
462 + rev-list --exclude: export add/clear-ref-exclusion and ref-excluded API
463 + rev-list --exclude: tests
464 + document --exclude option
465 + revision: introduce --exclude=<glob> to tame wildcards
467 People often wished a way to tell "git log --branches" (and "git
468 log --remotes --not --branches") to exclude some local branches
469 from the expansion of "--branches" (similarly for "--tags", "--all"
470 and "--glob=<pattern>"). Now they have one.
475 * jk/replace-perl-in-built-scripts (2013-10-29) 1 commit
476 (merged to 'next' on 2013-11-01 at 2384e29)
477 + use @@PERL@@ in built scripts
482 * jh/loose-object-dirs-creation-race (2013-10-28) 1 commit
483 (merged to 'next' on 2013-11-01 at 3169b0f)
484 + sha1_file.c:create_tmpfile(): Fix race when creating loose object dirs
489 * th/reflog-annotated-tag (2013-10-28) 1 commit
490 (merged to 'next' on 2013-11-01 at 8b154cc)
491 + reflog: handle lightweight and annotated tags equally
493 "git log -g $annotated_tag", when there is no reflog history, should
494 have produced a single output entry (i.e. the ref creation event),
495 but instead showed the history leading to the tag.
497 Broken at the design level. Any reflog entry that points at a non
498 commit needs to be handled with new code that does not exist yet,
499 and lifting the "this code handles only commits" without adding
500 such code does not solve anything.
505 * tr/merge-recursive-index-only (2013-10-28) 3 commits
506 - merge-recursive: -Xindex-only to leave worktree unchanged
507 - merge-recursive: internal flag to avoid touching the worktree
508 - merge-recursive: remove dead conditional in update_stages()
510 Will hold until using script appears.
513 * bc/http-100-continue (2013-10-31) 3 commits
514 (merged to 'next' on 2013-11-01 at e12ae23)
515 + remote-curl: fix large pushes with GSSAPI
516 + remote-curl: pass curl slot_results back through run_slot
517 + http: return curl's AUTHAVAIL via slot_results
519 Issue "100 Continue" responses to help use of GSS-Negotiate
520 authentication scheme over HTTP transport when needed.
525 * jc/merge-base-reflog (2013-10-29) 2 commits
526 (merged to 'next' on 2013-11-01 at 6114764)
527 + merge-base: teach "--fork-point" mode
528 + merge-base: use OPT_CMDMODE and clarify the command line parsing
530 Code the logic in "pull --rebase" that figures out a fork point
531 from reflog entries in C.
536 * jk/robustify-parse-commit (2013-10-24) 6 commits
537 (merged to 'next' on 2013-11-01 at 2bfbaab)
538 + checkout: do not die when leaving broken detached HEAD
539 + use parse_commit_or_die instead of custom message
540 + use parse_commit_or_die instead of segfaulting
541 + assume parse_commit checks for NULL commit
542 + assume parse_commit checks commit->object.parsed
543 + log_tree_diff: die when we fail to parse a commit
548 * mh/fetch-tags-in-addition-to-normal-refs (2013-10-30) 23 commits
549 (merged to 'next' on 2013-11-06 at 6932893)
550 + fetch: improve the error messages emitted for conflicting refspecs
551 + handle_duplicate(): mark error message for translation
552 + ref_remote_duplicates(): extract a function handle_duplicate()
553 + ref_remove_duplicates(): simplify loop logic
554 + t5536: new test of refspec conflicts when fetching
555 + ref_remove_duplicates(): avoid redundant bisection
556 + git-fetch.txt: improve description of tag auto-following
557 + fetch-options.txt: simplify ifdef/ifndef/endif usage
558 + fetch, remote: properly convey --no-prune options to subprocesses
559 + builtin/remote.c:update(): use struct argv_array
560 + builtin/remote.c: reorder function definitions
561 + query_refspecs(): move some constants out of the loop
562 + fetch --prune: prune only based on explicit refspecs
563 + fetch --tags: fetch tags *in addition to* other stuff
564 + fetch: only opportunistically update references based on command line
565 + get_expanded_map(): avoid memory leak
566 + get_expanded_map(): add docstring
567 + builtin/fetch.c: reorder function definitions
568 + get_ref_map(): rename local variables
569 + api-remote.txt: correct section "struct refspec"
570 + t5510: check that "git fetch --prune --tags" does not prune branches
571 + t5510: prepare test refs more straightforwardly
572 + t5510: use the correct tag name in test
574 The "-tags" option to "git fetch" used to be literally a synonym to
575 a "refs/tags/*:refs/tags/*" refspec, which meant that (1) as an
576 explicit refspec given from the command line, it silenced the lazy
577 "git fetch" default that is configured, and (2) also as an explicit
578 refspec given from the command line, it interacted with "--prune"
579 to remove any tag that the remote we are fetching from does not
582 This demotes it to an option; with it, we fetch all tags in
583 addition to what would be fetched without the option, and it does
584 not interact with the decision "--prune" makes to see what
585 remote-tracking refs the local has are missing the remote
591 * nv/parseopt-opt-arg (2013-10-31) 2 commits
592 (merged to 'next' on 2013-11-01 at cd2afd9)
593 + rev-parse --parseopt: add the --stuck-long mode
594 + Use the word 'stuck' instead of 'sticked'
596 Enhance "rev-parse --parseopt" mode to help parsing options with
597 an optional parameter.
602 * ak/submodule-foreach-quoting (2013-09-27) 1 commit
603 (merged to 'next' on 2013-10-14 at d77c5f1)
604 + submodule foreach: skip eval for more than one argument
606 A behavior change, but a worthwhile one: "git submodule foreach"
607 was treating its arguments as part of a single command to be
608 concatenated and passed to a shell, making writing buggy
611 This patch preserves the old "just pass it to the shell" behavior
612 when a single argument is passed to 'git submodule foreach' and
613 moves to a new "skip the shell and use the arguments passed
614 unmolested" behavior when more than one argument is passed.
616 The old behavior (always concatenating and passing to the shell)
617 was similar to the 'ssh' command, while the new behavior (switching
618 on the number of arguments) is what 'xterm -e' does.
620 May need more thought to make sure this change is advertised well
621 so that scripts that used multiple arguments but added their own
622 extra layer of quoting are not broken.
627 * kb/fast-hashmap (2013-11-18) 14 commits
628 - read-cache.c: fix memory leaks caused by removed cache entries
629 - builtin/update-index.c: cleanup update_one
630 - fix 'git update-index --verbose --again' output
631 - remove old hash.[ch] implementation
632 - name-hash.c: remove cache entries instead of marking them CE_UNHASHED
633 - name-hash.c: use new hash map implementation for cache entries
634 - name-hash.c: remove unreferenced directory entries
635 - name-hash.c: use new hash map implementation for directories
636 - diffcore-rename.c: use new hash map implementation
637 - diffcore-rename.c: simplify finding exact renames
638 - diffcore-rename.c: move code around to prepare for the next patch
639 - buitin/describe.c: use new hash map implementation
640 - add a hashtable implementation that supports O(1) removal
641 - submodule: don't access the .gitmodules cache entry after removing it
643 Improvements to our hash table to get it to meet the needs of the
644 msysgit fscache project, with some nice performance improvements.
646 The preparatory clean-up to submodule from Jens is at the bottom. I
647 also squashed in a fix-up by Karsten found at $gmane/236468 (please
648 double-check the result).
651 * jn/add-2.0-u-A-sans-pathspec (2013-04-26) 1 commit
652 (merged to 'next' on 2013-10-28 at d8cdf30)
653 + git add: -u/-A now affects the entire working tree
655 Will cook in 'next' until Git 2.0.
658 * jc/core-checkstat-2.0 (2013-05-06) 1 commit
659 (merged to 'next' on 2013-10-28 at f1bec96)
660 + core.statinfo: remove as promised in Git 2.0
662 Will cook in 'next' until Git 2.0.
665 * jc/push-2.0-default-to-simple (2013-06-18) 1 commit
666 (merged to 'next' on 2013-10-28 at 3153a9e)
667 + push: switch default from "matching" to "simple"
669 Will cook in 'next' until Git 2.0.
672 * jc/add-2.0-ignore-removal (2013-04-22) 1 commit
673 (merged to 'next' on 2013-10-28 at 5fd76ec)
674 + git add <pathspec>... defaults to "-A"
676 Updated endgame for "git add <pathspec>" that defaults to "--all"
677 aka "--no-ignore-removal".
679 Will cook in 'next' until Git 2.0.
682 * jc/hold-diff-remove-q-synonym-for-no-deletion (2013-07-19) 1 commit
683 (merged to 'next' on 2013-11-01 at 5fc26e4)
684 + diff: remove "diff-files -q" in a version of Git in a distant future
686 Will cook in 'next' until a distant future.