[PATCH/RFC/GSoC 03/17] builtin-rebase: implement skeletal builtin rebase
From: Paul Tan <hidden>
Date: 2016-06-15 23:08:43
Subsystem:
kernel build + files below scripts/ (unless maintained elsewhere), the rest · Maintainers:
Nathan Chancellor, Nicolas Schier, Linus Torvalds
Signed-off-by: Paul Tan <redacted> --- Makefile | 5 +---- builtin.h | 1 + builtin/rebase.c | 31 +++++++++++++++++++++++++++++++ git.c | 1 + 4 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 builtin/rebase.c
diff --git a/Makefile b/Makefile
index 24bef8d..ad98714 100644
--- a/Makefile
+++ b/Makefile@@ -496,7 +496,6 @@ SCRIPT_SH += git-merge-one-file.sh SCRIPT_SH += git-merge-resolve.sh SCRIPT_SH += git-mergetool.sh SCRIPT_SH += git-quiltimport.sh -SCRIPT_SH += git-rebase.sh SCRIPT_SH += git-remote-testgit.sh SCRIPT_SH += git-request-pull.sh SCRIPT_SH += git-stash.sh
@@ -505,9 +504,6 @@ SCRIPT_SH += git-web--browse.sh SCRIPT_LIB += git-mergetool--lib SCRIPT_LIB += git-parse-remote -SCRIPT_LIB += git-rebase--am -SCRIPT_LIB += git-rebase--interactive -SCRIPT_LIB += git-rebase--merge SCRIPT_LIB += git-sh-setup SCRIPT_LIB += git-sh-i18n
@@ -909,6 +905,7 @@ BUILTIN_OBJS += builtin/prune.o BUILTIN_OBJS += builtin/pull.o BUILTIN_OBJS += builtin/push.o BUILTIN_OBJS += builtin/read-tree.o +BUILTIN_OBJS += builtin/rebase.o BUILTIN_OBJS += builtin/receive-pack.o BUILTIN_OBJS += builtin/reflog.o BUILTIN_OBJS += builtin/remote.o
diff --git a/builtin.h b/builtin.h
index 6b95006..a184a58 100644
--- a/builtin.h
+++ b/builtin.h@@ -102,6 +102,7 @@ extern int cmd_prune_packed(int argc, const char **argv, const char *prefix); extern int cmd_pull(int argc, const char **argv, const char *prefix); extern int cmd_push(int argc, const char **argv, const char *prefix); extern int cmd_read_tree(int argc, const char **argv, const char *prefix); +extern int cmd_rebase(int argc, const char **argv, const char *prefix); extern int cmd_receive_pack(int argc, const char **argv, const char *prefix); extern int cmd_reflog(int argc, const char **argv, const char *prefix); extern int cmd_remote(int argc, const char **argv, const char *prefix);
diff --git a/builtin/rebase.c b/builtin/rebase.c
new file mode 100644
index 0000000..04cc1bd
--- /dev/null
+++ b/builtin/rebase.c@@ -0,0 +1,31 @@ +/* + * Builtin "git rebase" + */ +#include "cache.h" +#include "builtin.h" +#include "parse-options.h" + +static int git_rebase_config(const char *k, const char *v, void *cb) +{ + return git_default_config(k, v, NULL); +} + +int cmd_rebase(int argc, const char **argv, const char *prefix) +{ + const char * const usage[] = { + N_("git rebase [options]"), + NULL + }; + struct option options[] = { + OPT_END() + }; + + git_config(git_rebase_config, NULL); + + argc = parse_options(argc, argv, prefix, options, usage, 0); + + if (read_cache_preload(NULL) < 0) + die(_("failed to read the index")); + + return 0; +}
diff --git a/git.c b/git.c
index 6cc0c07..f9b7033 100644
--- a/git.c
+++ b/git.c@@ -452,6 +452,7 @@ static struct cmd_struct commands[] = { { "pull", cmd_pull, RUN_SETUP | NEED_WORK_TREE }, { "push", cmd_push, RUN_SETUP }, { "read-tree", cmd_read_tree, RUN_SETUP }, + { "rebase", cmd_rebase, RUN_SETUP | NEED_WORK_TREE }, { "receive-pack", cmd_receive_pack }, { "reflog", cmd_reflog, RUN_SETUP }, { "remote", cmd_remote, RUN_SETUP },
--
2.7.0