{"thread":{"id":"30400","subject":"What's cooking in git.git (May 2012, #01; Wed, 2)","startedAt":"2012-05-02T22:12:43Z","lastAt":"2012-05-03T07:10:17Z","messageCount":4,"participants":["Junio C Hamano","Jeff King"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"190601","messageId":"7vipgegrl0.fsf@alter.siamese.dyndns.org","threadId":"30400","inReplyTo":null,"subject":"What's cooking in git.git (May 2012, #01; Wed, 2)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-05-02T22:12:43Z","receivedAt":"2012-05-02T22:12:43Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Here are the topics that have been cooking.  Commits prefixed with '-' are\nonly in 'pu' (proposed updates) while commits prefixed with '+' are in 'next'.\n\nThe eighth batch of topics in this cycle is now in 'master', the topics in\n'next' all look ready, and we do not have many topics left in 'pu'.  The\ncycle is going well ;-)\n\nExcept for folks with libsvn-perl 1.6.x where x is greater than 9; we know\nhow the fix should look like, and we will have it in tomorrow's integration\nround.\n\nYou can find the changes described here in the integration branches of the\nrepositories listed at\n\n    http://git-blame.blogspot.com/p/git-public-repositories.html\n\n--------------------------------------------------\n[New Topics]\n\n* jk/maint-tformat-with-z (2012-05-01) 2 commits\n  (merged to 'next' on 2012-05-02 at a0f8af7)\n + log-tree: the previous one is still not quite right\n + log-tree: use custom line terminator in line termination mode\n\n\"log -z --pretty=tformat:...\" does not terminate each record with NUL\nand this is a beginning of an attempt to fix it.  It still is not right\nbut the patch does not make externally observable behaviour worse.\n\nWill merge to 'master'.\n\n* nd/stream-to-archive (2012-04-30) 9 commits\n - archive-zip: streaming for deflated files\n - archive-zip: streaming for stored files\n - archive-zip: factor out helpers for writing sizes and CRC\n - archive-zip: remove uncompressed_size\n - streaming: void pointer instead of char pointer\n - archive-tar: stream large blobs to tar file\n - archive: delegate blob reading to backend\n - archive-tar: unindent write_tar_entry by one level\n - archive-tar: turn write_tar_entry into blob-writing only\n\nStream large blobs directly out to archive files without slurping\neverything in memory first.  The streaming version of \"tar\" may need\nfurther fixing.\n\nExpecting another reroll; the second version already had review exchanges\nso I didn't pick it up.\n\n* jk/maint-push-progress (2012-05-01) 3 commits\n  (merged to 'next' on 2012-05-01 at 2286130)\n + t5541: test more combinations of --progress\n + teach send-pack about --[no-]progress\n + send-pack: show progress when isatty(2)\n\n\"git push\" over smart-http lost progress output and this resurrects it.\n\nWill merge to 'master'.\n\n* zj/diff-empty-chmod (2012-05-02) 5 commits\n  (merged to 'next' on 2012-05-02 at fb8cb11)\n + t4006: Windows do not have /dev/zero\n  (merged to 'next' on 2012-05-01 at 5a92787)\n + diff --stat: do not run diff on indentical files\n + diff --stat: report mode-only changes for binary files like text files\n + tests: check --[short]stat output after chmod\n + test: modernize style of t4006\n\n\"git diff --stat\" used to fully count a binary file with modified\nexecution bits whose contents is unmodified, which was not right.\n\nWill merge to 'master'.\n\n--------------------------------------------------\n[Graduated to \"master\"]\n\n* ab/i18n (2012-04-30) 3 commits\n  (merged to 'next' on 2012-04-30 at 5e7620d)\n + git-commit: remove lego in i18n messages\n + git-commit: remove lego in i18n messages\n + git-branch: remove lego in i18n messages\n\nFixes some constructs that build messages meant for i18n by concatenating\npieces of strings.\n\n* jc/index-v4 (2012-04-27) 12 commits\n  (merged to 'next' on 2012-04-29 at ed71f9c)\n + index-v4: document the entry format\n + unpack-trees: preserve the index file version of original\n  (merged to 'next' on 2012-04-19 at 5e4b029)\n + update-index: upgrade/downgrade on-disk index version\n + read-cache.c: write prefix-compressed names in the index\n + read-cache.c: read prefix-compressed names in index on-disk version v4\n + read-cache.c: move code to copy incore to ondisk cache to a helper function\n + read-cache.c: move code to copy ondisk to incore cache to a helper function\n + read-cache.c: report the header version we do not understand\n + read-cache.c: make create_from_disk() report number of bytes it consumed\n + read-cache.c: allow unaligned mapping of the index file\n + cache.h: hide on-disk index details\n + varint: make it available outside the context of pack\n (this branch is tangled with jc/split-blob.)\n\nTrivially shrinks the on-disk size of the index file to save both I/O and\nchecksum overhead.  It even comes with a technical doc updates.\n\nThe topic should give a solid base to build on further updates, with the\ncode refactoring in its earlier parts, and the backward compatibility\nmechanism in its later parts.\n\n* jc/rerere-train (2012-04-30) 1 commit\n  (merged to 'next' on 2012-04-30 at 0cc4308)\n + contrib/rerere-train: use installed git-sh-setup\n\nA script written long time ago proved to be useful this week for me ;-)\nwith a minor tweak.\n\n* jk/doc-asciidoc-inline-literal (2012-04-26) 1 commit\n  (merged to 'next' on 2012-04-30 at a52b4e6)\n + docs: stop using asciidoc no-inline-literal\n\nOur documentation was written for an ancient version of AsciiDoc,\nmaking the source not very readable.\n\n* jk/maint-config-bogus-section (2012-04-25) 1 commit\n  (merged to 'next' on 2012-04-26 at 9919198)\n + config: reject bogus section names for --rename-section\n\n\"git config --rename-section\" to rename an existing section into a\nbogus one did not check the new name.\n\n* jk/maint-gitweb-test-use-sane-perl (2012-05-01) 2 commits\n  (merged to 'next' on 2012-05-01 at 88b3f80)\n + Consistently use perl from /usr/bin/ for scripts\n + t/gitweb-lib: use $PERL_PATH to run gitweb\n\nWhen using a Perl script on a system where \"perl\" found on user's $PATH\ncould be ancient or otherwise broken, we allow builders to specify the\npath to a good copy of Perl with $PERL_PATH.  The gitweb test forgot to\nuse that Perl when running its test.\n\n* ld/git-p4-tags-and-labels (2012-04-25) 7 commits\n  (merged to 'next' on 2012-04-25 at 8b959e5)\n + git p4: fix unit tests\n  (merged to 'next' on 2012-04-24 at bf55d92)\n + git p4: move verbose to base class\n + git p4: Ignore P4EDITOR if it is empty\n + git p4: Squash P4EDITOR in test harness\n + git p4: fix-up \"import/export of labels to/from p4\"\n  (merged to 'next' on 2012-04-15 at 1b1e9a1)\n + git p4: import/export of labels to/from p4\n + git p4: Fixing script editor checks\n\nSupport p4 labels by importing/exporting them as git tags.\n\n* lp/diffstat-with-graph (2012-04-27) 8 commits\n  (merged to 'next' on 2012-04-30 at b301202)\n + t4052: work around shells unable to set COLUMNS to 1\n + Merge branch 'zj/mksh-columns-breakage' into lp/diffstat-with-graph\n  (merged to 'next' on 2012-04-23 at 8de0747)\n + Prevent graph_width of stat width from falling below min\n + t4052: Test diff-stat output with minimum columns\n + t4052: Adjust --graph --stat output for prefixes\n + Adjust stat width calculations to take --graph output into account\n + Add output_prefix_length to diff_options\n + t4052: test --stat output with --graph\n (this branch uses zj/mksh-columns-breakage; is tangled with nd/columns.)\n\n\"log --graph\" was not very friendly with \"--stat\" option and its output\nhad line breaks at wrong places.\n\n* mm/simple-push (2012-04-24) 7 commits\n  (merged to 'next' on 2012-04-30 at 1a571d2)\n + push.default doc: explain simple after upstream\n + push: document the future default change for push.default (matching -> simple)\n + t5570: use explicit push refspec\n + push: introduce new push.default mode \"simple\"\n + t5528-push-default.sh: add helper functions\n + Undocument deprecated alias 'push.default=tracking'\n + Documentation: explain push.default option a bit more\n (this branch is used by mm/push-default-switch-warning.)\n\nNew users tend to work on one branch at a time and push the result\nout. The current and upstream modes of push is a more suitable default\nmode than matching mode for these people, but neither is surprise-free\ndepending on how the project is set up. Introduce a \"simple\" mode that\nis a subset of \"upstream\" but only works when the branch is named the same\nbetween the remote and local repositories.\n\nThe plan is to make it the new default when push.default is not\nconfigured.\n\n* nd/i18n (2012-04-25) 11 commits\n  (merged to 'next' on 2012-04-30 at d8bbd7a)\n + help: replace underlining \"help -a\" headers using hyphens with a blank line\n  (merged to 'next' on 2012-04-24 at 07965a4)\n + i18n: bundle: mark strings for translation\n + i18n: index-pack: mark strings for translation\n + i18n: apply: update say_patch_name to give translators complete sentence\n + i18n: apply: mark strings for translation\n + i18n: remote: mark strings for translation\n + i18n: make warn_dangling_symref() automatically append \\n\n + i18n: help: mark strings for translation\n + i18n: mark relative dates for translation\n + strbuf: convenience format functions with \\n automatically appended\n + Makefile: feed all header files to xgettext\n\nMore message strings marked for i18n.\n\n* nh/empty-rebase (2012-04-24) 4 commits\n  (merged to 'next' on 2012-04-24 at 91d2dfd)\n + git-rebase: add keep_empty flag\n + git-cherry-pick: Add test to validate new options\n + git-cherry-pick: Add keep-redundant-commits option\n + git-cherry-pick: add allow-empty option\n\n\"git rebase\" learned to optionally keep commits that do not introduce\nany change in the original history.\n\n* pw/message-cleanup (2012-04-30) 2 commits\n  (merged to 'next' on 2012-04-30 at 703c0c4)\n + remove blank filename in error message\n + remove superfluous newlines in error messages\n\nMany error/warning messages had extra trailing newlines that are\nunnecessary.\n\n* pw/p4-various (2012-04-30) 4 commits\n  (merged to 'next' on 2012-04-30 at b20428c)\n + git p4: submit files with wildcards\n + git p4: fix writable file after rename or copy\n + git p4: test submit\n + git p4: bring back files in deleted client directory\n\nMiscellaneous updates to \"git p4\".\n\n* tr/xdiff-fast-hash (2012-05-01) 2 commits\n  (merged to 'next' on 2012-05-01 at 5155b98)\n + xdiff: choose XDL_FAST_HASH code on sizeof(long) instead of __WORDSIZE\n  (merged to 'next' on 2012-04-24 at ed693cf)\n + xdiff: load full words in the inner loop of xdl_hash_record\n\nUse word-at-a-time comparison to find end of line or NUL (end of buffer),\nborrowed from the linux-kernel discussion.\n\n* zj/diff-stat-smaller-num-columns (2012-04-30) 1 commit\n  (merged to 'next' on 2012-05-01 at eb68d3b)\n + diff --stat: use less columns for change counts\n\nSpend only minimum number of columns necessary to show the number of lines\nin the output from \"diff --stat\", instead of always allocating 4 columns\neven when showing changes that are much smaller than 1000 lines.\n\n* zj/mksh-columns-breakage (2012-04-27) 1 commit\n  (merged to 'next' on 2012-04-30 at cce82a8)\n + test-lib: skip test with COLUMNS=1 under mksh\n (this branch is used by lp/diffstat-with-graph and nd/columns.)\n\nA broken shell may not let us set an environment value to an arbitrary\nvalue, interfering with some of the tests. Introduce a test prerequisite\nso that we can skip some tests on such a platform.\n\n--------------------------------------------------\n[Stalled]\n\n* nl/http-proxy-more (2012-04-26) 8 commits\n - http: try an uppercase version of $proto_proxy\n - http: fix proxy password passing\n - http: fix proxy authentication\n - http: rename HTTP_REAUTH to HTTP_AUTH_RETRY\n - http: Avoid limit of retrying request only twice\n - http: handle proxy authentication failure (error 407)\n - http: handle proxy proactive authentication\n - http: try http_proxy env var when http.proxy config option is not set\n\nStill needs to address review comments from Peff, some of which were\npartly addressed with later \"fixup\" patches queued here.\n\nIt probably is a good idea to re-roll the entire series.\n\n* jc/run-hook-env-1 (2012-03-11) 1 commit\n - run_hook(): enhance the interface to pass arbitrary environment\n\nNot urgent.\n\nUpdates run_hook() API to be much less specific to \"commit\".  It would\nonly be useful if people start doing more interesting things with hooks.\n\n* jc/split-blob (2012-04-03) 6 commits\n - chunked-object: streaming checkout\n - chunked-object: fallback checkout codepaths\n - bulk-checkin: support chunked-object encoding\n - bulk-checkin: allow the same data to be multiply hashed\n - new representation types in the packstream\n - packfile: use varint functions\n\nNot ready.\n\nI finished the streaming checkout codepath, but as explained in\n127b177 (bulk-checkin: support chunked-object encoding, 2011-11-30),\nthese are still early steps of a long and painful journey. At least\npack-objects and fsck need to learn the new encoding for the series\nto be usable locally, and then index-pack/unpack-objects needs to\nlearn it to be used remotely.\n\nGiven that I heard a lot of noise that people want large files, and\nthat I was asked by somebody at GitTogether'11 privately for an\nadvice on how to pay developers (not me) to help adding necessary\nsupport, I am somewhat dissapointed that the original patch series\nthat was sent almost two months ago still remains here without much\ncomments and updates from the developer community. I even made the\ninterface to the logic that decides where to split chunks easily\nreplaceable, and I deliberately made the logic in the original patch\nextremely stupid to entice others, especially the \"bup\" fanboys, to\ncome up with a better logic, thinking that giving people an easy\ntarget to shoot for, they may be encouraged to help out. The plan is\nnot working :-(.\n\n--------------------------------------------------\n[Cooking]\n\n* mh/ref-api-lazy-loose (2012-04-26) 18 commits\n - refs: read loose references lazily\n - read_loose_refs(): eliminate ref_cache argument\n - struct ref_dir: store a reference to the enclosing ref_cache\n - search_for_subdir(): return (ref_dir *) instead of (ref_entry *)\n - get_ref_dir(): add function for getting a ref_dir from a ref_entry\n - read_loose_refs(): rename function from get_ref_dir()\n - refs: wrap top-level ref_dirs in ref_entries\n - find_containing_dir(): use strbuf in implementation of this function\n - bisect: copy filename string obtained from git_path()\n - do_for_each_reflog(): reuse strbuf across recursive function calls\n - do_for_each_reflog(): use a strbuf to hold logfile name\n - do_for_each_reflog(): return early on error\n - get_ref_dir(): take the containing directory as argument\n - refs.c: extract function search_for_subdir()\n - get_ref_dir(): require that the dirname argument ends in '/'\n - get_ref_dir(): rename \"base\" parameter to \"dirname\"\n - get_ref_dir(): use a strbuf to hold refname\n - get_ref_dir(): return early if directory cannot be read\n\nRefs API is updated to lazily read sub-hierarchies of refs/ namespace,\nso that we do not have to grab everything from the filesystem when we\nare only interested in listing branches, for example.\n\nThis looked mostly sane. Did I miss \"needs more work\" review comments?\n\n* nd/columns (2012-04-27) 10 commits\n  (merged to 'next' on 2012-04-30 at 93bb157)\n + tag: add --column\n + column: support piping stdout to external git-column process\n + status: add --column\n + branch: add --column\n + help: reuse print_columns() for help -a\n + column: add dense layout support\n + t9002: work around shells that are unable to set COLUMNS to 1\n + column: add columnar layout\n + Stop starting pager recursively\n + Add column layout skeleton and git-column\n\nA couple of commands learn --column option to produce columnar output.\n\nWill merge to 'master'.\n\n* nd/threaded-index-pack (2012-04-19) 4 commits\n - index-pack: disable threading if NO_PREAD is defined\n - index-pack: support multithreaded delta resolving\n - index-pack: split second pass obj handling into own function\n - compat/win32/pthread.h: Add an pthread_key_delete() implementation\n\n* th/difftool-diffall (2012-04-23) 8 commits\n  (merged to 'next' on 2012-05-02 at fdc9f60)\n + difftool: print list of valid tools with '--tool-help'\n + difftool: teach difftool to handle directory diffs\n + difftool: eliminate setup_environment function\n + difftool: stop appending '.exe' to git\n + difftool: remove explicit change of PATH\n + difftool: exit(0) when usage is printed\n + difftool: add '--no-gui' option\n + difftool: parse options using Getopt::Long\n\nRolls the two-directory-diff logic from diffall script (in contrib/) into\n\"git difftool\" framework. \n\nWill merge to 'master'.\n\n* mm/push-default-switch-warning (2012-04-26) 2 commits\n - t5541: warning message is given even with --quiet\n - push: start warning upcoming default change for push.default\n\nWill squash the two, but this has to wait for a few release cycles.\n\n--------------------------------------------------\n[Discarded]\n\n* cb/daemon-test-race-fix (2012-04-27) 2 commits\n  (merged to 'next' on 2012-04-27 at 84bbcf8)\n + Revert \"git-daemon wrapper to wait until daemon is ready\"\n  (merged to 'next' on 2012-04-24 at d5c30be)\n + git-daemon wrapper to wait until daemon is ready\n\nFix race condition between starting and waiting for git-daemon in the\ntest.\n\nReverted from 'next' to replace it with js/daemon-test-race-fix.\n"},{"id":"190603","messageId":"7vehr2gr9a.fsf@alter.siamese.dyndns.org","threadId":"30400","inReplyTo":"7vipgegrl0.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (May 2012, #01; Wed, 2)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-05-02T22:19:45Z","receivedAt":"2012-05-02T22:19:45Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n> Here are the topics that have been cooking.  Commits prefixed with '-' are\n> only in 'pu' (proposed updates) while commits prefixed with '+' are in 'next'.\n>\n> The eighth batch of topics in this cycle is now in 'master', the topics in\n> 'next' all look ready, and we do not have many topics left in 'pu'.  The\n> cycle is going well ;-)\n>\n> Except for folks with libsvn-perl 1.6.x where x is greater than 9; we know\n> how the fix should look like, and we will have it in tomorrow's integration\n> round.\n\nActually, I lied.  Eric's pull request almost crossed with the\nannouncement, and I decided to redo today's integration cycle to include\nthe fix, as having to say \"GIT_SKIP_TESTS=t91?? make\" is just annoying.\n"},{"id":"190606","messageId":"20120502234352.GA2163@sigill.intra.peff.net","threadId":"30400","inReplyTo":"7vipgegrl0.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (May 2012, #01; Wed, 2)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2012-05-02T23:43:52Z","receivedAt":"2012-05-02T23:43:52Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Wed, May 02, 2012 at 03:12:43PM -0700, Junio C Hamano wrote:\n\n> [Graduated to \"master\"]\n> [...]\n> * jk/doc-asciidoc-inline-literal (2012-04-26) 1 commit\n>   (merged to 'next' on 2012-04-30 at a52b4e6)\n>  + docs: stop using asciidoc no-inline-literal\n> \n> Our documentation was written for an ancient version of AsciiDoc,\n> making the source not very readable.\n\nNow that this is in master, any in-flight topics would need their\ndocumentation updated to match this, too. I checked:\n\n  git diff jk/doc-asciidoc-inline-literal origin/pu Documentation\n\nand found only one case.  We may still get some submissions based on the\nold style, but now we are aware of the issue and can comment and correct\nit during review.\n\nThis patch is for mm/include-userpath, which is in master already. And\nit's only the right thing to do after the merge of\njk/doc-asciidoc-inline-literal, so really it should just go straight\ninto master.\n\n-- >8 --\nSubject: [PATCH] doc/config: fix inline literals\n\nSince commit 6cf378f, asciidoc backticks are now inline\nliterals; therefore quoting {tilde} inside them is wrong\n(this instance was missed in 6cf378f because it happened on\na parallel line of development).\n\nSigned-off-by: Jeff King <peff@peff.net>\n---\n Documentation/config.txt |    4 ++--\n 1 file changed, 2 insertions(+), 2 deletions(-)\n\ndiff --git a/Documentation/config.txt b/Documentation/config.txt\nindex e67c8ef..d575481 100644\n--- a/Documentation/config.txt\n+++ b/Documentation/config.txt\n@@ -95,8 +95,8 @@ included file is expanded immediately, as if its contents had been\n found at the location of the include directive. If the value of the\n `include.path` variable is a relative path, the path is considered to be\n relative to the configuration file in which the include directive was\n-found. The value of `include.path` is subject to tilde expansion: `{tilde}/`\n-is expanded to the value of `$HOME`, and `{tilde}user/` to the specified\n+found. The value of `include.path` is subject to tilde expansion: `~/`\n+is expanded to the value of `$HOME`, and `~user/` to the specified\n user's home directory. See below for examples.\n \n Example\n-- \n1.7.10.630.g31718\n"},{"id":"190624","messageId":"7v62cdhh9i.fsf@alter.siamese.dyndns.org","threadId":"30400","inReplyTo":"20120502234352.GA2163@sigill.intra.peff.net","subject":"Re: What's cooking in git.git (May 2012, #01; Wed, 2)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-05-03T07:10:17Z","receivedAt":"2012-05-03T07:10:17Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jeff King <peff@peff.net> writes:\n\n> Now that this is in master, any in-flight topics would need their\n> documentation updated to match this, too.\n\nThanks.\n"}]}