state->prec = 4;
+ git_config_get_bool("am.threeway", &state->threeway);
+
state->utf8 = 1;
git_config_get_bool("am.messageid", &state->message_id);
if (resume) {
validate_resume_state(state);
- resume = 0;
} else {
int skip;
next:
am_next(state);
+
+ if (resume)
+ am_load(state);
+ resume = 0;
}
if (!is_empty_file(am_path(state, "rewritten"))) {
next:
am_next(state);
+ am_load(state);
am_run(state, 0);
}
die(_("failed to clean index"));
am_next(state);
+ am_load(state);
am_run(state, 0);
}
int keep_cr = -1;
int patch_format = PATCH_FORMAT_UNKNOWN;
enum resume_mode resume = RESUME_FALSE;
+ int in_progress;
const char * const usage[] = {
N_("git am [options] [(<mbox>|<Maildir>)...]"),
OPT_END()
};
- /*
- * NEEDSWORK: Once all the features of git-am.sh have been
- * re-implemented in builtin/am.c, this preamble can be removed.
- */
- if (!getenv("_GIT_USE_BUILTIN_AM")) {
- const char *path = mkpath("%s/git-am", git_exec_path());
-
- if (sane_execvp(path, (char **)argv) < 0)
- die_errno("could not exec %s", path);
- } else {
- prefix = setup_git_directory();
- trace_repo_setup(prefix);
- setup_work_tree();
- }
-
git_config(git_default_config, NULL);
am_state_init(&state, git_path("rebase-apply"));
+ in_progress = am_in_progress(&state);
+ if (in_progress)
+ am_load(&state);
+
argc = parse_options(argc, argv, prefix, options, usage, 0);
if (binary >= 0)
if (read_index_preload(&the_index, NULL) < 0)
die(_("failed to read the index"));
- if (am_in_progress(&state)) {
+ if (in_progress) {
/*
* Catch user error to feed us patches when there is a session
* in progress:
if (resume == RESUME_FALSE)
resume = RESUME_APPLY;
-
- am_load(&state);
} else {
struct argv_array paths = ARGV_ARRAY_INIT;
int i;