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 <pyokagan@xxxxxxxxx> --- 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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html