From: Matthieu Moy <Matthieu.Moy@imag.fr>
To: git@vger.kernel.org, gitster@pobox.com
Cc: Diane Gasselin <diane.gasselin@ensimag.imag.fr>,
Matthieu Moy <Matthieu.Moy@imag.fr>
Subject: [PATCH 0/5] Better error messages for checkout and merge.
Date: Mon, 9 Aug 2010 16:19:57 +0200 [thread overview]
Message-ID: <1281363602-27856-1-git-send-email-Matthieu.Moy@imag.fr> (raw)
This is a resurection of an old patch serie by Diane Gasselin:
http://thread.gmane.org/gmane.comp.version-control.git/149173/focus=149186
In short, when you have several untracked files that conflict with a
merge or checkout, Git currently reports just the first. After this
patch serie, it reports things like:
error: Your local changes to the following files would be overwritten by checkout:
rep/two
rep/one
Please, commit your changes or stash them before you can switch branches.
most of the job is done by "unpack_trees: group error messages by type",
but this needed a bit of preparation to be implementable cleanly.
Compared to previous version, there are many small cleanups, and:
* unpack_trees_options was a struct, it's now an array. This makes the
code much cleaner whenever one tries to do clever things with it.
That's patch "Turn unpack_trees_options.msgs into an array + enum".
* A message was previously a type + an action ("removed" or
"overwritten"). The type now encompasses the action. This duplicates
a few lines in the declaration of the error messages, but again
makes the rest of the code much simpler. That's patch
"merge-recursive: distinguish "removed" and "overwritten" messages"
* The info on whether traverse_trees should stop at the first error
was stored in info->data, with a very fragile cast to
(unpack_trees_options *). I added one more field in the info
structure to get rid of this cast.
Diane Gasselin (2):
merge-recursive: porcelain messages for checkout
t7609: test merge and checkout error messages
Matthieu Moy (3):
Turn unpack_trees_options.msgs into an array + enum
merge-recursive: distinguish "removed" and "overwritten" messages
unpack_trees: group error messages by type
Documentation/technical/api-tree-walking.txt | 2 +
builtin/checkout.c | 3 +-
builtin/merge.c | 3 +-
merge-recursive.c | 62 +++++++----
merge-recursive.h | 7 +-
t/t3030-merge-recursive.sh | 2 +-
t/t3400-rebase.sh | 3 +-
t/t3404-rebase-interactive.sh | 3 +-
t/t7609-merge-co-error-msgs.sh | 125 ++++++++++++++++++++++
tree-walk.c | 11 ++-
tree-walk.h | 1 +
unpack-trees.c | 148 ++++++++++++++++++++------
unpack-trees.h | 34 ++++--
13 files changed, 332 insertions(+), 72 deletions(-)
create mode 100755 t/t7609-merge-co-error-msgs.sh
--
1.7.2.1.52.g95e25.dirty
next reply other threads:[~2010-08-09 14:20 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-09 14:19 Matthieu Moy [this message]
2010-08-09 14:19 ` [PATCH 1/5] Turn unpack_trees_options.msgs into an array + enum Matthieu Moy
2010-08-09 19:47 ` Junio C Hamano
2010-08-09 20:49 ` Matthieu Moy
2010-08-11 8:38 ` [PATCH 1/5 v2] " Matthieu Moy
2010-08-11 8:38 ` [PATCH 2/5 v2] merge-recursive: porcelain messages for checkout Matthieu Moy
2010-08-11 8:38 ` [PATCH 3/5 v2] merge-recursive: distinguish "removed" and "overwritten" messages Matthieu Moy
2010-08-11 8:38 ` [PATCH 4/5 v2] unpack_trees: group error messages by type Matthieu Moy
2010-08-11 8:38 ` [PATCH 5/5 v2] t7609: test merge and checkout error messages Matthieu Moy
2010-08-09 14:19 ` [PATCH 2/5] merge-recursive: porcelain messages for checkout Matthieu Moy
2010-08-09 19:58 ` Junio C Hamano
2010-08-09 20:52 ` Matthieu Moy
2010-08-09 21:15 ` Ævar Arnfjörð Bjarmason
2010-08-09 14:20 ` [PATCH 3/5] merge-recursive: distinguish "removed" and "overwritten" messages Matthieu Moy
2010-08-09 14:20 ` [PATCH 4/5] unpack_trees: group error messages by type Matthieu Moy
2010-08-09 14:20 ` [PATCH 5/5] t7609: test merge and checkout error messages Matthieu Moy
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=1281363602-27856-1-git-send-email-Matthieu.Moy@imag.fr \
--to=matthieu.moy@imag.fr \
--cc=diane.gasselin@ensimag.imag.fr \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.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).