From: Elijah Newren <newren@gmail.com>
To: Eric Raible <raible@gmail.com>
Cc: Junio C Hamano <gitster@pobox.com>, git@vger.kernel.org
Subject: Re: Poor status output during conflicted merge
Date: Tue, 6 Jul 2010 23:07:39 -0600 [thread overview]
Message-ID: <AANLkTimWugg7IznbXfVFDZe44Ag6VW-PJPAdDl7rWLY-@mail.gmail.com> (raw)
In-Reply-To: <AANLkTimBQULqlIVLOOpFoOO5Lg7hGrgm7N69qouafFyG@mail.gmail.com>
On Tue, Jul 6, 2010 at 6:12 PM, Eric Raible <raible@gmail.com> wrote:
> On Thu, Jul 1, 2010 at 5:00 PM, Junio C Hamano <gitster@pobox.com> wrote:
>> It might be just a simple matter of ...
>>
>> wt-status.c | 2 ++
>> 1 files changed, 2 insertions(+), 0 deletions(-)
>>
>> diff --git a/wt-status.c b/wt-status.c
>> index 2f9e33c..757536f 100644
>> --- a/wt-status.c
>> +++ b/wt-status.c
>> @@ -674,6 +674,8 @@ void wt_status_print(struct wt_status *s)
>> fprintf(s->fp, "# No changes\n");
>> else if (s->nowarn)
>> ; /* nothing */
>> + else if (s->in_merge)
>> + printf("merge result will be the same as HEAD commit\n");
>> else if (s->workdir_dirty)
>> printf("no changes added to commit%s\n",
>> advice_status_hints
>
> I suppose that's better than nothing, but I can't help but think that
> the output would be more useful if it explicitly mentioned the merge.
>
> Most sensible people probably already have that in their bash prompt,
> of course, but we have some users at $dayjob who use the anemic
> windows cmd.exe as their "command shell".
>
> So how about something like this:
>
> $ git status
> # Merging branch 'master' into topic
> # Changes to be committed:
> #
> # modified: file2
>
> The "branch 'master' into topic" part can come
> from .git/MERGE_MSG
At my $dayjob, when we switched from cvs to git, I got _lots_ of
support questions around people being confused with merges and rebases
-- they often didn't realize they were still in the middle of one, or
didn't know how to resolve conflicts, or didn't know how to complete
the operation (i.e. didn't know that they needed to "commit" or
"rebase --continue"), or didn't know how to abort the operation. This
despite a few hours of dedicated training on basic git usage for
everyone including some nice handouts. [Granted, most developers were
engineers that were more interested in engineering and physics than
"computer science stuff", didn't have a very strong grasp of version
control, plus they had years of brain damage from CVS usage to cope
with, so this user group may be uncommon -- at least other than the
CVS usage bit.] Fixing the bash prompt would help in reminding people
that they were in the middle of an operation, but not the other
issues. And most people were stubbornly sticking with tcsh as their
shell, preventing even using that solution.
Most such users were using EasyGit (lightweight git-like wrapper
designed to assist in avoiding common gotchas for those braindamaged
by CVS or SVN), so I quickly modified "eg status" to also print
annoying "YOU ARE IN THE MIDDLE OF A <OP> OPERATION. TYPE 'eg help
topic middle-of-<OP> FOR MORE INFO" notices when relevant[1].
After making that change, support questions dropped _dramatically_.
I'm a bit ashamed I never got around to making that into a proper RFC
patch for git (yet?). I'm not sure whether it'd fit git, but it's
certainly worth discussion and was amazing how much it helped us.
Elijah
[1] See http://people.gnome.org/~newren/eg/documentation/topic-middle-of-merge.html
and http://people.gnome.org/~newren/eg/documentation/topic-middle-of-rebase.html
for what the help pages suggested; there are similar ones for am and
bisect as well.
next prev parent reply other threads:[~2010-07-07 5:07 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-01 18:16 Poor status output during conflicted merge Eric Raible
2010-07-02 0:00 ` Junio C Hamano
2010-07-02 1:51 ` Eric Raible
2010-07-07 0:12 ` Eric Raible
2010-07-07 5:07 ` Elijah Newren [this message]
2010-07-07 12:43 ` demerphq
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=AANLkTimWugg7IznbXfVFDZe44Ag6VW-PJPAdDl7rWLY-@mail.gmail.com \
--to=newren@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=raible@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 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).