{"thread":{"id":"30427","subject":"What's cooking in git.git (May 2012, #02; Fri, 4)","startedAt":"2012-05-04T23:06:18Z","lastAt":"2012-05-10T16:47:16Z","messageCount":5,"participants":["Junio C Hamano","Jeff King"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"190810","messageId":"7vhavv8s2d.fsf@alter.siamese.dyndns.org","threadId":"30427","inReplyTo":null,"subject":"What's cooking in git.git (May 2012, #02; Fri, 4)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-05-04T23:06:18Z","receivedAt":"2012-05-04T23:06:18Z","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\nBoth 'next' and 'pu' branches are rapidly shrinking.  Given that we would\nwant to go into feature freeze in a week and half, I think this cycle is\ngoing fairly well.\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* jc/install-no-hardlinks (2012-05-04) 1 commit\n - Makefile: NO_INSTALL_HARDLINKS\n\nYour build platform may support hardlinks but you may prefer not to use\nthem, e.g. when installing to DESTDIR to make a tarball and untarring on\na filesystem that has poor support for hardlinks.\n\nThe Makefile in git-gui project may need to learn to honor the same\nsetting; it unconditionally creates git-citool by hardlinking git-gui.\n\nWill merge to 'next'.\n\n* jk/maint-reflog-walk-count-vs-time (2012-05-04) 4 commits\n - reflog-walk: always make HEAD@{0} show indexed selectors\n - reflog-walk: clean up \"flag\" field of commit_reflog struct\n - log: respect date_mode_explicit with --format:%gd\n - t1411: add more selector index/date tests\n\nGives a better DWIM behaviour for --pretty=format:%gd, \"stash list\", and\n\"log -g\", depending on how the starting point (\"master\" vs \"master@{0}\" vs\n\"master@{now}\") and date formatting options (e.g. \"--date=iso\") are given\non the command line.\n\nWe may want to clean it up further so that \"--date=default\" is taken as an\nexplicit request to show them in timed, not counted, format.\n\n* nd/i18n-branch-lego (2012-05-04) 1 commit\n - branch: remove lego in i18n tracking info strings\n\nFix yet another message construction by concatenating pieces of sentenes,\nwhich is unfriendly to i18n.\n\nWill merge to 'next'.\n\n* nh/empty-rebase (2012-05-03) 1 commit\n  (merged to 'next' on 2012-05-04 at 8a79d96)\n + git cherry-pick: do not dereference a potential NULL pointer\n\nFix to a topic merged to 'master'.\n\nWill merge to 'master'.\n\n* jc/maint-push-refs-all (2012-05-04) 2 commits\n - get_fetch_map(): tighten checks on dest refs\n - fetch/push: allow refs/*:refs/*\n\nAllows pushing and fetching refs/stash.\nNot ready.\nThere still seem to be other bugs hiding (e.g. try pushing twice).\n\n* js/checkout-detach-count (2012-05-04) 2 commits\n - checkout (detached): truncate list of orphaned commits at the new HEAD\n - t2020-checkout-detach: check for the number of orphaned commits\n\nWhen checking out another commit from an already detached state, we used\nto report all commits that are not reachable from any of the refs as\nlossage, but some of them might be reachable from the new HEAD, and there\nis no need to warn about them.\n\nWill merge to 'next'.\n\n--------------------------------------------------\n[Graduated to \"master\"]\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* 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--------------------------------------------------\n[Stalled]\n\n* nl/http-proxy-more (2012-05-03) 6 commits\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: fix http_proxy specified without protocol part\n - http: handle proxy proactive authentication\n - http: try http_proxy env var when http.proxy config option is not set\n\nIt appears that the scope of this series should be drastically reduced, or\nperhaps wait the entire topic until cURL library gains the necessary hooks\nto tell us what proxy server wants us to authenticate when giving us 407.\n\nProbably we will end up discarding this series, at least for this cycle.\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* 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-05-03) 10 commits\n - t5000: rationalize unzip tests\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 - 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 - streaming: void pointer instead of char pointer\n\nStream large blobs directly out to archive files without slurping\neverything in memory first.\n\nWill merge to 'next'.\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* mh/ref-api-lazy-loose (2012-05-04) 18 commits\n  (merged to 'next' on 2012-05-04 at a70d858)\n + refs: fix find_containing_dir() regression\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(): 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\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\nThe resulting code seems to be correct but is somewhat a confusing mess.\nWe may want to have a reroll before merging it to 'next'.\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":"191283","messageId":"20120510131255.GA2950@sigill.intra.peff.net","threadId":"30427","inReplyTo":"7vhavv8s2d.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (May 2012, #02; Fri, 4)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2012-05-10T13:12:55Z","receivedAt":"2012-05-10T13:12:55Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Fri, May 04, 2012 at 04:06:18PM -0700, Junio C Hamano wrote:\n\n> --------------------------------------------------\n> [Graduated to \"master\"]\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> \n> Will merge to 'master'.\n\nI noticed that this graduated to master, but not to maint. Any reason?\n\n-Peff\n"},{"id":"191298","messageId":"7vd36cozsi.fsf@alter.siamese.dyndns.org","threadId":"30427","inReplyTo":"20120510131255.GA2950@sigill.intra.peff.net","subject":"Re: What's cooking in git.git (May 2012, #02; Fri, 4)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-05-10T14:50:53Z","receivedAt":"2012-05-10T14:50:53Z","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> On Fri, May 04, 2012 at 04:06:18PM -0700, Junio C Hamano wrote:\n>\n>> --------------------------------------------------\n>> [Graduated to \"master\"]\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>> \n>> Will merge to 'master'.\n>\n> I noticed that this graduated to master, but not to maint. Any reason?\n\nNobody goes direct to 'maint' if it is complex enough to go through\nnext/pu cycle these days.\n\n  $ git log -p Documentation/RelNotes/1.7.11.txt\n\nwill show, for example, jk/maint-config-bogus-section was merged as part\nof the eighth batch (May 2) to 'master', but merged to 'maint' only after\nwe had it in 'master' for a bit without hearing any breakage caused by it.\n\nJust like all the other features listed below the \"Fixes since v1.7.10\"\nfold, the 'push progress' went into 'master' very recently with a note to\nmerge it later to 'maint', and we haven't seen 'later' yet.\n"},{"id":"191301","messageId":"20120510151328.GA20639@sigill.intra.peff.net","threadId":"30427","inReplyTo":"7vd36cozsi.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (May 2012, #02; Fri, 4)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2012-05-10T15:13:29Z","receivedAt":"2012-05-10T15:13:29Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Thu, May 10, 2012 at 07:50:53AM -0700, Junio C Hamano wrote:\n\n> >> \"git push\" over smart-http lost progress output and this resurrects it.\n> >> \n> >> Will merge to 'master'.\n> >\n> > I noticed that this graduated to master, but not to maint. Any reason?\n> \n> Nobody goes direct to 'maint' if it is complex enough to go through\n> next/pu cycle these days.\n> \n>   $ git log -p Documentation/RelNotes/1.7.11.txt\n> \n> will show, for example, jk/maint-config-bogus-section was merged as part\n> of the eighth batch (May 2) to 'master', but merged to 'maint' only after\n> we had it in 'master' for a bit without hearing any breakage caused by it.\n\nAh, OK. I thought the progression you used was topic->pu->next->maint.\nDid that used to be the case, or am I just crazy? I also don't remember\nseeing incremental updates to the release notes in this way. But then I\ndon't pay too much attention to them during the actual cycle.\n\nNot a criticism (in fact, it makes a lot more sense to me). Just natural\ncuriosity.\n\n> Just like all the other features listed below the \"Fixes since v1.7.10\"\n> fold, the 'push progress' went into 'master' very recently with a note to\n> merge it later to 'maint', and we haven't seen 'later' yet.\n\nRight. I saw only that it was dropped from \"What's cooking\" and didn't\nrealize you were keeping state in the release notes.\n\nThanks for the explanation.\n\n-Peff\n"},{"id":"191320","messageId":"7v8vh0nfu3.fsf@alter.siamese.dyndns.org","threadId":"30427","inReplyTo":"20120510151328.GA20639@sigill.intra.peff.net","subject":"Re: What's cooking in git.git (May 2012, #02; Fri, 4)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-05-10T16:47:16Z","receivedAt":"2012-05-10T16:47:16Z","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> Ah, OK. I thought the progression you used was topic->pu->next->maint.\n> Did that used to be the case, or am I just crazy?\n\nI may have done that in the past, but I think the current arrangement\nmakes more sense in order to keep 'maint' really stale^Wstable.  The\nprocess improvement happens ;-).\n"}]}