From: Junio C Hamano <gitster@pobox.com>
To: Elijah Newren <newren@gmail.com>
Cc: git@vger.kernel.org, Adam Dinwoodie <adam@dinwoodie.org>,
David Turner <dturner@twitter.com>,
David Turner <dturner@twopensource.com>
Subject: Re: [PATCH] merge-recursive: ignore_case shouldn't reject intentional removals
Date: Sat, 25 Nov 2017 12:29:09 +0900 [thread overview]
Message-ID: <xmqqd147kpdm.fsf@gitster.mtv.corp.google.com> (raw)
In-Reply-To: <20171124195901.2581-1-newren@gmail.com> (Elijah Newren's message of "Fri, 24 Nov 2017 11:59:01 -0800")
Elijah Newren <newren@gmail.com> writes:
> But what it really is forced to do is more of a 4-way merge; a good
> chunk of its annoying complexity is based around this (undocumented
> and unfortunate) reality. It derives from what I consider a simple
> design flaw.
Yes, and it does not help that it wants to write into the filesystem
while it performs the outermost merges.
In the ideal world, we should
- ask unpack_trees() to do "read-tree -m" without "-u";
- do all the merge-recursive computations in-core and prepare the
resulting index, while keeping the current index intact;
- compare the current in-core index and the resulting in-core
index, and notice the paths that need to be added, updated or
removed in the working tree, and ensure that there is no loss of
information when the change is reflected to the working tree,
e.g. the result wants to create a file where the working tree
currently has a directory with non-expendable contents in it, the
result wants to remove a file where the working tree file has
local modification, etc.; and then finally
- carry out the working tree update to make it match what the
resulting in-core index says it should look like.
next prev parent reply other threads:[~2017-11-25 3:29 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-24 19:59 [PATCH] merge-recursive: ignore_case shouldn't reject intentional removals Elijah Newren
2017-11-24 20:04 ` Eric Sunshine
2017-11-24 20:29 ` Elijah Newren
2017-11-25 3:29 ` Junio C Hamano [this message]
2017-11-25 22:35 ` Elijah Newren
2017-11-26 2:32 ` Junio C Hamano
2017-11-27 3:40 ` Junio C Hamano
2017-11-27 16:40 ` Elijah Newren
2017-11-27 23:39 ` Junio C Hamano
2017-11-28 1:02 ` Elijah Newren
-- strict thread matches above, loose matches on Subject: below --
2019-03-04 23:07 Woody Woodman
2019-03-06 14:23 ` Johannes Schindelin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqd147kpdm.fsf@gitster.mtv.corp.google.com \
--to=gitster@pobox.com \
--cc=adam@dinwoodie.org \
--cc=dturner@twitter.com \
--cc=dturner@twopensource.com \
--cc=git@vger.kernel.org \
--cc=newren@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
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 read-only IMAP folder(s) and NNTP newsgroup(s).