From: Elijah Newren <newren@xxxxxxxxx> --root implies we want to rebase all commits since the beginning of history. --fork-point means we want to use the reflog of the specified upstream to find the best common ancestor between <upstream> and <branch> and only rebase commits since that common ancestor. These options are clearly contradictory, so throw an error (instead of segfaulting on a NULL pointer) if both are specified. Reported-by: Alexander Berg <alexander.berg@xxxxxxxx> Signed-off-by: Elijah Newren <newren@xxxxxxxxx> --- rebase: display an error if --root and --fork-point are both provided --root implies we want to rebase all commits since the beginning of history. --fork-point means we want to use the reflog of the specified upstream to find the best common ancestor between and and only rebase commits since that common ancestor. These options are clearly contradictory, so throw an error (instead of segfaulting on a NULL pointer) if both are specified. Reported-by: Alexander Berg alexander.berg@xxxxxxxx [alexander.berg@xxxxxxxx]Signed-off-by: Elijah Newren newren@xxxxxxxxx [newren@xxxxxxxxx] Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-771%2Fnewren%2Frebase-fork-point-root-error-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-771/newren/rebase-fork-point-root-error-v1 Pull-Request: https://github.com/git/git/pull/771 builtin/rebase.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/builtin/rebase.c b/builtin/rebase.c index bff53d5d167..287ac1aa21b 100644 --- a/builtin/rebase.c +++ b/builtin/rebase.c @@ -1652,6 +1652,9 @@ int cmd_rebase(int argc, const char **argv, const char *prefix) die(_("cannot combine '--keep-base' with '--root'")); } + if (options.root && fork_point > 0) + die(_("cannot combine '--root' with '--fork-point'")); + if (action != ACTION_NONE && !in_progress) die(_("No rebase in progress?")); setenv(GIT_REFLOG_ACTION_ENVIRONMENT, "rebase", 0); base-commit: af6b65d45ef179ed52087e80cb089f6b2349f4ec -- gitgitgadget