diff options
author | Pratik Karki <predatoramigo@gmail.com> | 2018-08-06 22:31:11 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-08-06 23:08:01 +0300 |
commit | ac7f467fef8b836084afdce5eded047c79a6858d (patch) | |
tree | 44bb5810721b1fc758d563635d4b2a0760cefa28 /git.c | |
parent | c7b64aa0f3a83ed574d9d374bf2639c3c091120c (diff) |
builtin/rebase: support running "git rebase <upstream>"
This patch gives life to the skeleton added in the previous patches:
With this change, we can perform a elementary rebase (without any
options).
It can be tested thusly by:
git -c rebase.usebuiltin=true rebase HEAD~2
The rebase backends (i.e. the shell script functions defined in
`git-rebase--<backend>`) are still at work here and the "builtin
rebase"'s purpose is simply to parse the options and set
everything up so that those rebase backends can do their work.
Note: We take an alternative approach here which is *not* to set the
environment variables via `run_command_v_opt_cd_env()` because those
variables would then be visible by processes spawned from the rebase
backends. Instead, we work hard to set them in the shell script snippet.
On Windows, some of the tests fail merely due to core.fileMode not
being heeded that's why the core.*config variables is parsed here.
The `reset_head()` function is currently only used to detach the HEAD
to onto by way of starting the rebase, but it offers additional
functionality that subsequent patches will need like moving to the
original branch (possibly updating it) and also to do the equivalent of
`git reset --hard`.
The next commits will handle and support all the wonderful rebase
options.
Signed-off-by: Pratik Karki <predatoramigo@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git.c')
0 files changed, 0 insertions, 0 deletions