[PATCH/RFC/GSoC 07/17] rebase-common: implement refresh_and_write_cache()
From: Paul Tan <hidden>
Date: 2016-06-15 23:08:43
Subsystem:
the rest · Maintainer:
Linus Torvalds
In the upcoming git-rebase to C rewrite, it is a common operation to refresh the index and write the resulting index. builtin/am.c already implements refresh_and_write_cache(), which is what we want. Move it to rebase-common.c, so that it can be shared with all the rebase backends, including git-am. Signed-off-by: Paul Tan <redacted> --- builtin/am.c | 14 +------------- rebase-common.c | 11 +++++++++++ rebase-common.h | 5 +++++ 3 files changed, 17 insertions(+), 13 deletions(-)
diff --git a/builtin/am.c b/builtin/am.c
index d003939..504b604 100644
--- a/builtin/am.c
+++ b/builtin/am.c@@ -28,6 +28,7 @@ #include "rerere.h" #include "prompt.h" #include "mailinfo.h" +#include "rebase-common.h" /** * Returns 1 if the file is empty or does not exist, 0 otherwise.
@@ -1125,19 +1126,6 @@ static const char *msgnum(const struct am_state *state) } /** - * Refresh and write index. - */ -static void refresh_and_write_cache(void) -{ - struct lock_file *lock_file = xcalloc(1, sizeof(struct lock_file)); - - hold_locked_index(lock_file, 1); - refresh_cache(REFRESH_QUIET); - if (write_locked_index(&the_index, lock_file, COMMIT_LOCK)) - die(_("unable to write index file")); -} - -/** * Returns 1 if the index differs from HEAD, 0 otherwise. When on an unborn * branch, returns 1 if there are entries in the index, 0 otherwise. If an * strbuf is provided, the space-separated list of files that differ will be
diff --git a/rebase-common.c b/rebase-common.c
index 8169fb6..b07e1f1 100644
--- a/rebase-common.c
+++ b/rebase-common.c@@ -3,6 +3,17 @@ #include "dir.h" #include "run-command.h" #include "refs.h" +#include "lockfile.h" + +void refresh_and_write_cache(void) +{ + struct lock_file *lock_file = xcalloc(1, sizeof(struct lock_file)); + + hold_locked_index(lock_file, 1); + refresh_cache(REFRESH_QUIET); + if (write_locked_index(&the_index, lock_file, COMMIT_LOCK)) + die(_("unable to write index file")); +} void rebase_options_init(struct rebase_options *opts) {
diff --git a/rebase-common.h b/rebase-common.h
index 067ad0b..8620e8c 100644
--- a/rebase-common.h
+++ b/rebase-common.h@@ -1,6 +1,11 @@ #ifndef REBASE_COMMON_H #define REBASE_COMMON_H +/** + * Refresh and write index. + */ +void refresh_and_write_cache(void); + /* common rebase backend options */ struct rebase_options { struct object_id onto;
--
2.7.0