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