{"thread":{"id":"3970","subject":"[PATCH] Alter git-rebase command line options.","startedAt":"2006-04-26T11:51:18Z","lastAt":"2006-04-27T05:42:37Z","messageCount":6,"participants":["sean","Jakub Narebski","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"19149","messageId":"BAYC1-PASMTP0659C709B7FFCB63182FE1AEBC0@CEZ.ICE","threadId":"3970","inReplyTo":null,"subject":"[PATCH] Alter git-rebase command line options.","fromName":"sean","fromEmail":"seanlkml@sympatico.ca","sentAt":"2006-04-26T11:51:18Z","receivedAt":"2006-04-26T11:51:18Z","isPatch":true,"sender":{"key":"seanlkml@sympatico.ca","avatar":"https://gravatar.com/avatar/f92923f54fc08c401fc59b71829d4b89e9b8087fbba45ff87c82e6a83aee02ae?d=mp&s=160"},"body":"\n  git rebase [--branch <branch>] <newbase>\n  git rebase --continue\n  git rebase --abort\n\nAdd \"--continue\" to restart the rebase process after\nmanually resolving conflicts.  The user is warned if\nthere are still differences between the index and the\nworking files.\n\nAdd \"--abort\" to restore the original branch, and\nremove the .dotest working files.\n\nChange the order that branch and newbase are specified\nas per comments from Linus.  Also remove the need to\nspecify both an upstream branch _and_ a new merge base.\n\nThe documentation is updated to reflect this new command\nline format but the script still quietly supports the\nexisting command line options completely.\n\nThis fixes a minor bug in the current version where:\n\"git rebase master^ master\" doesn't notice that there\nis no need to perform the rebase.\n\n---\n\n Documentation/git-rebase.txt |   95 ++++++++++++++++++++++--------\n git-rebase.sh                |  133 ++++++++++++++++++++++--------------------\n 2 files changed, 139 insertions(+), 89 deletions(-)\n\nd8366d9de1aecf3143af646f49e7f7bc0f924ae6\ndiff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt\nindex 4a7e67a..f1e83ea 100644\n--- a/Documentation/git-rebase.txt\n+++ b/Documentation/git-rebase.txt\n@@ -3,76 +3,121 @@ git-rebase(1)\n \n NAME\n ----\n-git-rebase - Rebase local commits to new upstream head\n+git-rebase - Rebase local commits to a new upstream head\n \n SYNOPSIS\n --------\n-'git-rebase' [--onto <newbase>] <upstream> [<branch>]\n+'git-rebase' [--branch <branch>] <newbase>\n+\n+'git-rebase' --continue\n+\n+'git-rebase' --abort\n \n DESCRIPTION\n -----------\n-git-rebase applies to <upstream> (or optionally to <newbase>) commits\n-from <branch> that do not appear in <upstream>. When <branch> is not\n-specified it defaults to the current branch (HEAD).\n+git-rebase replaces <branch> with a new branch of the same name having\n+a HEAD of <newbase>.  It then attempts to make a new commit for each\n+commit from the original <branch> that does not yet exist in this new\n+<branch>.\n+\n+It is possible that a merge failure will prevent this process from being\n+completely automatic.  You will have to resolve any such merge failure\n+and run `git rebase --continue`.  If you can not resolve the merge\n+failure, running `git rebase --abort` will restore the original <branch>\n+and remove the working files found in the .dotest directory.\n \n-When git-rebase is complete, <branch> will be updated to point to the\n-newly created line of commit objects, so the previous line will not be\n-accessible unless there are other references to it already.\n+Note that if <branch> is not specified on the command line, the currently\n+checked out branch is used.\n \n Assume the following history exists and the current branch is \"topic\":\n \n+------------\n           A---B---C topic\n          /\n     D---E---F---G master\n+------------\n+\n+From this point, the result of running the following command:\n+\n \n-From this point, the result of either of the following commands:\n+    git rebase --branch topic master\n \n-    git-rebase master\n-    git-rebase master topic\n \n would be:\n \n+------------\n                   A'--B'--C' topic\n                  /\n     D---E---F---G master\n+------------\n \n While, starting from the same point, the result of either of the following\n commands:\n \n-    git-rebase --onto master~1 master\n-    git-rebase --onto master~1 master topic\n+    git rebase master~1\n+    git rebase --branch topic master~1\n+\n \n would be:\n \n+------------\n               A'--B'--C' topic\n              /\n     D---E---F---G master\n+------------\n \n In case of conflict, git-rebase will stop at the first problematic commit\n-and leave conflict markers in the tree.  After resolving the conflict manually\n-and updating the index with the desired resolution, you can continue the\n-rebasing process with\n+and leave conflict markers in the tree.  You can use git diff to locate\n+the markers (<<<<<<) and make edits to resolve the conflict.  For each\n+file you edit, you need to tell git that the conflict has been resolved,\n+typically this would be done with\n+\n+\n+    git update-index <filename>\n+\n+\n+After resolving the conflict manually and updating the index with the\n+desired resolution, you can continue the rebasing process with\n+\n+\n+    git rebase --continue\n \n-    git am --resolved --3way\n \n Alternatively, you can undo the git-rebase with\n \n-    git reset --hard ORIG_HEAD\n-    rm -r .dotest\n+\n+    git rebase --abort\n \n OPTIONS\n -------\n <newbase>::\n-\tStarting point at which to create the new commits. If the\n-\t--onto option is not specified, the starting point is\n-\t<upstream>.\n-\n-<upstream>::\n-\tUpstream branch to compare against.\n+\tStarting point at which to create the new commits.\n \n <branch>::\n \tWorking branch; defaults to HEAD.\n \n+--continue::\n+\tRestart the rebasing process after having resolved a merge conflict.\n+\n+--abort::\n+\tRestore the original branch and abort the rebase operation.\n+\n+NOTES\n+-----\n+When you rebase a branch, you are changing its history in a way that\n+will cause problems for anyone who already has a copy of the branch\n+in their repository and tries to pull updates from you.  You should\n+understand the implications of using 'git rebase' on a repository that\n+you share.\n+\n+When the git rebase command is run, it will first execute a \"pre-rebase\"\n+hook if one exists.  You can use this hook to do sanity checks and\n+reject the rebase if it isn't appropriate.  Please see the template\n+pre-rebase hook script for an example.\n+\n+You must be in the top directory of your project to start (or continue)\n+a rebase.  Upon completion, <branch> will be the current branch.\n+\n Author\n ------\n Written by Junio C Hamano <junkio@cox.net>\ndiff --git a/git-rebase.sh b/git-rebase.sh\nindex 86dfe9c..5a4e33b 100755\n--- a/git-rebase.sh\n+++ b/git-rebase.sh\n@@ -3,40 +3,61 @@ #\n # Copyright (c) 2005 Junio C Hamano.\n #\n \n-USAGE='[--onto <newbase>] <upstream> [<branch>]'\n-LONG_USAGE='git-rebase applies to <upstream> (or optionally to <newbase>) commits\n-from <branch> that do not appear in <upstream>. When <branch> is not\n-specified it defaults to the current branch (HEAD).\n-\n-When git-rebase is complete, <branch> will be updated to point to the\n-newly created line of commit objects, so the previous line will not be\n-accessible unless there are other references to it already.\n-\n-Assuming the following history:\n-\n-          A---B---C topic\n-         /\n-    D---E---F---G master\n-\n-The result of the following command:\n-\n-    git-rebase --onto master~1 master topic\n-\n-  would be:\n-\n-              A'\\''--B'\\''--C'\\'' topic\n-             /\n-    D---E---F---G master\n+USAGE='[--branch <branch>] <newbase>'\n+LONG_USAGE='git-rebase replaces <branch> with a new one of the\n+same name having a HEAD of <newbase>.  It then attempts to create\n+a new commit for each commit from the original <branch> that does\n+not yet exist on this new <branch>.\n+\n+It is possible that a merge failure will prevent this process\n+from being completely automatic.  You will have to resolve any\n+such merge failure and run git-rebase --continue.  If you can\n+not resolve the merge failure, running git-rebase --abort will\n+restore the original <branch> and remove the working files found\n+in the .dotest directory.\n+\n+Note that if <branch> is not specified on the command line, the\n+currently checked out branch is used.  You must be in the top\n+directory of your project to start (or continue) a rebase.\n+\n+Example:       git-rebase --branch topic master~1\n+\n+        A---B---C topic                   A'\\''--B'\\''--C'\\'' topic\n+       /                   -->           /\n+  D---E---F---G master          D---E---F---G master\n '\n \n . git-sh-setup\n \n unset newbase\n+unset branch_name\n while case \"$#\" in 0) break ;; esac\n do\n \tcase \"$1\" in\n+\t--continue)\n+\t\tdiff=$(git-diff-files)\n+\t\tcase \"$diff\" in\n+\t\t?*)\techo \"You must edit all merge conflicts and then\"\n+\t\t\techo \"mark them as resolved using git update-index\"\n+\t\t\texit 1\n+\t\t\t;;\n+\t\tesac\n+\t\tgit am --resolved --3way\n+\t\texit\n+\t\t;;\n+\t--abort)\n+\t\t[ -d .dotest ] || die \"No rebase in progress?\"\n+\t\tgit reset --hard ORIG_HEAD\n+\t\trm -r .dotest\n+\t\texit\n+\t\t;;\n+\t--branch)\n+\t\ttest $# -ne 3 -o -n \"$newbase\" && usage\n+\t\tbranch_name=\"$2\"\n+\t\tshift\n+\t\t;;\n \t--onto)\n-\t\ttest 2 -le \"$#\" || usage\n+\t\ttest $# -lt 2 -o -n \"$branch_name\" && usage\n \t\tnewbase=\"$2\"\n \t\tshift\n \t\t;;\n@@ -49,6 +70,20 @@ do\n \tesac\n \tshift\n done\n+# Quietly support the historic command line [--onto newbase] newbase' [branch]\n+test $# -lt 1 && usage\n+test -z \"$newbase\" && newbase=\"$1\"\n+shift\n+if [ -z \"$branch_name\" ]; then\n+\tif [ $# -gt 0 ]; then\n+\t\tbranch_name=\"$1\"\n+\t\tshift\n+\telse\tbranch_name=`git symbolic-ref HEAD` || die \"No current branch\"\n+\t\tbranch_name=`expr \"z$branch_name\" : 'zrefs/heads/\\(.*\\)'`\n+\tfi\n+fi\n+test $# -gt 0 && usage\n+git checkout \"$branch_name\" || usage\n \n # Make sure we do not have .dotest\n if mkdir .dotest\n@@ -72,11 +107,6 @@ case \"$diff\" in\n \t;;\n esac\n \n-# The upstream head must be given.  Make sure it is valid.\n-upstream_name=\"$1\"\n-upstream=`git rev-parse --verify \"${upstream_name}^0\"` ||\n-    die \"invalid upstream $upstream_name\"\n-\n # If a hook exists, give it a chance to interrupt\n if test -x \"$GIT_DIR/hooks/pre-rebase\"\n then\n@@ -86,47 +116,22 @@ then\n \t}\n fi\n \n-# If the branch to rebase is given, first switch to it.\n-case \"$#\" in\n-2)\n-\tbranch_name=\"$2\"\n-\tgit-checkout \"$2\" || usage\n-\t;;\n-*)\n-\tbranch_name=`git symbolic-ref HEAD` || die \"No current branch\"\n-\tbranch_name=`expr \"z$branch_name\" : 'zrefs/heads/\\(.*\\)'`\n-\t;;\n-esac\n-branch=$(git-rev-parse --verify \"${branch_name}^0\") || exit\n-\n # Make sure the branch to rebase onto is valid.\n-onto_name=${newbase-\"$upstream_name\"}\n-onto=$(git-rev-parse --verify \"${onto_name}^0\") || exit\n-\n-# Now we are rebasing commits $upstream..$branch on top of $onto\n+branch=$(git-rev-parse --verify \"${branch_name}^0\") || exit\n+onto=$(git-rev-parse --verify \"${newbase}^0\") || exit\n \n # Check if we are already based on $onto, but this should be\n # done only when upstream and onto are the same.\n-if test \"$upstream\" = \"onto\"\n-then\n-\tmb=$(git-merge-base \"$onto\" \"$branch\")\n-\tif test \"$mb\" = \"$onto\"\n-\tthen\n-\t\techo >&2 \"Current branch $branch_name is up to date.\"\n-\t\texit 0\n-\tfi\n-fi\n-\n-# Rewind the head to \"$onto\"; this saves our current head in ORIG_HEAD.\n-git-reset --hard \"$onto\"\n-\n-# If the $onto is a proper descendant of the tip of the branch, then\n-# we just fast forwarded.\n+mb=$(git-merge-base \"$onto\" \"$branch\")\n if test \"$mb\" = \"$onto\"\n then\n-\techo >&2 \"Fast-forwarded $branch to $newbase.\"\n+\techo >&2 \"Current branch $branch_name already has $newbase as a base!\"\n \texit 0\n fi\n \n-git-format-patch -k --stdout --full-index \"$upstream\" ORIG_HEAD |\n+# Rewind the head to \"$onto\"; this saves our current head in ORIG_HEAD.\n+git-reset --hard \"$newbase\"\n+\n+# Now we are rebasing commits $newbase..$branch on top of $newbase\n+git-format-patch -k --stdout --full-index \"$newbase\" ORIG_HEAD |\n git am --binary -3 -k\n-- \n1.3.0.gd8366\n"},{"id":"19151","messageId":"e2np4p$b9a$1@sea.gmane.org","threadId":"3970","inReplyTo":"BAYC1-PASMTP0659C709B7FFCB63182FE1AEBC0@CEZ.ICE","subject":"Re: [PATCH] Alter git-rebase command line options.","fromName":"Jakub Narebski","fromEmail":"jnareb@gmail.com","sentAt":"2006-04-26T12:30:47Z","receivedAt":"2006-04-26T12:30:47Z","isPatch":true,"sender":{"key":"jnareb@gmail.com","avatar":"https://avatars.githubusercontent.com/u/2706?v=4"},"body":"sean wrote:\n\n>   git rebase [--branch <branch>] <newbase>\n>   git rebase --continue\n>   git rebase --abort\n> \n> Add \"--continue\" to restart the rebase process after\n> manually resolving conflicts.  The user is warned if\n> there are still differences between the index and the\n> working files.\n> \n> Add \"--abort\" to restore the original branch, and\n> remove the .dotest working files.\n\nVery nice.\n\n>  SYNOPSIS\n>  --------\n> -'git-rebase' [--onto <newbase>] <upstream> [<branch>]\n> +'git-rebase' [--branch <branch>] <newbase>\n> +\n> +'git-rebase' --continue\n> +\n> +'git-rebase' --abort\n>  \n>  DESCRIPTION\n>  -----------\n> -git-rebase applies to <upstream> (or optionally to <newbase>) commits\n> -from <branch> that do not appear in <upstream>. When <branch> is not\n> -specified it defaults to the current branch (HEAD).\n> +git-rebase replaces <branch> with a new branch of the same name having\n> +a HEAD of <newbase>.  It then attempts to make a new commit for each\n> +commit from the original <branch> that does not yet exist in this new\n> +<branch>.\n\nWhat about 'git-rebase --onto <newbase> <upstream> <branch>' three options\nversion?\n\n-- \nJakub Narebski\nWarsaw, Poland\n"},{"id":"19153","messageId":"BAYC1-PASMTP097EE76D2B44A2B59F9DF8AEBC0@CEZ.ICE","threadId":"3970","inReplyTo":"e2np4p$b9a$1@sea.gmane.org","subject":"Re: [PATCH] Alter git-rebase command line options.","fromName":"sean","fromEmail":"seanlkml@sympatico.ca","sentAt":"2006-04-26T13:04:47Z","receivedAt":"2006-04-26T13:04:47Z","isPatch":true,"sender":{"key":"seanlkml@sympatico.ca","avatar":"https://gravatar.com/avatar/f92923f54fc08c401fc59b71829d4b89e9b8087fbba45ff87c82e6a83aee02ae?d=mp&s=160"},"body":"On Wed, 26 Apr 2006 14:30:47 +0200\nJakub Narebski <jnareb@gmail.com> wrote:\n> \n> What about 'git-rebase --onto <newbase> <upstream> <branch>' three options\n> version?\n\nAhh yes, I didn't look closely enough at that, and got fooled by a bug\nin the current version[1] into thinking it was never used anyway.  Will have\nto respin, the script and come up with some docs.  What's a reason someone\nwould want or need to use this three option version ?\n\nSean\n\n[1]  Line 110:  if test \"$upstream\" = \"onto\"\n"},{"id":"19155","messageId":"BAYC1-PASMTP025110BEB495EC4F07CDE2AEBC0@CEZ.ICE","threadId":"3970","inReplyTo":"e2np4p$b9a$1@sea.gmane.org","subject":"[PATCH] Add --continue and --abort options to git-rebase.","fromName":"sean","fromEmail":"seanlkml@sympatico.ca","sentAt":"2006-04-26T14:49:38Z","receivedAt":"2006-04-26T14:49:38Z","isPatch":true,"sender":{"key":"seanlkml@sympatico.ca","avatar":"https://gravatar.com/avatar/f92923f54fc08c401fc59b71829d4b89e9b8087fbba45ff87c82e6a83aee02ae?d=mp&s=160"},"body":"\n  git rebase [--onto <newbase>] <upstream> [<branch>]\n  git rebase --continue\n  git rebase --abort\n\nAdd \"--continue\" to restart the rebase process after\nmanually resolving conflicts.  The user is warned if\nthere are still differences between the index and the\nworking files.\n\nAdd \"--abort\" to restore the original branch, and\nremove the .dotest working files.\n\nThis fixes a minor bug in the current version where:\n\"git rebase master^ master\" doesn't notice that there\nis no need to perform the rebase.\n\nSome minor additions to the git-rebase documentation.\n\n---\n\nTake 2.  Must simpler patch which doesn't trying to \nrejigger the command line too much.\n\n Documentation/git-rebase.txt |   76 +++++++++++++++++++++++++++++++++++-------\n git-rebase.sh                |   64 ++++++++++++++++++++++-------------\n 2 files changed, 102 insertions(+), 38 deletions(-)\n\nb009f7b17dce8f860f242f9cafc2aa510daf9f41\ndiff --git a/Documentation/git-rebase.txt b/Documentation/git-rebase.txt\nindex 4a7e67a..cf74005 100644\n--- a/Documentation/git-rebase.txt\n+++ b/Documentation/git-rebase.txt\n@@ -3,38 +3,54 @@ git-rebase(1)\n \n NAME\n ----\n-git-rebase - Rebase local commits to new upstream head\n+git-rebase - Rebase local commits to a new head\n \n SYNOPSIS\n --------\n 'git-rebase' [--onto <newbase>] <upstream> [<branch>]\n \n+'git-rebase' --continue\n+\n+'git-rebase' --abort\n+\n DESCRIPTION\n -----------\n-git-rebase applies to <upstream> (or optionally to <newbase>) commits\n-from <branch> that do not appear in <upstream>. When <branch> is not\n-specified it defaults to the current branch (HEAD).\n+git-rebase replaces <branch> with a new branch of the same name.  When\n+the --onto option is provided the new branch starts out with a HEAD equal\n+to <newbase>, otherwise it is equal to <upstream>.  It then attempts to\n+create a new commit for each commit from the original <branch> that does\n+not exist in the <upstream> branch.\n \n-When git-rebase is complete, <branch> will be updated to point to the\n-newly created line of commit objects, so the previous line will not be\n-accessible unless there are other references to it already.\n+It is possible that a merge failure will prevent this process from being\n+completely automatic.  You will have to resolve any such merge failure\n+and run `git rebase --continue`.  If you can not resolve the merge\n+failure, running `git rebase --abort` will restore the original <branch>\n+and remove the working files found in the .dotest directory.\n+\n+Note that if <branch> is not specified on the command line, the currently\n+checked out branch is used.\n \n Assume the following history exists and the current branch is \"topic\":\n \n+------------\n           A---B---C topic\n          /\n     D---E---F---G master\n+------------\n \n From this point, the result of either of the following commands:\n \n+\n     git-rebase master\n     git-rebase master topic\n \n would be:\n \n+------------\n                   A'--B'--C' topic\n                  /\n     D---E---F---G master\n+------------\n \n While, starting from the same point, the result of either of the following\n commands:\n@@ -44,21 +60,33 @@ commands:\n \n would be:\n \n+------------\n               A'--B'--C' topic\n              /\n     D---E---F---G master\n+------------\n \n In case of conflict, git-rebase will stop at the first problematic commit\n-and leave conflict markers in the tree.  After resolving the conflict manually\n-and updating the index with the desired resolution, you can continue the\n-rebasing process with\n+and leave conflict markers in the tree.  You can use git diff to locate\n+the markers (<<<<<<) and make edits to resolve the conflict.  For each\n+file you edit, you need to tell git that the conflict has been resolved,\n+typically this would be done with\n+\n+\n+    git update-index <filename>\n+\n+\n+After resolving the conflict manually and updating the index with the\n+desired resolution, you can continue the rebasing process with\n+\n+\n+    git rebase --continue\n \n-    git am --resolved --3way\n \n Alternatively, you can undo the git-rebase with\n \n-    git reset --hard ORIG_HEAD\n-    rm -r .dotest\n+\n+    git rebase --abort\n \n OPTIONS\n -------\n@@ -73,6 +101,28 @@ OPTIONS\n <branch>::\n \tWorking branch; defaults to HEAD.\n \n+--continue::\n+\tRestart the rebasing process after having resolved a merge conflict.\n+\n+--abort::\n+\tRestore the original branch and abort the rebase operation.\n+\n+NOTES\n+-----\n+When you rebase a branch, you are changing its history in a way that\n+will cause problems for anyone who already has a copy of the branch\n+in their repository and tries to pull updates from you.  You should\n+understand the implications of using 'git rebase' on a repository that\n+you share.\n+\n+When the git rebase command is run, it will first execute a \"pre-rebase\"\n+hook if one exists.  You can use this hook to do sanity checks and\n+reject the rebase if it isn't appropriate.  Please see the template\n+pre-rebase hook script for an example.\n+\n+You must be in the top directory of your project to start (or continue)\n+a rebase.  Upon completion, <branch> will be the current branch.\n+\n Author\n ------\n Written by Junio C Hamano <junkio@cox.net>\ndiff --git a/git-rebase.sh b/git-rebase.sh\nindex 86dfe9c..2085ebe 100755\n--- a/git-rebase.sh\n+++ b/git-rebase.sh\n@@ -4,37 +4,51 @@ # Copyright (c) 2005 Junio C Hamano.\n #\n \n USAGE='[--onto <newbase>] <upstream> [<branch>]'\n-LONG_USAGE='git-rebase applies to <upstream> (or optionally to <newbase>) commits\n-from <branch> that do not appear in <upstream>. When <branch> is not\n-specified it defaults to the current branch (HEAD).\n-\n-When git-rebase is complete, <branch> will be updated to point to the\n-newly created line of commit objects, so the previous line will not be\n-accessible unless there are other references to it already.\n-\n-Assuming the following history:\n-\n-          A---B---C topic\n-         /\n-    D---E---F---G master\n-\n-The result of the following command:\n-\n-    git-rebase --onto master~1 master topic\n-\n-  would be:\n-\n-              A'\\''--B'\\''--C'\\'' topic\n-             /\n-    D---E---F---G master\n+LONG_USAGE='git-rebase replaces <branch> with a new branch of the\n+same name.  When the --onto option is provided the new branch starts\n+out with a HEAD equal to <newbase>, otherwise it is equal to <upstream>\n+It then attempts to create a new commit for each commit from the original\n+<branch> that does not exist in the <upstream> branch.\n+\n+It is possible that a merge failure will prevent this process from being\n+completely automatic.  You will have to resolve any such merge failure\n+and run git-rebase --continue.  If you can not resolve the merge failure,\n+running git-rebase --abort will restore the original <branch> and remove\n+the working files found in the .dotest directory.\n+\n+Note that if <branch> is not specified on the command line, the\n+currently checked out branch is used.  You must be in the top\n+directory of your project to start (or continue) a rebase.\n+\n+Example:       git-rebase master~1 topic\n+\n+        A---B---C topic                   A'\\''--B'\\''--C'\\'' topic\n+       /                   -->           /\n+  D---E---F---G master          D---E---F---G master\n '\n-\n . git-sh-setup\n \n unset newbase\n while case \"$#\" in 0) break ;; esac\n do\n \tcase \"$1\" in\n+\t--continue)\n+\t\tdiff=$(git-diff-files)\n+\t\tcase \"$diff\" in\n+\t\t?*)\techo \"You must edit all merge conflicts and then\"\n+\t\t\techo \"mark them as resolved using git update-index\"\n+\t\t\texit 1\n+\t\t\t;;\n+\t\tesac\n+\t\tgit am --resolved --3way\n+\t\texit\n+\t\t;;\n+\t--abort)\n+\t\t[ -d .dotest ] || die \"No rebase in progress?\"\n+\t\tgit reset --hard ORIG_HEAD\n+\t\trm -r .dotest\n+\t\texit\n+\t\t;;\n \t--onto)\n \t\ttest 2 -le \"$#\" || usage\n \t\tnewbase=\"$2\"\n@@ -107,7 +121,7 @@ # Now we are rebasing commits $upstream.\n \n # Check if we are already based on $onto, but this should be\n # done only when upstream and onto are the same.\n-if test \"$upstream\" = \"onto\"\n+if test \"$upstream\" = \"$onto\"\n then\n \tmb=$(git-merge-base \"$onto\" \"$branch\")\n \tif test \"$mb\" = \"$onto\"\n-- \n1.3.0.gb009\n"},{"id":"19166","messageId":"7v3bg0nlvb.fsf@assigned-by-dhcp.cox.net","threadId":"3970","inReplyTo":"BAYC1-PASMTP025110BEB495EC4F07CDE2AEBC0@CEZ.ICE","subject":"Re: [PATCH] Add --continue and --abort options to git-rebase.","fromName":"Junio C Hamano","fromEmail":"junkio@cox.net","sentAt":"2006-04-26T20:05:28Z","receivedAt":"2006-04-26T20:05:28Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"sean <seanlkml@sympatico.ca> writes:\n\n>   git rebase [--onto <newbase>] <upstream> [<branch>]\n>   git rebase --continue\n>   git rebase --abort\n>\n> ---\n>\n> Take 2.  Must simpler patch which doesn't trying to \n> rejigger the command line too much.\n\nThis second round seems to make more sense.  Sign-off?\n"},{"id":"19173","messageId":"BAYC1-PASMTP08831D3D326017F52485CCAEBD0@CEZ.ICE","threadId":"3970","inReplyTo":"7v3bg0nlvb.fsf@assigned-by-dhcp.cox.net","subject":"Re: [PATCH] Add --continue and --abort options to git-rebase.","fromName":"sean","fromEmail":"seanlkml@sympatico.ca","sentAt":"2006-04-27T05:42:37Z","receivedAt":"2006-04-27T05:42:37Z","isPatch":true,"sender":{"key":"seanlkml@sympatico.ca","avatar":"https://gravatar.com/avatar/f92923f54fc08c401fc59b71829d4b89e9b8087fbba45ff87c82e6a83aee02ae?d=mp&s=160"},"body":"On Wed, 26 Apr 2006 13:05:28 -0700\nJunio C Hamano <junkio@cox.net> wrote:\n\n> sean <seanlkml@sympatico.ca> writes:\n> \n> >   git rebase [--onto <newbase>] <upstream> [<branch>]\n> >   git rebase --continue\n> >   git rebase --abort\n> >\n> > ---\n> >\n> > Take 2.  Must simpler patch which doesn't trying to \n> > rejigger the command line too much.\n> \n> This second round seems to make more sense.  Sign-off?\n> \n\nSure,\n\n    Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca>\n\nSean\n"}]}