From: Jakub Narebski <jnareb@gmail.com>
To: mike@nahas.com
Cc: Jeff King <peff@peff.net>,
Michael J Gruber <git@drmicha.warpmail.net>,
Junio C Hamano <gitster@pobox.com>,
Scott Chacon <schacon@gmail.com>,
git@vger.kernel.org
Subject: Re: Command-line interface thoughts
Date: Thu, 9 Jun 2011 11:48:34 +0200 [thread overview]
Message-ID: <201106091148.35114.jnareb@gmail.com> (raw)
In-Reply-To: <BANLkTinibF0xmibeuJ6f9FUjaMmxavMJig@mail.gmail.com>
On Wed, 8 June 2011, Michael Nahas wrote:
> On Wed, Jun 8, 2011 at 11:05 AM, Jeff King <peff@peff.net> wrote:
>> On Wed, Jun 08, 2011 at 07:39:16AM -0400, Michael Nahas wrote:
>>
>>> On Wed, Jun 8, 2011 at 7:12 AM, Jakub Narebski <jnareb@gmail.com> wrote:
>>>> I don't quite think that we need "git diff NEXT WTREE"; the short
>>>> and sweet "git diff" is short for a reason,
>>>
>>> To be clear, I'm not advocating and have never advocated getting rid
>>> of zero-argument "git diff". I've advocated that every (whole
>>> project) diff command should be expressible by a "git diff TREE1
>>> TREE2". I'm fine with defaults if one or zero trees are specified.
>>
>> I agree with this, but...
>>
>>> So "git diff" would default to "git diff NEXT WTREE".
>>
>> Isn't this going to be behavior change, since your NEXT is not quite the
>> same as the index? How do I now get an n-way combined diff of the
>> unmerged files in the index?
>
> The index is a file in .git/ that serves many purposes. NEXT is an
> image of the whole project. NEXT can be computed from the index and
> HEAD.
>
> During a conflicted merge, stage 0 of the index holds the resolved
> files.
It is simply not true. During a conflicted merge, for conflicted files
there is _no_ stage 0!!! Conflicted files have stage 1 == base, 2 == ours
and 3 == theirs, where those stages have all conflicts that can be resolved
automatically resolved, and places where there is conflict replaced by
merge-base ('base'), current branch into which we merge ('ours') and
merged branch ('theirs').
> WTREE holds all merge files: the resolved and the unresolved
> (which have <<<< ==== >>>> blocks in them).
Worktree version has files with conflict merge markers added in place
where there is conflict.
> I propose that during a
> conflicted merge, that NEXT be computed as HEAD plus the resolved
> files, that is, the files in stage 0 of the index.
Why _HEAD_?
> "git diff HEAD NEXT" would print the resolved changes.
> "git diff NEXT WTREE" would print the unresolved changes
> "git diff HEAD WTREE" would print all changes.
>
> I believe that is the same behaviour as "git diff", "git diff
> --cached" and "git diff HEAD" during a conflicted merge.
"git diff NEXT WTREE" would not behave (with your proposal) like
"git diff", but like "git diff --ours".
"git diff HEAD NEXT" would not behave like "git diff --cached"
(which shows only '*Unmerged path foo').
"git diff HEAD WTREE" would be the same as "git diff HEAD" (just
longer to write), only because it doesn't involve index at all.
> I do not know how "n-way" merge works. I saw somewhere that indicated
> that it was a series of N-1 two-way merges.
Where this "n-way merge" came from? Peff wrote about "n-way combined
diff", which is something different.
--
Jakub Narebski
Poland
next prev parent reply other threads:[~2011-06-09 9:48 UTC|newest]
Thread overview: 98+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <BANLkTikTWx7A64vN+hVZgL7cuiZ16Eobgg@mail.gmail.com>
2011-06-04 16:17 ` Command-line interface thoughts Michael Nahas
2011-06-04 21:49 ` Jakub Narebski
2011-06-05 1:00 ` Michael Nahas
2011-06-05 11:10 ` Jakub Narebski
2011-06-05 18:39 ` Scott Chacon
2011-06-05 23:37 ` Jakub Narebski
2011-06-06 6:16 ` Junio C Hamano
2011-06-06 7:34 ` Michael J Gruber
2011-06-06 11:45 ` Michael Nahas
2011-06-06 12:19 ` Jakub Narebski
2011-06-06 13:20 ` Michael J Gruber
2011-06-08 13:10 ` Jakub Narebski
2011-06-06 16:23 ` Junio C Hamano
2011-06-06 16:40 ` Drew Northup
2011-06-06 14:00 ` Junio C Hamano
2011-06-06 14:16 ` Michael J Gruber
2011-06-06 16:14 ` Junio C Hamano
2011-06-06 17:42 ` Scott Chacon
2011-06-06 19:01 ` Junio C Hamano
[not found] ` <BANLkTi=yytzDrJLvVn_ZhJOiQs-rqvKi1w@mail.gmail.com>
2011-06-07 2:31 ` Michael Nahas
2011-06-07 4:03 ` Junio C Hamano
2011-06-07 11:04 ` Michael Nahas
2011-06-07 6:11 ` Michael J Gruber
2011-06-07 11:45 ` Jonathan Nieder
2011-06-07 19:00 ` Holger Hellmuth
2011-06-07 19:11 ` Jonathan Nieder
2011-06-07 20:33 ` Jakub Narebski
2011-06-08 13:04 ` Holger Hellmuth
2011-06-08 18:56 ` Jakub Narebski
2011-06-09 11:55 ` Holger Hellmuth
2011-06-10 16:44 ` Jakub Narebski
2011-06-10 18:07 ` Holger Hellmuth
2011-06-10 18:35 ` Jakub Narebski
2011-06-10 22:45 ` Holger Hellmuth
2011-06-13 3:43 ` git diff --added (Re: Command-line interface thoughts) Jonathan Nieder
2011-06-13 4:11 ` Miles Bader
2011-06-13 4:46 ` Miles Bader
2011-06-13 8:06 ` Jonathan Nieder
2011-06-13 12:55 ` Junio C Hamano
2011-06-13 12:28 ` Junio C Hamano
2011-06-13 19:47 ` Holger Hellmuth
2011-06-13 20:31 ` Michael Nahas
2011-06-13 10:15 ` Command-line interface thoughts Jakub Narebski
2011-06-13 22:33 ` Holger Hellmuth
2011-06-14 4:21 ` Michael Haggerty
2011-06-14 7:51 ` Jakub Narebski
2011-06-07 19:34 ` René Scharfe
2011-06-07 19:38 ` Jakub Narebski
2011-06-08 11:12 ` Command-line interface thoughts (ad-hominem attacks) Jakub Narebski
2011-06-08 11:39 ` Michael Nahas
2011-06-08 12:42 ` Jakub Narebski
2011-06-08 14:15 ` Michael Nahas
2011-06-08 15:05 ` Jeff King
2011-06-08 18:57 ` Michael Nahas
2011-06-09 0:43 ` Jeff King
2011-06-09 1:56 ` Michael Nahas
2011-06-10 15:29 ` Jakub Narebski
2011-06-09 9:48 ` Jakub Narebski [this message]
2011-06-09 11:44 ` Command-line interface thoughts Michael Nahas
2011-06-09 12:45 ` Jakub Narebski
2011-06-09 13:06 ` Jakub Narebski
2011-06-09 9:06 ` Michael Haggerty
2011-06-09 10:02 ` Andreas Ericsson
2011-06-09 13:30 ` Thomas Rast
2011-06-09 16:18 ` Jeff King
2011-06-09 17:15 ` Jay Soffian
2011-06-09 17:20 ` Jeff King
2011-06-09 17:36 ` Junio C Hamano
2011-06-09 18:20 ` Jay Soffian
2011-06-09 19:40 ` Junio C Hamano
2011-06-09 18:03 ` Michael Haggerty
2011-06-09 18:38 ` Junio C Hamano
2011-06-09 19:17 ` Michael Haggerty
2011-06-09 20:04 ` Jeff King
2011-06-09 21:37 ` Michael Haggerty
2011-06-09 22:04 ` Jakub Narebski
2011-06-09 23:02 ` Michael Haggerty
2011-06-10 10:19 ` Jakub Narebski
2011-06-10 11:06 ` Michael Nahas
2011-06-10 12:20 ` Jakub Narebski
2011-06-09 22:21 ` Jeff King
2011-06-09 22:27 ` Michael Nahas
2011-06-09 22:38 ` Jeff King
2011-06-09 22:55 ` Jakub Narebski
2011-06-10 0:00 ` Michael Nahas
2011-06-10 0:08 ` Jeff King
2011-06-10 21:48 ` Junio C Hamano
2011-06-10 22:08 ` Junio C Hamano
2011-06-10 23:05 ` Jakub Narebski
2011-06-12 6:06 ` Michael Haggerty
2011-06-12 21:12 ` Junio C Hamano
2011-06-12 13:30 ` Michael Nahas
2011-06-12 21:29 ` Junio C Hamano
2011-06-13 2:14 ` Michael Nahas
2011-06-13 18:50 ` Jeff King
2011-06-09 19:41 ` Jeff King
2011-06-05 21:22 ` Paul Ebermann
2011-06-05 21:34 ` Paul Ebermann
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201106091148.35114.jnareb@gmail.com \
--to=jnareb@gmail.com \
--cc=git@drmicha.warpmail.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=mike@nahas.com \
--cc=peff@peff.net \
--cc=schacon@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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.