git-am: suggest what to do with superfluous patches
authorJan Krüger <jk@jk.gs>
Sun, 30 May 2010 08:19:26 +0000 (10:19 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 1 Jun 2010 00:48:38 +0000 (17:48 -0700)
Particularly in the context of rebase, conflicts frequently occur
because the change in the patch to be applied was made obsolete by new
upstream commits. In this case, solving the conflict effectively means
skipping the patch. However, it's not always readily apparent that the
patch needs to be skipped, and when people solve the conflict and try
git rebase --continue, they get confronted with a message of

  No changes - did you forget to use 'git add'?

That's not very helpful if you did actually stage your changes and they
happen to turn the patch into a no-op. This extends the message to point
out what's going on.

Signed-off-by: Jan Krüger <jk@jk.gs>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-am.sh

index 87ffae252b3f2ff88646d142ea9c2dfb38a28953..43ea52c15c3031bd12e86df4016fb35efaf05e5d 100755 (executable)
--- a/git-am.sh
+++ b/git-am.sh
@@ -726,6 +726,8 @@ do
                resolved=
                git diff-index --quiet --cached HEAD -- && {
                        echo "No changes - did you forget to use 'git add'?"
+                       echo "If there is nothing left to stage, chances are that something else"
+                       echo "already introduced the same changes; you might want to skip this patch."
                        stop_here_user_resolve $this
                }
                unmerged=$(git ls-files -u)