git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Michael Nahas <mike.nahas@gmail.com>
To: git@vger.kernel.org
Subject: Re: Command-line interface thoughts
Date: Mon, 6 Jun 2011 22:31:07 -0400	[thread overview]
Message-ID: <BANLkTinE8tCRZ-HFP0uwm6odGNAxjZPXng@mail.gmail.com> (raw)
In-Reply-To: <BANLkTi=yytzDrJLvVn_ZhJOiQs-rqvKi1w@mail.gmail.com>

I think NEXT and WTREE should be like tree objects, not commits, so I
would argue that "git show NEXT" should show what it shows for a tree.
 From the man page:

"For trees, it shows the names (equivalent to git ls-tree with --name-only)."


"git diff HEAD NEXT" during a merge conflict: During the merge
conflict there are two groups of changing files.  Some files have been
resolved and reside in "Stage0".  The others have not been resolved
and a copy resides in each of "Stage1", 2, and 3.  (Which I eagerly
want to name BASE, HEAD, and MERGE_HEAD.)

My thought is that NEXT should only represent those changing files
that have been resolved.  So, NEXT would be HEAD plus the files in
Stage0.  So, "git diff HEAD NEXT" would print out the changes in
Stage0.

The trickier question for me is what does this make "git diff WTREE
NEXT"?  Well, the resolved changes are the same in WTREE and NEXT.
The unresolved files in NEXT are the same as in HEAD.  So, "git diff
WTREE NEXT" would print out the unresolved changes between WTREE and
HEAD.

What I don't like about that is that at the point of conflict in each
file, "git merge" has written the changes from HEAD and MERGE_HEAD.
So, printing the changes between HEAD and WTREE will resulting in the
changes done by HEAD printed twice.  That, while understandable, isn't
so pretty.


I've engineered a conflicted merge and taken a look at what "git diff
--cached HEAD" and "git diff --cached" looks like.  Can someone
confirm that the current behavior is equivalent to what I described
above?


Junio asked: So what should it look like during a "pull" that did not finish?

Is this the same as a conflicted merge state?  (Except possibly with
FETCH_HEAD instead of MERGE_HEAD.)


Junio asked: "rebase -i"?

I know what this does (and love it!), but not how it works.  I
certainly don't know the state it leaves things in when it's
conflicted.  I'll let someone else go to bat here.


Teach a noob: What's "rc phase"?


Mike



On Mon, Jun 6, 2011 at 3:01 PM, Junio C Hamano <gitster@pobox.com> wrote:
>
> Scott Chacon <schacon@gmail.com> writes:
>
> > On Mon, Jun 6, 2011 at 9:14 AM, Junio C Hamano <gitster@pobox.com> wrote:
> > ...
> >>>> That is why I asked what the user experience of "git show NEXT" as opposed
> >>>> to "git show INDEX" should look like. So what should it look like during a
> >>>> "pull" that did not finish?
> >>>
> >>> If NEXT is to mean the result of a commit in the current state, and the
> >>> current state would or should not allow a commit, then trying to access
> >>> that pseudo-commit should error out with a helpful message.
> >>
> >> What "helpful message"? I asked for the user experience, not handwaving.
> >>
> >> Do you mean to say that the error message would teach the user that the
> >> current state is not something you can create a commit? What message would
> >> that give the end user?  I am hoping the following is not what will happen:
> >>
> >>  Q. I tried "git show NEXT" because I wanted to see what the next commit
> >>     would look like, but I got an error, saying NEXT is not known as I
> >>     haven't resolved a conflict.
> >>
> >>  A. Yes, the message is correct.
> >
> > I'm not sure why this wouldn't just list out the index tree,...
>
> You are not entitled to say "I'm not sure" ;-). I asked you to show a
> design of the user experience of "git show NEXT", as an advocate for the
> NEXT/WTREE notation.
>
> I'd take it that you would "just list out the index tree" as the outline
> of the user experience.
>
> >>  A. You would say "git diff HEAD NEXT".
> >>
> >>  Q. Ah, that is the same as I always do before making a commit to see what
> >>     I have added so far look sane. Thanks.
> >
> > Why would this look sane? I would think this would say "* Unmerged
> > path <file>" just like 'diff --cached would do.
>
> Either you read it too hastily or I didn't write this clear enough; "sane"
> does not refer to the command. In this story, the novice is saying "Before
> I make a commit, I check if my changes so far matches what I wanted to
> achieve, in other words, I check the sanity of my changes. And 'git diff
> HEAD NEXT' is the command I use when I am not in this weird 'conflicted'
> state. I am happy that I can use the same command".
>
> > But, yes, I assume there would be some difficulty in supporting it
> > everywhere.
>
> I don't care too much about "difficulty in uniformly implementing". I am
> doubting that you can _design_ uniformly for these new tokens to make
> enough sense to help the new people. That is why I've been asking for
> concrete examples of user experience design, sample transcripts, that
> covers known corner cases.
>
> If NEXT/WTREE advocates cannot come up with one, or if that is just to
> punt and say "NEXT is not defined in this case---use the traditional
> command" in the error message, I don't see much point in discussing this
> further. It will end up with the same whine-fest as previous rounds.
>

  parent reply	other threads:[~2011-06-07  2:31 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 [this message]
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                               ` Command-line interface thoughts Jakub Narebski
2011-06-09 11:44                                 ` 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=BANLkTinE8tCRZ-HFP0uwm6odGNAxjZPXng@mail.gmail.com \
    --to=mike.nahas@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=mike@nahas.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 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).