Merge branch 'ab/range-diff-no-patch'
[gitweb.git] / builtin / rebase.c
index e9995c9a37251d30e5a08c63a8545d84ab88e14f..b84568fc4e6677e5f68c3b11e0798942ae19577a 100644 (file)
@@ -21,6 +21,7 @@
 #include "diff.h"
 #include "wt-status.h"
 #include "revision.h"
+#include "commit-reach.h"
 #include "rerere.h"
 
 static char const * const builtin_rebase_usage[] = {
@@ -688,7 +689,7 @@ static int can_fast_forward(struct commit *onto, struct object_id *head_oid,
        merge_bases = get_merge_bases(onto, head);
        if (merge_bases && !merge_bases->next) {
                oidcpy(merge_base, &merge_bases->item->object.oid);
-               res = !oidcmp(merge_base, &onto->object.oid);
+               res = oideq(merge_base, &onto->object.oid);
        } else {
                oidcpy(merge_base, &null_oid);
                res = 0;
@@ -702,6 +703,9 @@ static int parse_opt_merge(const struct option *opt, const char *arg, int unset)
 {
        struct rebase_options *opts = opt->value;
 
+       BUG_ON_OPT_NEG(unset);
+       BUG_ON_OPT_ARG(arg);
+
        if (!is_interactive(opts))
                opts->type = REBASE_MERGE;
 
@@ -714,6 +718,9 @@ static int parse_opt_interactive(const struct option *opt, const char *arg,
 {
        struct rebase_options *opts = opt->value;
 
+       BUG_ON_OPT_NEG(unset);
+       BUG_ON_OPT_ARG(arg);
+
        opts->type = REBASE_INTERACTIVE;
        opts->flags |= REBASE_INTERACTIVE_EXPLICIT;
 
@@ -1217,15 +1224,15 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
                 *       git-rebase.txt caveats with "unless you know what you are doing"
                 */
                if (options.rebase_merges)
-                       die(_("error: cannot combine '--preserve_merges' with "
+                       die(_("error: cannot combine '--preserve-merges' with "
                              "'--rebase-merges'"));
 
        if (options.rebase_merges) {
                if (strategy_options.nr)
-                       die(_("error: cannot combine '--rebase_merges' with "
+                       die(_("error: cannot combine '--rebase-merges' with "
                              "'--strategy-option'"));
                if (options.strategy)
-                       die(_("error: cannot combine '--rebase_merges' with "
+                       die(_("error: cannot combine '--rebase-merges' with "
                              "'--strategy'"));
        }
 
@@ -1350,7 +1357,7 @@ int cmd_rebase(int argc, const char **argv, const char *prefix)
                        update_index_if_able(&the_index, &lock_file);
                rollback_lock_file(&lock_file);
 
-               if (has_unstaged_changes(0) || has_uncommitted_changes(0)) {
+               if (has_unstaged_changes(1) || has_uncommitted_changes(1)) {
                        const char *autostash =
                                state_dir_path("autostash", &options);
                        struct child_process stash = CHILD_PROCESS_INIT;