{"thread":{"id":"30603","subject":"What's cooking in git.git (May 2012, #06; Wed, 23)","startedAt":"2012-05-23T22:24:01Z","lastAt":"2012-05-24T17:01:55Z","messageCount":5,"participants":["Junio C Hamano","René Scharfe","Johannes Sixt"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"192026","messageId":"7vmx4yzgce.fsf@alter.siamese.dyndns.org","threadId":"30603","inReplyTo":null,"subject":"What's cooking in git.git (May 2012, #06; Wed, 23)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-05-23T22:24:01Z","receivedAt":"2012-05-23T22:24:01Z","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\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[Graduated to \"master\"]\n\n* bp/diff-no-index-strbuf-fix (2012-05-16) 2 commits\n  (merged to 'next' on 2012-05-18 at b2c26bb)\n + diff --no-index: don't leak buffers in queue_diff\n + diff --no-index: reset temporary buffer lengths on directory iteration\n\nFix regressions to \"git diff --no-index\" when it recurses down.\n\n* hv/submodule-alt-odb (2012-05-14) 1 commit\n  (merged to 'next' on 2012-05-18 at 2f17ac8)\n + teach add_submodule_odb() to look for alternates\n\nWhen peeking into object stores of submodules, the code forgot that they\nmight borrow objects from alternate object stores on their own.\n\n* js/rebase-i-p-test-fix (2012-05-18) 1 commit\n  (merged to 'next' on 2012-05-18 at b7482fc)\n + Fix t3411.3 to actually rebase something\n\n* js/rev-parse-doc-fix (2012-05-18) 1 commit\n  (merged to 'next' on 2012-05-18 at c16f1c7)\n + rev-parse doc: --git-dir does not always show a relative path\n\n* rs/archive-tree-in-tip-simplify (2012-05-18) 2 commits\n  (merged to 'next' on 2012-05-18 at a8ca614)\n + archive-tar: keep const in checksum calculation\n + archive: simplify refname handling\n\n--------------------------------------------------\n[New Topics]\n\n* fc/git-prompt-script (2012-05-22) 5 commits\n - completion: split __git_ps1 into a separate script\n - completion: remove executable mode\n - Merge branch 'fc/git-complete-helper' into fc/git-prompt-script\n - tests: add tests for the bash prompt functions in the completion script\n - tests: move code to run tests under bash into a helper library\n (this branch is tangled with sg/bash-prompt.)\n\nLooked reasonable from my point of view, but I am not familiar with the\ndirection in which larger \"bash completion\" project folks are going, so\npeople more knowledgeable than myself need to help me guiding this topic.\n\n* jk/fetch-pack-remove-dups-optim (2012-05-22) 5 commits\n  (merged to 'next' on 2012-05-23 at 6057c21)\n + fetch-pack: avoid quadratic loop in filter_refs\n + fetch-pack: sort the list of incoming refs\n + add sorting infrastructure for list refs\n + fetch-pack: avoid quadratic behavior in remove_duplicates\n + fetch-pack: sort incoming heads\n\nThe way \"fetch-pack\" taht is given multiple references to fetch tried to\nremove duplicates was very inefficient.\n\nWill merge to master.\n\n* jk/ident-split-fix (2012-05-22) 1 commit\n  (merged to 'next' on 2012-05-23 at 811c9ec)\n + fix off-by-one error in split_ident_line\n\nAn author/committer name that is a single character was mishandled as an\ninvalid name by mistake.\n\nWill merge to master and later to maint.\n\n* jk/pretty-commit-header-incomplete-line (2012-05-22) 1 commit\n  (merged to 'next' on 2012-05-23 at f788433)\n + avoid segfault when reading header of malformed commits\n\nWill merge to master and later to maint.\n\n* mh/fetch-pack-constness (2012-05-22) 4 commits\n  (merged to 'next' on 2012-05-23 at be95121)\n + cmd_fetch_pack(): respect constness of argv parameter\n + cmd_fetch_pack(): combine the loop termination conditions\n + cmd_fetch_pack(): handle non-option arguments outside of the loop\n + cmd_fetch_pack(): declare dest to be const\n\nTighten constness of some local variables in a callchain.\n\n* rs/refs-string-slice (2012-05-22) 4 commits\n  (merged to 'next' on 2012-05-23 at d224de1)\n + refs: do not create ref_entry when searching\n + refs: use strings directly in find_containing_dir()\n + refs: convert parameter of create_dir_entry() to length-limited string\n + refs: convert parameter of search_ref_dir() to length-limited string\n\nAvoid unnecessary temporary allocations while looking for matching refs\ninside refs API.\n\n* cr/persistent-https (2012-05-23) 1 commit\n - Add persistent-https to contrib\n\nA remote helper that acts as a proxy that caches ssl session for the\nhttps:// transport is added to the contrib/ area.\n\n* jk/format-person-part-buffer-limit (2012-05-22) 1 commit\n  (merged to 'next' on 2012-05-23 at ef025b0)\n + pretty: avoid buffer overflow in format_person_part\n\nWill merge to master and later to maint.\n\n* nd/stream-index-pack (2012-05-23) 6 commits\n - sha1_loose_object_info: do not complain out loud on non-existent objects\n - index-pack: avoid collision test when verifying in-repo pack\n - index-pack: use streaming interface for collision test on large blobs\n - index-pack: factor out unpack core from get_data_from_pack\n - index-pack: use streaming interface on large blobs (most of the time)\n - index-pack: hash non-delta objects while reading from stream\n\nUse streaming API to read from the object store to avoid having to hold\na large blob object in-core while running index-pack.\n\nThe later 3 patches in the series looked a bit suspect.\n\n* va/git-p4-test (2012-05-23) 2 commits\n - git-p4: Verify detection of \"empty\" branch creation\n - git-p4: Test changelists touching two branches\n\n--------------------------------------------------\n[Stalled]\n\n* nl/http-proxy-more (2012-05-11) 2 commits\n - http: rename HTTP_REAUTH to HTTP_AUTH_RETRY\n - http: Avoid limit of retrying request only twice\n\nI queued only the later two patches from this series, even though they do\nnot make much sense without the first one that seems to need a bit more\nwork, so that we won't forget.\n\n* sg/bash-prompt (2012-05-09) 4 commits\n - completion: respect $GIT_DIR\n - completion: use __gitdir() in _git_log()\n - tests: add tests for the bash prompt functions in the completion script\n - tests: move code to run tests under bash into a helper library\n (this branch is tangled with fc/git-prompt-script.)\n\nThis is only the \"correction\" bits taken from the beginning of a larger\nseries that is to be rerolled.  The first two are tangled with Felipe's\ntopic so a reroll, if comes, should build on top of them.\n\n* jc/apply-3way (2012-05-16) 12 commits\n - WIP: the message is bogus in apply:::check_patch()\n - apply: refactor \"previous patch\" logic\n - apply: a bit more comments on PATH_TO_BE_DELETED\n - apply: document --3way option\n - apply: allow rerere() upon --3way results\n - apply: register conflicted stages to the index\n - apply: plug the three-way merge logic in\n - apply: fall back on three-way merge\n - apply: accept -3/--3way command line option\n - apply: split load_preimage() helper function out\n - apply: refactor read_file_or_gitlink()\n - apply: clear_image() clears things a bit more\n (this branch is tangled with jc/wip-apply-3way.)\n\n\"git apply\" learns to wiggle the base version and perform three-way merge\nwhen a patch does not exactly apply to the version you have.\n\nIt turns out that it is somewhat unpleasant to handle add/add conflicts in\nthis code, but it seems necessary if we want to use \"apply -3\" to replace\nthe use of \"apply --build-fake-ancestor\" followed by the slow \"merge\" in\n\"am -3\".\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* 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/ident-gecos-strbuf (2012-05-22) 15 commits\n  (merged to 'next' on 2012-05-23 at 6fce816)\n + format-patch: refactor get_patch_filename\n + ident: trim whitespace from default name/email\n + ident: use a dynamic strbuf in fmt_ident\n + ident: use full dns names to generate email addresses\n + ident: report passwd errors with a more friendly message\n + drop length limitations on gecos-derived names and emails\n + ident: don't write fallback username into git_default_name\n + fmt_ident: drop IDENT_WARN_ON_NO_NAME code\n + format-patch: use default email for generating message ids\n + ident: trim trailing newline from /etc/mailname\n + move git_default_* variables to ident.c\n + move identity config parsing to ident.c\n + fmt-merge-msg: don't use static buffer in record_person\n + http-push: do not access git_default_email directly\n + ident: split setup_ident into separate functions\n\nFixes quite a lot of brokenness when ident information needs to be taken\nfrom the system and cleans up the code.\n\nWill merge to master.\n\n* js/submodule-relative (2012-05-23) 2 commits\n - submodule: fix handling of relative superproject origin URLs\n - submodule: document handling of relative superproject origin URLs\n\n* mh/ref-api-lazy-loose (2012-05-20) 1 commit\n  (merged to 'next' on 2012-05-23 at c41a30a)\n + free_ref_entry(): do not trigger reading of loose refs\n\nThe code to lazily read loose refs by mistake unnecessarily read the refs\nin a subhierarchy when we free the data for the subhierarchy.\n\nWill merge to master.\n\n* mh/test-keep-prove-cache (2012-05-20) 1 commit\n  (merged to 'next' on 2012-05-23 at 870d1f9)\n + t/Makefile: retain cache t/.prove across prove runs\n\n* ng/pack-objects-cleanup (2012-05-18) 2 commits\n  (merged to 'next' on 2012-05-23 at f90b1ba)\n + pack-objects: refactor write_object() into helper functions\n + pack-objects, streaming: turn \"xx >= big_file_threshold\" to \".. > ..\"\n\n* rs/maint-grep-F (2012-05-21) 4 commits\n  (merged to 'next' on 2012-05-23 at b24143c)\n + grep: stop leaking line strings with -f\n + grep: support newline separated pattern list\n + grep: factor out do_append_grep_pat()\n + grep: factor out create_grep_pat()\n\n\"git grep -F\", unlike the case where it reads from a file, did not treat\nindividual lines in the given pattern argument as separate patterns as it\nshould.\n\nWill merge to master and later to maint.\n\n* rs/xdiff-fast-hash-fix (2012-05-23) 3 commits\n  (merged to 'next' on 2012-05-23 at 8df26a5)\n + xdiff: import new 32-bit version of count_masked_bytes()\n + xdiff: avoid more compiler warnings with XDL_FAST_HASH on 32-bit machines\n + xdiff: avoid compiler warnings with XDL_FAST_HASH on 32-bit machines\n\nWill merge to master.\n\n* sp/sh-windows-pwd (2012-05-16) 1 commit\n  (merged to 'next' on 2012-05-23 at 63004c3)\n + git-sh-setup: define workaround wrappers before they are used\n\nWill merge to master.\n\n* fc/git-complete-helper-fix (2012-05-20) 2 commits\n  (merged to 'next' on 2012-05-23 at 6124da2)\n + completion: add support for backwards compatibility\n + completion: rename internal helpers _git and _gitk\n\nWill merge to master.\n\n* rs/dir-strbuf-read-recursive-fix (2012-05-11) 2 commits\n  (merged to 'next' on 2012-05-23 at 2e22549)\n + dir: simplify fill_directory()\n + dir: respect string length argument of read_directory_recursive()\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\nReverted from 'next' to replace it with js/daemon-test-race-fix.\n"},{"id":"192047","messageId":"4FBDC8FA.9050501@lsrfire.ath.cx","threadId":"30603","inReplyTo":"7vmx4yzgce.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (May 2012, #06; Wed, 23)","fromName":"René Scharfe","fromEmail":"rene.scharfe@lsrfire.ath.cx","sentAt":"2012-05-24T05:36:58Z","receivedAt":"2012-05-24T05:36:58Z","isPatch":false,"sender":{"key":"l.s.r@web.de","avatar":"https://avatars.githubusercontent.com/u/26122331?v=4"},"body":"Am 24.05.2012 00:24, schrieb Junio C Hamano:\n> * rs/maint-grep-F (2012-05-21) 4 commits\n>    (merged to 'next' on 2012-05-23 at b24143c)\n>   + grep: stop leaking line strings with -f\n>   + grep: support newline separated pattern list\n>   + grep: factor out do_append_grep_pat()\n>   + grep: factor out create_grep_pat()\n>\n> \"git grep -F\", unlike the case where it reads from a file, did not treat\n> individual lines in the given pattern argument as separate patterns as it\n> should.\n\nThis is not specific to -F; grep(1) accepts newline-separated pattern \nlists with -E etc. as well, as does git grep with the patches above.\n\nRené\n"},{"id":"192049","messageId":"4FBDCE26.1080904@viscovery.net","threadId":"30603","inReplyTo":"4FBDC8FA.9050501@lsrfire.ath.cx","subject":"Re: What's cooking in git.git (May 2012, #06; Wed, 23)","fromName":"Johannes Sixt","fromEmail":"j.sixt@viscovery.net","sentAt":"2012-05-24T05:59:02Z","receivedAt":"2012-05-24T05:59:02Z","isPatch":false,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Am 5/24/2012 7:36, schrieb René Scharfe:\n> Am 24.05.2012 00:24, schrieb Junio C Hamano:\n>> * rs/maint-grep-F (2012-05-21) 4 commits\n>>    (merged to 'next' on 2012-05-23 at b24143c)\n>>   + grep: stop leaking line strings with -f\n>>   + grep: support newline separated pattern list\n>>   + grep: factor out do_append_grep_pat()\n>>   + grep: factor out create_grep_pat()\n>>\n>> \"git grep -F\", unlike the case where it reads from a file, did not treat\n>> individual lines in the given pattern argument as separate patterns as it\n>> should.\n> \n> This is not specific to -F; grep(1) accepts newline-separated pattern\n> lists with -E etc. as well, as does git grep with the patches above.\n\nShouldn't we worry that this change breaks existing users?\n\nConsider a script that generates a pattern that sometimes contains NL.\nYes, it would not match anywhere, but what if that is a deliberate choice\nof the script writer? With this change, the script would now observe\nspurious matches where earlier there were no matches.\n\n-- Hannes\n"},{"id":"192084","messageId":"7vpq9ty112.fsf@alter.siamese.dyndns.org","threadId":"30603","inReplyTo":"4FBDC8FA.9050501@lsrfire.ath.cx","subject":"Re: What's cooking in git.git (May 2012, #06; Wed, 23)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-05-24T16:52:25Z","receivedAt":"2012-05-24T16:52:25Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"René Scharfe <rene.scharfe@lsrfire.ath.cx> writes:\n\n> Am 24.05.2012 00:24, schrieb Junio C Hamano:\n>> * rs/maint-grep-F (2012-05-21) 4 commits\n>>    (merged to 'next' on 2012-05-23 at b24143c)\n>>   + grep: stop leaking line strings with -f\n>>   + grep: support newline separated pattern list\n>>   + grep: factor out do_append_grep_pat()\n>>   + grep: factor out create_grep_pat()\n>>\n>> \"git grep -F\", unlike the case where it reads from a file, did not treat\n>> individual lines in the given pattern argument as separate patterns as it\n>> should.\n>\n> This is not specific to -F; grep(1) accepts newline-separated pattern\n> lists with -E etc. as well, as does git grep with the patches above.\n\nYeah, I noticed that \"unlike where reading from a file\" should contrast\nagainst \"where params come from the command line\", not with any particular\nway to interpret individual pattern. after sending it out.\n\nThanks.\n"},{"id":"192085","messageId":"7vlikhy0l8.fsf@alter.siamese.dyndns.org","threadId":"30603","inReplyTo":"4FBDCE26.1080904@viscovery.net","subject":"Re: What's cooking in git.git (May 2012, #06; Wed, 23)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2012-05-24T17:01:55Z","receivedAt":"2012-05-24T17:01:55Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Johannes Sixt <j.sixt@viscovery.net> writes:\n\n> Am 5/24/2012 7:36, schrieb René Scharfe:\n>> Am 24.05.2012 00:24, schrieb Junio C Hamano:\n>>> * rs/maint-grep-F (2012-05-21) 4 commits\n>>>    (merged to 'next' on 2012-05-23 at b24143c)\n>>>   + grep: stop leaking line strings with -f\n>>>   + grep: support newline separated pattern list\n>>>   + grep: factor out do_append_grep_pat()\n>>>   + grep: factor out create_grep_pat()\n>>>\n>>> \"git grep -F\", unlike the case where it reads from a file, did not treat\n>>> individual lines in the given pattern argument as separate patterns as it\n>>> should.\n>> \n>> This is not specific to -F; grep(1) accepts newline-separated pattern\n>> lists with -E etc. as well, as does git grep with the patches above.\n>\n> Shouldn't we worry that this change breaks existing users?\n>\n> Consider a script that generates a pattern that sometimes contains NL.\n> Yes, it would not match anywhere, but what if that is a deliberate choice\n> of the script writer? With this change, the script would now observe\n> spurious matches where earlier there were no matches.\n\nWhile I prefer to be conservative, and the scenario above may be\ntheoretically possible, I personally find this particular \"breakage\" of\nbackward compatibility is very well defensible, as the original behaviour\nis clearly buggy and unintuitive.\n"}]}