1 To: git@vger.kernel.org
3 Subject: What's cooking in git.git (Apr 2013, #07; Mon, 22)
4 X-master-at: 118f60ee06612083ff4f1810424e80a3e896f73e
5 X-next-at: 46dda50f1b80376d17129b9546d08f602af44864
7 What's cooking in git.git (Apr 2013, #07; Mon, 22)
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 Both of the two topics on preparing "git add" users for the
15 behaviour change in Git 2.0 are in 'master'. We may want to tweak
16 the wording of warning messages and such before the feature freeze.
18 You can find the changes described here in the integration branches
19 of the repositories listed at
21 http://git-blame.blogspot.com/p/git-public-repositories.html
23 --------------------------------------------------
24 [Graduated to "master"]
26 * ap/strbuf-humanize (2013-04-10) 2 commits
27 (merged to 'next' on 2013-04-14 at 66d7af5)
28 + count-objects: add -H option to humanize sizes
29 + strbuf: create strbuf_humanise_bytes() to show byte sizes
31 Teach "--human-readable" aka "-H" option to "git count-objects" to
32 show various large numbers in Ki/Mi/GiB scaled as necessary.
34 I've decided to let this topic supersede mc/count-objects-kibibytes.
35 Human users will get an even easier output with "-H" and by not
36 changing the output without an explicit option we do not have to
37 break third-party tools that may have been reading from the output
41 * as/clone-reference-with-gitfile (2013-04-09) 2 commits
42 (merged to 'next' on 2013-04-15 at ab0d128)
43 + clone: Allow repo using gitfile as a reference
44 + clone: Fix error message for reference repository
46 "git clone" did not work if a repository pointed at by the
47 "--reference" option is a gitfile that points at another place.
50 * fc/branch-upstream-color (2013-04-15) 1 commit
51 (merged to 'next' on 2013-04-15 at 2fc50fd)
52 + branch: colour upstream branches
54 Add more colors to "git branch -vv" output.
57 * fc/remote-hg (2013-04-11) 21 commits
58 (merged to 'next' on 2013-04-16 at cbeaf41)
59 + remote-hg: activate graphlog extension for hg_log()
60 + remote-hg: fix bad file paths
61 + remote-hg: document location of stored hg repository
62 + remote-hg: fix bad state issue
63 + remote-hg: add 'insecure' option
64 + remote-hg: add simple mail test
65 + remote-hg: add basic author tests
66 + remote-hg: show more proper errors
67 + remote-hg: force remote push
68 + remote-hg: push to the appropriate branch
69 + remote-hg: update tags globally
70 + remote-hg: update remote bookmarks
71 + remote-hg: refactor export
72 + remote-hg: split bookmark handling
73 + remote-hg: redirect buggy mercurial output
74 + remote-hg: trivial test cleanups
75 + remote-hg: make sure fake bookmarks are updated
76 + remote-hg: fix for files with spaces
77 + remote-hg: properly report errors on bookmark pushes
78 + remote-hg: add missing config variable in doc
79 + remote-hg: trivial cleanups
81 Updates remote-hg helper (in contrib/).
84 * jk/a-thread-only-dies-once (2013-04-16) 2 commits
85 (merged to 'next' on 2013-04-18 at 3208f44)
86 + run-command: use thread-aware die_is_recursing routine
87 + usage: allow pluggable die-recursion checks
89 A regression fix for the logic to detect die() handler triggering
93 * jk/chopped-ident (2013-04-17) 3 commits
94 (merged to 'next' on 2013-04-19 at ecec2d4)
95 + blame: handle broken commit headers gracefully
96 + pretty: handle broken commit headers gracefully
97 + cat-file: print tags raw for "cat-file -p"
99 A commit object whose author or committer ident are malformed
100 crashed some code that trusted that a name, an email and an
101 timestamp can always be found in it.
104 * jk/doc-http-backend (2013-04-13) 3 commits
105 (merged to 'next' on 2013-04-19 at 7932840)
106 + doc/http-backend: match query-string in apache half-auth example
107 + doc/http-backend: give some lighttpd config examples
108 + doc/http-backend: clarify "half-auth" repo configuration
110 Improve documentation to illustrate "push authenticated, fetch
111 anonymous" configuration for smart HTTP servers.
114 * jx/i18n-branch-error-messages (2013-04-15) 1 commit
115 (merged to 'next' on 2013-04-18 at 630c211)
116 + i18n: branch: mark strings for translation
119 * lf/read-blob-data-from-index (2013-04-17) 3 commits
120 (merged to 'next' on 2013-04-17 at 611208f)
121 + convert.c: remove duplicate code
122 + read_blob_data_from_index(): optionally return the size of blob data
123 + attr.c: extract read_index_data() as read_blob_data_from_index()
125 Reduce duplicated code between convert.c and attr.c.
128 * mv/sequencer-pick-error-diag (2013-04-11) 1 commit
129 (merged to 'next' on 2013-04-16 at a2da926)
130 + cherry-pick: make sure all input objects are commits
132 "git cherry-pick $blob $tree" is diagnosed as a nonsense.
135 * mv/ssl-ftp-curl (2013-04-12) 1 commit
136 (merged to 'next' on 2013-04-15 at 7fdada6)
137 + Support FTP-over-SSL/TLS for regular FTP
139 Does anybody really use commit walkers over ftp???
142 * nd/checkout-keep-sparse (2013-04-15) 1 commit
143 (merged to 'next' on 2013-04-19 at 803dabc)
144 + checkout: add --ignore-skip-worktree-bits in sparse checkout mode
146 Make the initial "sparse" selection of the paths more sticky across
150 * rt/commentchar-fmt-merge-msg (2013-04-18) 1 commit
151 (merged to 'next' on 2013-04-18 at 96799bd)
152 + t6200: avoid path mangling issue on Windows
154 A test fix for recent update.
157 * ta/glossary (2013-04-15) 4 commits
158 (merged to 'next' on 2013-04-19 at 63ee8a4)
159 + glossary: improve definitions of refspec and pathspec
160 + The name of the hash function is "SHA-1", not "SHA1"
161 + glossary: improve description of SHA-1 related topics
162 + glossary: remove outdated/misleading/irrelevant entries
165 * th/bisect-final-log (2013-04-15) 1 commit
166 (merged to 'next' on 2013-04-19 at 89d2041)
167 + bisect: Store first bad commit as comment in log file
169 Leave a commit to note what the final outcome was in the bisect log
172 * tr/copy-revisions-from-stdin (2013-04-16) 1 commit
173 (merged to 'next' on 2013-04-16 at d882870)
174 + read_revisions_from_stdin: make copies for handle_revision_arg
176 A fix to a long-standing issue in the command line parser for
177 revisions, which was triggered by mv/sequence-pick-error-diag topic.
179 --------------------------------------------------
182 * jh/checkout-auto-tracking (2013-04-21) 8 commits
183 (merged to 'next' on 2013-04-22 at 2356700)
184 + glossary: Update and rephrase the definition of a remote-tracking branch
185 + branch.c: Validate tracking branches with refspecs instead of refs/remotes/*
186 + t9114.2: Don't use --track option against "svn-remote"-tracking branches
187 + t7201.24: Add refspec to keep --track working
188 + t3200.39: tracking setup should fail if there is no matching refspec.
189 + checkout: Use remote refspecs when DWIMming tracking branches
190 + t2024: Show failure to use refspec when DWIMming remote branch names
191 + t2024: Add tests verifying current DWIM behavior of 'git checkout <branch>'
193 Updates "git checkout foo" that DWIMs the intended "upstream" and
194 turns it into "git checkout -t -b foo remotes/origin/foo" to
195 correctly take existing remote definitions into account. The
196 remote "origin" may be what uniquely map its own branch to
197 remotes/some/where/foo but that some/where may not be "origin".
202 * mg/more-textconv (2013-04-19) 6 commits
203 - grep: honor --textconv for the case rev:path
204 - grep: allow to use textconv filters
205 - t7008: demonstrate behavior of grep with textconv
206 - cat-file: do not die on --textconv without textconv filters
207 - show: honor --textconv for blobs
208 - t4030: demonstrate behavior of show with textconv
213 * jk/receive-pack-deadlocks-with-early-failure (2013-04-19) 1 commit
214 (merged to 'next' on 2013-04-22 at 1e27177)
215 + receive-pack: close sideband fd on early pack errors
217 When receive-pack detects error in the pack header it received in
218 order to decide which of unpack-objects or index-pack to run, it
219 returned without closing the error stream, which led to a hang
222 Will fast-track to 'master'.
225 * fc/untracked-zsh-prompt (2013-04-21) 1 commit
226 (merged to 'next' on 2013-04-22 at 472da3e)
227 + prompt: fix untracked files for zsh
229 Will fast-track to 'master'.
232 * jn/glossary-revision (2013-04-21) 1 commit
233 - glossary: a revision is just a commit
235 The wording for "revision" in the glossary wanted to say it refers
236 to "commit (noun) as a concept" but it was badly phrased.
240 This may need further updates to hint that in contexts where it is
241 clear, the word may refer to an object name, not necessarily a
245 * rr/shortlog-doc (2013-04-22) 8 commits
246 - builtin/shortlog.c: make usage string consistent with log
247 - builtin/log.c: make usage string consistent with doc
248 - git-shortlog.txt: make SYNOPSIS match log, update OPTIONS
249 - git-log.txt: rewrite note on why "--" may be required
250 - git-log.txt: generalize <since>..<until>
251 - git-log.txt: order OPTIONS properly; move <since>..<until>
252 - revisions.txt: clarify the .. and ... syntax
253 - git-shortlog.txt: remove (-h|--help) from OPTIONS
255 Update documentation for "log" and "shortlog".
258 Will merge to 'next'.
261 * mh/multimail (2013-04-21) 1 commit
262 - git-multimail: a replacement for post-receive-email
264 Waiting for comments.
266 --------------------------------------------------
269 * jc/format-patch (2013-04-22) 2 commits
270 - format-patch: --inline-single
271 - format-patch: rename "no_inline" field
273 A new option to send a single patch to the standard output to be
274 appended at the bottom of a message. I personally have no need for
275 this, but it was easy enough to cobble together. Tests, docs and
276 stripping out more MIMEy stuff are left as exercises to interested
279 Not ready for inclusion.
282 * jk/gitweb-utf8 (2013-04-08) 4 commits
283 - gitweb: Fix broken blob action parameters on blob/commitdiff pages
284 - gitweb: Don't append ';js=(0|1)' to external links
285 - gitweb: Make feed title valid utf8
286 - gitweb: Fix utf8 encoding for blob_plain, blobdiff_plain, commitdiff_plain, and patch
288 Various fixes to gitweb.
290 Waiting for a reroll after a review.
293 * jk/commit-info-slab (2013-04-19) 3 commits
294 - commit-slab: introduce a macro to define a slab for new type
295 - commit-slab: avoid large realloc
296 - commit: allow associating auxiliary info on-demand
298 Technology demonstration to show a way we could use unbound number
299 of flag bits on commit objects.
302 * jn/config-ignore-inaccessible (2013-04-15) 1 commit
303 - config: allow inaccessible configuration under $HOME
305 When $HOME is misconfigured to point at an unreadable directory, we
306 used to complain and die. This loosens the check.
308 I do not think we agreed that this is a good idea, though.
310 --------------------------------------------------
313 * jc/prune-all (2013-04-18) 3 commits
314 (merged to 'next' on 2013-04-22 at b00ccf6)
315 + api-parse-options.txt: document "no-" for non-boolean options
316 + git-gc.txt, git-reflog.txt: document new expiry options
317 + date.c: add parse_expiry_date()
319 We used the approxidate() parser for "--expire=<timestamp>" options
320 of various commands, but it is better to treat --expire=all and
321 --expire=now a bit more specially than using the current timestamp.
322 Update "git gc" and "git reflog" with a new parsing function for
328 * nd/pretty-formats (2013-04-18) 13 commits
329 (merged to 'next' on 2013-04-22 at 3d63014)
330 + pretty: support %>> that steal trailing spaces
331 + pretty: support truncating in %>, %< and %><
332 + pretty: support padding placeholders, %< %> and %><
333 + pretty: add %C(auto) for auto-coloring
334 + pretty: split color parsing into a separate function
335 + pretty: two phase conversion for non utf-8 commits
336 + utf8.c: add reencode_string_len() that can handle NULs in string
337 + utf8.c: add utf8_strnwidth() with the ability to skip ansi sequences
338 + utf8.c: move display_mode_esc_sequence_len() for use by other functions
339 + pretty: share code between format_decoration and show_decorations
340 + pretty-formats.txt: wrap long lines
341 + pretty: get the correct encoding for --pretty:format=%e
342 + pretty: save commit encoding from logmsg_reencode if the caller needs it
344 pretty-printing body of the commit that is stored in non UTF-8
345 encoding did not work well. The early part of this series fixes
346 it. And then it adds %C(auto) specifier that turns the coloring on
347 when we are emitting to the terminal, and adds column-aligning
350 Will merge to 'master'.
353 * kb/status-ignored-optim-2 (2013-04-15) 14 commits
354 (merged to 'next' on 2013-04-21 at d2a5c70)
355 + dir.c: git-status --ignored: don't scan the work tree twice
356 + dir.c: git-status --ignored: don't scan the work tree three times
357 + dir.c: git-status: avoid is_excluded checks for tracked files
358 + dir.c: replace is_path_excluded with now equivalent is_excluded API
359 + dir.c: unify is_excluded and is_path_excluded APIs
360 + dir.c: move prep_exclude
361 + dir.c: factor out parts of last_exclude_matching for later reuse
362 + dir.c: git-clean -d -X: don't delete tracked directories
363 + dir.c: make 'git-status --ignored' work within leading directories
364 + dir.c: git-status --ignored: don't list empty directories as ignored
365 + dir.c: git-ls-files --directories: don't hide empty directories
366 + dir.c: git-status --ignored: don't list empty ignored directories
367 + dir.c: git-status --ignored: don't list files in ignored directories
368 + dir.c: git-status --ignored: don't drop ignored directories
370 Rerolls kb/status-ignored-optim topic (reverted from 'next').
371 With help from Karsten, conflicts with as/check-ignore topic have
372 been sorted out and it is now in 'pu'.
374 Will merge to 'master'.
377 * as/check-ignore (2013-04-11) 5 commits
378 (merged to 'next' on 2013-04-21 at 7515aa8)
379 + Documentation: add caveats about I/O buffering for check-{attr,ignore}
380 + check-ignore: allow incremental streaming of queries via --stdin
381 + check-ignore: move setup into cmd_check_ignore()
382 + check-ignore: add -n / --non-matching option
383 + t0008: remove duplicated test fixture data
385 Enhance "check-ignore" (1.8.2 update) to work more like "check-attr"
389 The test in the second from the tip needs to be updated.
392 * mh/packed-refs-various (2013-04-15) 33 commits
393 - refs: handle the main ref_cache specially
394 - refs: change do_for_each_*() functions to take ref_cache arguments
395 - pack_one_ref(): do some cheap tests before a more expensive one
396 - pack_one_ref(): use write_packed_entry() to do the writing
397 - pack_one_ref(): use function peel_entry()
398 - refs: inline function do_not_prune()
399 - pack_refs(): change to use do_for_each_entry()
400 - refs: use same lock_file object for both ref-packing functions
401 - pack_one_ref(): rename "path" parameter to "refname"
402 - pack-refs: merge code from pack-refs.{c,h} into refs.{c,h}
403 - pack-refs: rename handle_one_ref() to pack_one_ref()
404 - refs: extract a function write_packed_entry()
405 - repack_without_ref(): write peeled refs in the rewritten file
406 - t3211: demonstrate loss of peeled refs if a packed ref is deleted
407 - refs: change how packed refs are deleted
408 - search_ref_dir(): return an index rather than a pointer
409 - repack_without_ref(): silence errors for dangling packed refs
410 - t3210: test for spurious error messages for dangling packed refs
411 - refs: change the internal reference-iteration API
412 - refs: extract a function peel_entry()
413 - peel_ref(): fix return value for non-peelable, not-current reference
414 - peel_object(): give more specific information in return value
415 - refs: extract function peel_object()
416 - refs: extract a function ref_resolves_to_object()
417 - repack_without_ref(): use function get_packed_ref()
418 - peel_ref(): use function get_packed_ref()
419 - get_packed_ref(): return a ref_entry
420 - do_for_each_ref_in_dirs(): remove dead code
421 - refs: define constant PEELED_LINE_LENGTH
422 - refs: document how current_ref is used
423 - refs: document do_for_each_ref() and do_one_ref()
424 - refs: document the fields of struct ref_value
425 - refs: document flags constants REF_*
427 Updates reading and updating packed-refs file, correcting corner
430 Waiting for comments.
433 * jk/remote-helper-with-signed-tags (2013-04-15) 3 commits
434 (merged to 'next' on 2013-04-21 at 0231d45)
435 + transport-helper: add 'signed-tags' capability
436 + transport-helper: pass --signed-tags=warn-strip to fast-export
437 + fast-export: add --signed-tags=warn-strip mode
439 Allows remote-helpers to declare they can handle signed tags, and
440 issue a warning when using those that don't.
442 Will merge to 'master'.
445 * jn/gitweb-install-doc (2013-04-17) 2 commits
446 (merged to 'next' on 2013-04-22 at a5d4812)
447 + gitweb/INSTALL: GITWEB_CONFIG_SYSTEM is for backward compatibility
448 + gitweb/INSTALL: Simplify description of GITWEB_CONFIG_SYSTEM
450 Reword gitweb configuration instrutions.
452 Will merge to 'master'.
455 * fc/transport-helper-error-reporting (2013-04-17) 9 commits
456 (merged to 'next' on 2013-04-22 at 5ba6467)
457 + transport-helper: update remote helper namespace
458 + transport-helper: trivial code shuffle
459 + transport-helper: warn when refspec is not used
460 + transport-helper: clarify pushing without refspecs
461 + transport-helper: update refspec documentation
462 + transport-helper: clarify *:* refspec
463 + transport-helper: improve push messages
464 + transport-helper: mention helper name when it dies
465 + transport-helper: report errors properly
467 Update transport helper to report errors and maintain ref hierarchy
468 used to keep track of remote helper state better.
470 Will merge to 'master'.
473 * jk/submodule-subdirectory-ok (2013-04-18) 2 commits
474 (merged to 'next' on 2013-04-22 at f211e25)
475 + submodule: drop the top-level requirement
476 + rev-parse: add --prefix option
478 Allow various subcommands of "git submodule" to be run not from the
479 top of the working tree of the superproject.
484 * jl/submodule-mv (2013-04-11) 4 commits
485 (merged to 'next' on 2013-04-19 at 45ae3c9)
486 + rm: delete .gitmodules entry of submodules removed from the work tree
487 + Teach mv to update the path entry in .gitmodules for moved submodules
488 + Teach mv to move submodules using a gitfile
489 + Teach mv to move submodules together with their work trees
491 "git mv A B" when moving a submodule A does "the right thing",
492 inclusing relocating its working tree and adjusting the paths in
493 the .gitmodules file.
498 * jn/add-2.0-u-A-sans-pathspec (2013-04-03) 1 commit
499 - git add: -u/-A now affects the entire working tree
501 Will cook in 'next' until Git 2.0.
504 * nd/magic-pathspecs (2013-03-31) 45 commits
505 . Rename field "raw" to "_raw" in struct pathspec
506 . pathspec: support :(glob) syntax
507 . pathspec: make --literal-pathspecs disable pathspec magic
508 . pathspec: support :(literal) syntax for noglob pathspec
509 . Kill limit_pathspec_to_literal() as it's only used by parse_pathspec()
510 . parse_pathspec: preserve prefix length via PATHSPEC_PREFIX_ORIGIN
511 . parse_pathspec: make sure the prefix part is wildcard-free
512 . tree-diff: remove the use of pathspec's raw[] in follow-rename codepath
513 . Remove match_pathspec() in favor of match_pathspec_depth()
514 . Remove init_pathspec() in favor of parse_pathspec()
515 . Remove diff_tree_{setup,release}_paths
516 . Convert common_prefix() to use struct pathspec
517 . Convert add_files_to_cache to take struct pathspec
518 . Convert {read,fill}_directory to take struct pathspec
519 . Convert refresh_index to take struct pathspec
520 . Convert report_path_error to take struct pathspec
521 . checkout: convert read_tree_some to take struct pathspec
522 . Convert unmerge_cache to take struct pathspec
523 . Convert run_add_interactive to use struct pathspec
524 . Convert read_cache_preload() to take struct pathspec
525 . reset: convert to use parse_pathspec
526 . add: convert to use parse_pathspec
527 . check-ignore: convert to use parse_pathspec
528 . archive: convert to use parse_pathspec
529 . ls-files: convert to use parse_pathspec
530 . rm: convert to use parse_pathspec
531 . checkout: convert to use parse_pathspec
532 . rerere: convert to use parse_pathspec
533 . status: convert to use parse_pathspec
534 . commit: convert to use parse_pathspec
535 . clean: convert to use parse_pathspec
536 . Guard against new pathspec magic in pathspec matching code
537 . parse_pathspec: support prefixing original patterns
538 . parse_pathspec: support stripping/checking submodule paths
539 . parse_pathspec: support stripping submodule trailing slashes
540 . parse_pathspec: a special flag for max_depth feature
541 . Convert some get_pathspec() calls to parse_pathspec()
542 . parse_pathspec: add PATHSPEC_PREFER_{CWD,FULL}
543 . parse_pathspec: save original pathspec for reporting
544 . Add parse_pathspec() that converts cmdline args to struct pathspec
545 . pathspec: add copy_pathspec
546 . pathspec: i18n-ize error strings in pathspec parsing code
547 . Move struct pathspec and related functions to pathspec.[ch]
548 . clean: remove unused variable "seen"
549 . setup.c: check that the pathspec magic ends with ")"
551 Migrate the rest of codebase to use "struct pathspec" more.
556 * tr/line-log (2013-04-22) 13 commits
557 (merged to 'next' on 2013-04-22 at 8f2c1de)
558 + git-log(1): remove --full-line-diff description
559 (merged to 'next' on 2013-04-21 at cd92620)
560 + line-log: fix documentation formatting
561 (merged to 'next' on 2013-04-15 at 504559e)
562 + log -L: improve comments in process_all_files()
563 + log -L: store the path instead of a diff_filespec
564 + log -L: test merge of parallel modify/rename
565 + t4211: pass -M to 'git log -M -L...' test
566 (merged to 'next' on 2013-04-05 at 5afb00c)
567 + log -L: fix overlapping input ranges
568 + log -L: check range set invariants when we look it up
569 (merged to 'next' on 2013-04-01 at 5be920c)
570 + Speed up log -L... -M
571 + log -L: :pattern:file syntax to find by funcname
572 + Implement line-history search (git log -L)
573 + Export rewrite_parents() for 'log -L'
579 * jc/push-2.0-default-to-simple (2013-04-03) 1 commit
580 - push: switch default from "matching" to "simple"
582 The early bits to adjust the tests have been merged to 'master'.
584 Will cook in 'next' until Git 2.0.
587 * jc/add-2.0-delete-default (2013-04-21) 1 commit
588 - git add <pathspec>... defaults to "-A"
590 Will cook in 'next' until Git 2.0.