{"thread":{"id":"27606","subject":"What's cooking in git.git (Jun 2011, #02; Sat, 11)","startedAt":"2011-06-12T06:49:02Z","lastAt":"2011-06-16T21:05:51Z","messageCount":9,"participants":["Junio C Hamano","Ramkumar Ramachandra","Sverre Rabbelier","Jonathan Nieder","Elijah Newren","Jeff King"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"169889","messageId":"7voc23sfxd.fsf@alter.siamese.dyndns.org","threadId":"27606","inReplyTo":null,"subject":"What's cooking in git.git (Jun 2011, #02; Sat, 11)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-06-12T06:49:02Z","receivedAt":"2011-06-12T06:49:02Z","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' while commits prefixed with '+' are in 'next'.\n\nWill tag 1.7.6-rc2 sometime next week.\n\n--------------------------------------------------\n[New Topics]\n\n* js/i18n-windows (2011-06-06) 3 commits\n  (merged to 'next' on 2011-06-06 at d8c4ba3)\n + Windows: teach getenv to do a case-sensitive search\n + mingw.c: move definition of mingw_getenv down\n + sh-i18n--envsubst: do not crash when no arguments are given\n\nLooked sane but will wait for msysgit folks to take a look.\nNot urgent. Will not merge before 1.7.6.\n\n* an/shallow-doc (2011-06-08) 2 commits\n - Document the underlying protocol used by shallow repositories and --depth commands.\n - Fix documentation of fetch-pack that implies that the client can disconnect after sending wants.\n\nWaiting for a review, but looked sensible.\n\n* jc/legacy-loose-object (2011-06-08) 1 commit\n - sha1_file.c: \"legacy\" is really the current format\n\n* jc/zlib-wrap (2011-06-10) 7 commits\n - zlib: allow feeding more than 4GB in one go\n - zlib: zlib can only process 4GB at a time\n - zlib: wrap deflateBound() too\n - zlib: wrap deflate side of the API\n - zlib: wrap inflateInit2 used to accept only for gzip format\n - zlib: wrap remaining calls to direct inflate/inflateEnd\n - zlib wrapper: refactor error message formatter\n\nThis replaces the earlier attempt to deal with the mismatch between our\nexpectation and what zlib API actually offers piecemeal.\n\n* jk/clone-cmdline-config (2011-06-11) 10 commits\n - clone: accept config options on the command line\n - config: make git_config_parse_parameter a public function\n - remote: use new OPT_STRING_LIST\n - parse-options: add OPT_STRING_LIST helper\n - config: use strbuf_split_str instead of a temporary strbuf\n - strbuf: allow strbuf_split to work on non-strbufs\n - config: avoid segfault when parsing command-line config\n - config: die on error in command-line config\n - fix \"git -c\" parsing of values with equals signs\n - strbuf_split: add a max parameter\n\n* jk/tag-contains-ab (2011-06-11) 4 commits\n - Why is \"git tag --contains\" so slow?\n - default core.clockskew variable to one day\n - limit \"contains\" traversals based on commit timestamp\n - tag: speed up --contains calculation\n\n* jk/transport-helper-fix (2011-06-07) 8 commits\n - git_remote_helpers: push all refs during a non-local export\n - transport-helper: don't feed bogus refs to export push\n - teach remote-testgit to import multiple refs\n - teach remote-testgit to import non-HEAD refs\n - t5800: document some non-functional parts of remote helpers\n - t5800: factor out some ref tests\n - git-remote-testgit: exit gracefully after push\n - transport-helper: fix minor leak in push_refs_with_export\n\n--------------------------------------------------\n[Graduated to \"master\"]\n\n* bc/maint-status-z-to-use-porcelain (2011-05-29) 2 commits\n  (merged to 'next' on 2011-06-01 at 4f44a91)\n + builtin/commit.c: set status_format _after_ option parsing\n + t7508: demonstrate status's failure to use --porcelain format with -z\n\n* jk/diff-not-so-quick (2011-05-31) 2 commits\n  (merged to 'next' on 2011-06-01 at 5f66784)\n + diff: futureproof \"stop feeding the backend early\" logic\n + diff_tree: disable QUICK optimization with diff filter\n (this branch is used by jc/diff-index-quick-exit-early.)\n\n* jn/gitweb-docs (2011-06-03) 3 commits\n  (merged to 'next' on 2011-06-05 at 691c7e6)\n + gitweb: Move \"Requirements\" up in gitweb/INSTALL\n  (merged to 'next' on 2011-06-02 at 56cba41)\n + gitweb: Describe CSSMIN and JSMIN in gitweb/INSTALL\n + gitweb: Move information about installation from README to INSTALL\n\n* jn/mime-type-with-params (2011-06-05) 1 commit\n  (merged to 'next' on 2011-06-05 at 697f9d2)\n + gitweb: Fix usability of $prevent_xss\n\n--------------------------------------------------\n[Stalled]\n\n* js/ref-namespaces (2011-06-07) 4 commits\n . ref namespaces: documentation\n . ref namespaces: support remote repositories via upload-pack and receive-pack\n . ref namespaces: infrastructure\n . Fix prefix handling in ref iteration functions\n\nFairly involved feature enhancement, and breaks tests when merged to 'pu'.\nNot urgent. Will not merge before 1.7.6.\n\n* jk/maint-merge-rename-create (2011-03-25) 3 commits\n - merge: turn on rewrite detection\n - merge: handle renames with replacement content\n - t3030: fix accidental success in symlink rename\n\nPeff wanted to reroll this. Perhaps will discard to make room for Elijah's\nmerge-recursive series in the meantime.\n\n* jc/index-pack (2011-06-05) 9 commits\n - verify-pack: use index-pack --verify\n - index-pack: show histogram when emulating \"verify-pack -v\"\n - index-pack: start learning to emulate \"verify-pack -v\"\n - index-pack: a miniscule refactor\n - index-pack --verify: read anomalous offsets from v2 idx file\n - write_idx_file: need_large_offset() helper function\n - index-pack: --verify\n - write_idx_file: introduce a struct to hold idx customization options\n - index-pack: group the delta-base array entries also by type\n\nKilled \"verify-pack\" ;-) The next will be to update fsck, which would be a\nbigger task.\n\nNot urgent. Will not merge before 1.7.6.\n\n* jh/receive-count-limit (2011-05-23) 10 commits\n - receive-pack: Allow server to refuse pushes with too many objects\n - pack-objects: Estimate pack size; abort early if pack size limit is exceeded\n - send-pack/receive-pack: Allow server to refuse pushing too large packs\n - pack-objects: Allow --max-pack-size to be used together with --stdout\n - send-pack/receive-pack: Allow server to refuse pushes with too many commits\n - pack-objects: Teach new option --max-commit-count, limiting #commits in pack\n - receive-pack: Prepare for addition of the new 'limit-*' family of capabilities\n - Tighten rules for matching server capabilities in server_supports()\n - send-pack: Attempt to retrieve remote status even if pack-objects fails\n - Update technical docs to reflect side-band-64k capability in receive-pack\n\nWould need another round to separate per-pack and per-session limits.\nNot urgent. Will not merge before 1.7.6.\n\n--------------------------------------------------\n[Cooking]\n\n* db/http-cookies (2011-06-03) 1 commit\n  (merged to 'next' on 2011-06-06 at 90d736a)\n + http: pass http.cookiefile using CURLOPT_COOKIEFILE\n\nFairly trivial enhancement.\nNot urgent. Will not merge before 1.7.6.\n\n* jc/maint-1.7.3-checkout-describe (2011-06-05) 1 commit\n  (merged to 'next' on 2011-06-06 at 6a59bb7)\n + checkout -b <name>: correctly detect existing branch\n\nFairly trivial bugfix.\nNot urgent. Will not merge before 1.7.6.\n\n* jk/clone-detached (2011-06-07) 5 commits\n . remote-testgit: short-term fix to allow t5800 pass\n - clone: always fetch remote HEAD\n - make copy_ref globally available\n - consider only branches in guess_remote_head\n - t: add tests for cloning remotes with detached HEAD\n\nSomewhat involved bugfix.\nNot urgent. Will not merge before 1.7.6.\n\n* jk/maint-1.7.2-status-ignored (2011-06-02) 2 commits\n  (merged to 'next' on 2011-06-02 at 8626cc6)\n + git status --ignored: tests and docs\n + status: fix bug with missing --ignore files\n\nFairly trivial bugfix.\nNot urgent. Will not merge before 1.7.6.\n\n* jl/submodule-add-relurl-wo-upstream (2011-06-06) 3 commits\n - submodule add: clean up duplicated code\n - submodule add: allow relative repository path even when no url is set\n - submodule add: test failure when url is not configured in superproject\n\nNot urgent. Will not merge before 1.7.6.\n\n* rs/grep-color (2011-06-05) 3 commits\n  (merged to 'next' on 2011-06-06 at fd6bae1)\n + grep: add --heading\n + grep: add --break\n + grep: fix coloring of hunk marks between files\n\nFairly straightforward feature enhancement.\nNot urgent. Will not merge before 1.7.6.\n\n* jc/diff-index-quick-exit-early (2011-05-31) 2 commits\n  (merged to 'next' on 2011-06-01 at 79d868a)\n + diff-index --quiet: learn the \"stop feeding the backend early\" logic\n + Merge remote-tracking branch 'ko/maint' into jc/diff-index-quick-exit-early\n\nNot urgent. Will not merge before 1.7.6.\n\n* ef/maint-win-verify-path (2011-06-08) 5 commits\n - verify_dotfile(): do not assume '/' is the path seperator\n  (merged to 'next' on 2011-06-07 at b418e05)\n + verify_path(): simplify check at the directory boundary\n  (merged to 'next' on 2011-06-01 at f316f68)\n + verify_path: consider dos drive prefix\n + real_path: do not assume '/' is the path seperator\n + A Windows path starting with a backslash is absolute\n\nNot urgent, but is sane. Will not merge before 1.7.6.\n\n* jn/gitweb-js-blame (2011-05-27) 3 commits\n  (merged to 'next' on 2011-06-01 at a984a1b)\n + gitweb.js: use setTimeout rather than setInterval in blame_incremental.js\n + gitweb.js: No need for loop in blame_incremental's handleResponse()\n + gitweb.js: No need for inProgress in blame_incremental.js\n\nWill cook a bit longer.\n\n* mg/diff-stat-count (2011-05-27) 4 commits\n  (merged to 'next' on 2011-06-01 at 5cdb776)\n + diff --stat-count: finishing touches\n + diff-options.txt: describe --stat-{width,name-width,count}\n + diff: introduce --stat-lines to limit the stat lines\n + diff.c: omit hidden entries from namelen calculation with --stat\n\nNot urgent. Will not merge before 1.7.6.\n\n* da/git-prefix-everywhere (2011-06-02) 4 commits\n  (merged to 'next' on 2011-06-02 at 2ab66e7)\n + t/t7503-pre-commit-hook.sh: Add GIT_PREFIX tests\n  (merged to 'next' on 2011-05-30 at 9480900)\n + git-mergetool--lib: Make vimdiff retain the current directory\n + git: Remove handling for GIT_PREFIX\n + setup: Provide GIT_PREFIX to built-ins\n\nNot urgent. Will not merge before 1.7.6.\n\n* jc/streaming-filter (2011-05-26) 8 commits\n  (merged to 'next' on 2011-06-06 at 8ed6b3d)\n + t0021: test application of both crlf and ident\n + t0021-conversion.sh: fix NoTerminatingSymbolAtEOF test\n + streaming: filter cascading\n + streaming filter: ident filter\n + Add LF-to-CRLF streaming conversion\n + stream filter: add \"no more input\" to the filters\n + Add streaming filter API\n + convert.h: move declarations for conversion from cache.h\n (this branch uses jc/streaming.)\n\nTrivial lf-to-crlf and ident conversions can be performed without reading\neverything in-core first.\nNot urgent. Will not merge before 1.7.6.\n\n* jk/combine-diff-binary-etc (2011-05-24) 5 commits\n  (merged to 'next' on 2011-05-24 at 07cf180)\n + combine-diff: respect textconv attributes\n + refactor get_textconv to not require diff_filespec\n + combine-diff: handle binary files as binary\n + combine-diff: calculate mode_differs earlier\n + combine-diff: split header printing into its own function\n\nNot urgent. Will not merge before 1.7.6.\n\n* jc/advice-about-to-lose-commit (2011-05-24) 1 commit\n  (merged to 'next' on 2011-05-30 at 42385cc)\n + checkout: make advice when reattaching the HEAD less loud\n\nNot urgent. Will not merge before 1.7.6.\n\n* jc/streaming (2011-05-26) 14 commits\n  (merged to 'next' on 2011-05-26 at 7fdda8d)\n + sha1_file: use the correct type (ssize_t, not size_t) for read-style function\n  (merged to 'next' on 2011-05-23 at 7fd0b52)\n + streaming: read loose objects incrementally\n + sha1_file.c: expose helpers to read loose objects\n + streaming: read non-delta incrementally from a pack\n + streaming_write_entry(): support files with holes\n + convert: CRLF_INPUT is a no-op in the output codepath\n + streaming_write_entry(): use streaming API in write_entry()\n + streaming: a new API to read from the object store\n + write_entry(): separate two helper functions out\n + unpack_object_header(): make it public\n + sha1_object_info_extended(): hint about objects in delta-base cache\n + sha1_object_info_extended(): expose a bit more info\n + packed_object_info_detail(): do not return a string\n + Merge branches 'jc/convert', 'jc/bigfile' and 'jc/replacing' into jc/streaming\n (this branch is used by jc/streaming-filter.)\n\nNot urgent. Will not merge before 1.7.6.\n\n* ab/i18n-scripts (2011-05-21) 48 commits\n  (merged to 'next' on 2011-05-23 at 69164a3)\n + i18n: git-bisect bisect_next_check \"You need to\" message\n + i18n: git-bisect [Y/n] messages\n + i18n: git-bisect bisect_replay + $1 messages\n + i18n: git-bisect bisect_reset + $1 messages\n + i18n: git-bisect bisect_run + $@ messages\n + i18n: git-bisect die + eval_gettext messages\n + i18n: git-bisect die + gettext messages\n + i18n: git-bisect echo + eval_gettext message\n + i18n: git-bisect echo + gettext messages\n + i18n: git-bisect gettext + echo message\n + i18n: git-bisect add git-sh-i18n\n + i18n: git-stash drop_stash say/die messages\n + i18n: git-stash \"unknown option\" message\n + i18n: git-stash die + eval_gettext $1 messages\n + i18n: git-stash die + eval_gettext $* messages\n + i18n: git-stash die + eval_gettext messages\n + i18n: git-stash die + gettext messages\n + i18n: git-stash say + gettext messages\n + i18n: git-stash echo + gettext message\n + i18n: git-stash add git-sh-i18n\n + i18n: git-submodule \"blob\" and \"submodule\" messages\n + i18n: git-submodule \"path not initialized\" message\n + i18n: git-submodule \"[...] path is ignored\" message\n + i18n: git-submodule \"Entering [...]\" message\n + i18n: git-submodule $errmsg messages\n + i18n: git-submodule \"Submodule change[...]\" messages\n + i18n: git-submodule \"cached cannot be used\" message\n + i18n: git-submodule $update_module say + die messages\n + i18n: git-submodule die + eval_gettext messages\n + i18n: git-submodule say + eval_gettext messages\n + i18n: git-submodule echo + eval_gettext messages\n + i18n: git-submodule add git-sh-i18n\n + i18n: git-pull eval_gettext + warning message\n + i18n: git-pull eval_gettext + die message\n + i18n: git-pull die messages\n + i18n: git-pull add git-sh-i18n\n + i18n: git-am printf(1) message to eval_gettext\n + i18n: git-am core say messages\n + i18n: git-am \"Falling back\" say message\n + i18n: git-am \"Apply?\" message\n + i18n: git-am clean_abort messages\n + i18n: git-am cannot_fallback messages\n + i18n: git-am die messages\n + i18n: git-am gettext + gettext to stderr message\n + i18n: git-am eval_gettext messages\n + i18n: git-am multi-line getttext $msg; echo\n + i18n: git-am one-line gettext $msg; echo\n + i18n: git-am add git-sh-i18n\n\nRerolled.\nWill cook a bit longer.\n\n--------------------------------------------------\n[Discarded]\n\n* jc/apply-nsbp (2011-05-27) 4 commits\n . War on nbsp: teach \"git apply\" to check and fix nbsp\n . War on nbsp: Add \"nbsp\" whitespace breakage class\n . War on nbsp: a bit of retreat\n . ws.c: add a helper to format comma separated messages\n\nIt was fun to write, though.\n\n* jk/tag-contains (2010-07-05) 4 commits\n . Why is \"git tag --contains\" so slow?\n . default core.clockskew variable to one day\n . limit \"contains\" traversals based on commit timestamp\n . tag: speed up --contains calculation\n\nThis was re-rolled as jk/tag-contans-ab with help from Ævar.\n"},{"id":"169891","messageId":"BANLkTinHCX0vmAdk+su-_Y0th9vLQ6qsnw@mail.gmail.com","threadId":"27606","inReplyTo":"7voc23sfxd.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2011, #02; Sat, 11)","fromName":"Ramkumar Ramachandra","fromEmail":"artagnon@gmail.com","sentAt":"2011-06-12T12:14:39Z","receivedAt":"2011-06-12T12:14:39Z","isPatch":false,"sender":{"key":"r@artagnon.com","avatar":"https://avatars.githubusercontent.com/u/37226?v=4"},"body":"Hi Junio,\n\nHave you seen my \"libify reset\" patch [1]?  I thought it was an easy candidate.\n\nThanks.\n\n-- Ram\n\n[1]: http://mid.gmane.org/1307772613-30775-1-git-send-email-artagnon@gmail.com\n"},{"id":"169896","messageId":"BANLkTimHhaLu2ZGFG4ev_jWMu8szH8r=+g@mail.gmail.com","threadId":"27606","inReplyTo":"7voc23sfxd.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2011, #02; Sat, 11)","fromName":"Sverre Rabbelier","fromEmail":"srabbelier@gmail.com","sentAt":"2011-06-12T16:18:49Z","receivedAt":"2011-06-12T16:18:49Z","isPatch":false,"sender":{"key":"srabbelier@gmail.com","avatar":"https://avatars.githubusercontent.com/u/3098?v=4"},"body":"Heya,\n\nOn Sun, Jun 12, 2011 at 08:49, Junio C Hamano <gitster@pobox.com> wrote:\n> * jk/transport-helper-fix (2011-06-07) 8 commits\n>  - git_remote_helpers: push all refs during a non-local export\n>  - transport-helper: don't feed bogus refs to export push\n>  - teach remote-testgit to import multiple refs\n>  - teach remote-testgit to import non-HEAD refs\n>  - t5800: document some non-functional parts of remote helpers\n>  - t5800: factor out some ref tests\n>  - git-remote-testgit: exit gracefully after push\n>  - transport-helper: fix minor leak in push_refs_with_export\n\nNote that I sent a reroll of this series (of which I'll send another\nversion soon) which is a little more elegant in some places.\n\n-- \nCheers,\n\nSverre Rabbelier\n"},{"id":"169907","messageId":"20110613001737.GA2291@elie","threadId":"27606","inReplyTo":"BANLkTinHCX0vmAdk+su-_Y0th9vLQ6qsnw@mail.gmail.com","subject":"\"libify part of reset\" mini-series (Re: What's cooking in git.git (Jun 2011, #02; Sat, 11))","fromName":"Jonathan Nieder","fromEmail":"jrnieder@gmail.com","sentAt":"2011-06-13T00:17:37Z","receivedAt":"2011-06-13T00:17:37Z","isPatch":false,"sender":{"key":"jrnieder@gmail.com","avatar":"https://avatars.githubusercontent.com/u/281595?v=4"},"body":"Hi,\n\nRamkumar Ramachandra wrote:\n\n> Have you seen my \"libify reset\" patch [1]?  I thought it was an easy candidate.\n\nI don't think it is one, personally.  While it is good to get feedback\non such things early, that patch exposes some functions without making\nthe API much clearer and without any users to explain how they work in\npractice.  I think it is best to let such patches cook in a private\nbranch until there is some obvious benefit to including them in git.\n\nThat benefit doesn't necessarily have to be new code using it --- it\ncould be increased clarity, faster compile times, decreasing the delta\nwith libgit2 so later fixes can be ported between the two more easily,\nanything.  Though in this case, I'm guessing the motivation from your\nend is the code that uses it, so that's an obvious choice.\n\nI'd suggest sending it again for inclusion when the code that uses it\nis ready, or for review whenever you have questions that the list can\nanswer.\n"},{"id":"169937","messageId":"7vd3ihrhvf.fsf@alter.siamese.dyndns.org","threadId":"27606","inReplyTo":"BANLkTinHCX0vmAdk+su-_Y0th9vLQ6qsnw@mail.gmail.com","subject":"Re: What's cooking in git.git (Jun 2011, #02; Sat, 11)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-06-13T13:16:52Z","receivedAt":"2011-06-13T13:16:52Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Ramkumar Ramachandra <artagnon@gmail.com> writes:\n\n> Have you seen my \"libify reset\" patch [1]?  I thought it was an easy candidate.\n\nThe reset-index-file part might be (but I agree with Jonathan that we can\nwait until we need it), but the other one does not deserve to be called a\n\"libified\" function if you look at it as an API function.\n\nThere are many places we show abbreviated commit object name and its title\nwith different frills around that message, but that particular function\ndoes not help them unless the other callers want the same \"HEAD is now at\"\nfrill. Try this:\n\n $ git checkout HEAD^\n HEAD is now at 2cbd969... Git 1.7.6-rc1\n $ git checkout master\n Previous HEAD position was 2cbd969... Git 1.7.6-rc1\n Switched to branch 'master'\n\nYour helper cannot even help produce \"Previous HEAD position was\", even\nthough I am reasonably sure they share the same logic. \n\nA helper whose signature is something like\n\n    void pretty_print_commit(FILE *f, const char *fmt, struct commit *commit);\n\nso that the caller can say\n\n    pretty_print_commit(stdout, \"HEAD is now at %h... %s\\n\", commit)\n\ninstead of \"print_new_head(commit)\", might be a good addition to the\n\"libified\" helper set, but I suspect it is not worth it.\n\nLook at how clearly and succinctly describe_detached_head() is implemented\nin builtin/checkout.c\n"},{"id":"169948","messageId":"7vr56xpxbu.fsf@alter.siamese.dyndns.org","threadId":"27606","inReplyTo":"BANLkTimHhaLu2ZGFG4ev_jWMu8szH8r=+g@mail.gmail.com","subject":"Re: What's cooking in git.git (Jun 2011, #02; Sat, 11)","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-06-13T15:25:57Z","receivedAt":"2011-06-13T15:25:57Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Sverre Rabbelier <srabbelier@gmail.com> writes:\n\n> Note that I sent a reroll of this series (of which I'll send another\n> version soon) which is a little more elegant in some places.\n\nYeah, I know about the series (didn't I have some comments in the\ndiscussion thread?) and also I think I saw you talk about a re-roll during\nthe discussion before I wrote the What's cooking summary you are\nresponding to, which is why it does not appear in the list.\n"},{"id":"169952","messageId":"BANLkTik7iKe0n8Biyg0-nfLRyA5VJHsL4Q@mail.gmail.com","threadId":"27606","inReplyTo":"7vr56xpxbu.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2011, #02; Sat, 11)","fromName":"Sverre Rabbelier","fromEmail":"srabbelier@gmail.com","sentAt":"2011-06-13T16:07:40Z","receivedAt":"2011-06-13T16:07:40Z","isPatch":false,"sender":{"key":"srabbelier@gmail.com","avatar":"https://avatars.githubusercontent.com/u/3098?v=4"},"body":"Heya,\n\nOn Mon, Jun 13, 2011 at 17:25, Junio C Hamano <gitster@pobox.com> wrote:\n> Yeah, I know about the series (didn't I have some comments in the\n> discussion thread?)\n\nYes you did, I'd forgotten, sorry about that.\n\n> and also I think I saw you talk about a re-roll during\n> the discussion before I wrote the What's cooking summary you are\n> responding to, which is why it does not appear in the list.\n\nOk, :)\n\n-- \nCheers,\n\nSverre Rabbelier\n"},{"id":"169976","messageId":"BANLkTin-sAXAZ4ZJ9z77SSYx+xYTYeZMww@mail.gmail.com","threadId":"27606","inReplyTo":"7voc23sfxd.fsf@alter.siamese.dyndns.org","subject":"Re: What's cooking in git.git (Jun 2011, #02; Sat, 11)","fromName":"Elijah Newren","fromEmail":"newren@gmail.com","sentAt":"2011-06-14T04:27:50Z","receivedAt":"2011-06-14T04:27:50Z","isPatch":false,"sender":{"key":"newren@gmail.com","avatar":"https://avatars.githubusercontent.com/u/5455730?v=4"},"body":"Hi,\n\nOn Sun, Jun 12, 2011 at 12:49 AM, Junio C Hamano <gitster@pobox.com> wrote:\n> Here are the topics that have been cooking.  Commits prefixed with '-' are\n> only in 'pu' while commits prefixed with '+' are in 'next'.\n>\n> --------------------------------------------------\n> [Stalled]\n>\n> * jk/maint-merge-rename-create (2011-03-25) 3 commits\n>  - merge: turn on rewrite detection\n>  - merge: handle renames with replacement content\n>  - t3030: fix accidental success in symlink rename\n>\n> Peff wanted to reroll this. Perhaps will discard to make room for Elijah's\n> merge-recursive series in the meantime.\n\nPeff: Do you want any help rerolling, updating, reviewing, etc.?  I\ndon't want to cause any undue problems with my merge-recursive series,\nand besides, the idea you have in this series looks like it may be\ninteresting.\n"},{"id":"170163","messageId":"20110616210551.GA15505@sigill.intra.peff.net","threadId":"27606","inReplyTo":"BANLkTin-sAXAZ4ZJ9z77SSYx+xYTYeZMww@mail.gmail.com","subject":"Re: What's cooking in git.git (Jun 2011, #02; Sat, 11)","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2011-06-16T21:05:51Z","receivedAt":"2011-06-16T21:05:51Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Mon, Jun 13, 2011 at 10:27:50PM -0600, Elijah Newren wrote:\n\n> On Sun, Jun 12, 2011 at 12:49 AM, Junio C Hamano <gitster@pobox.com> wrote:\n> > Here are the topics that have been cooking.  Commits prefixed with '-' are\n> > only in 'pu' while commits prefixed with '+' are in 'next'.\n> >\n> > --------------------------------------------------\n> > [Stalled]\n> >\n> > * jk/maint-merge-rename-create (2011-03-25) 3 commits\n> >  - merge: turn on rewrite detection\n> >  - merge: handle renames with replacement content\n> >  - t3030: fix accidental success in symlink rename\n> >\n> > Peff wanted to reroll this. Perhaps will discard to make room for Elijah's\n> > merge-recursive series in the meantime.\n> \n> Peff: Do you want any help rerolling, updating, reviewing, etc.?  I\n> don't want to cause any undue problems with my merge-recursive series,\n> and besides, the idea you have in this series looks like it may be\n> interesting.\n\nThanks. The sticking point in my series that there is a weird regression\nit introduces, and I haven't quite figured out the cause.\n\nI'm cc'ing Jay Soffian, who found it. You can reproduce with this recipe\n(sorry, the chromium repo is huge, but I don't have a smaller test case\nyet):\n\n  git clone http://git.chromium.org/git/chromium.git &&\n  cd chromium &&\n  git config merge.renameLimit 0 &&\n  git checkout 0f6d00c &&\n  git cherry-pick d7081a74\n\nLooking at d7081a74, you can see that it's a tiny commit, and in fact it\nshould cherry-pick just fine. But due to the 3-way merge that\ncherry-pick does, we still end up considering a lot of renames between\nthe merge base (d7081a74^) and 0f6d00c. Which is fine and correct, of\ncourse, but makes the merge a lot more complex than it would at first\nappear.\n\nWith git v1.7.5.3, it works just fine. With my patches on top, it\nreliably fails the merge (even though there were no conflicts!), and\nleaves a ton of crufty temporary files in the working directory.\n\nBumping up the merge verbosity, it does report a bunch of rename/add\nconflicts. Which are totally bogus, of course. Here's what I wrote\nearlier to Jay:\n\n   The final patch turned on break detection. The patch before it fixed\n   the \"source\" case: when the source of a rename comes from something\n   besides empty (because the source is a broken pair), we need to merge\n   properly and not just delete. But I never did the \"dest\" case, in\n   which merge-recursive assumes that renamed content started as empty.\n\n   And that's why you see the bogus \"rename/add\" conflict, I think. It's\n   assuming the file came from nowhere, but it came from a break pair.\n   So the good news is I think I can come up with a simple test case,\n   and the fix is probably something like comparing against the ancestor\n   sha1 instead of the null sha1.\n\nBut then I got sidetracked, and as you probably know from working on\nmerge-recursive, it's some pretty hairy code. Every time I start to look\nat it I get confused and can't remember what breakthrough I thought I\nwas close to making before. :)\n\nIf you have any input, I'd appreciate it.\n\n-Peff\n"}]}