OSDN Git Service

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 87ffae2..43ea52c 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)