They used to "die" in case of problems which is bad if we want to take some action in case of error. Signed-off-by: Christian Couder <chriscool@xxxxxxxxxxxxx> --- builtin/revert.c | 27 ++++++++++++++++----------- 1 files changed, 16 insertions(+), 11 deletions(-) diff --git a/builtin/revert.c b/builtin/revert.c index 57d4300..8b50e0c 100644 --- a/builtin/revert.c +++ b/builtin/revert.c @@ -543,7 +543,7 @@ static int do_pick_commit(struct args_info *info, struct commit *commit) return res; } -static void prepare_revs(struct rev_info *revs, struct args_info *info) +static int prepare_revs(struct rev_info *revs, struct args_info *info) { int argc; @@ -553,29 +553,34 @@ static void prepare_revs(struct rev_info *revs, struct args_info *info) revs->reverse = 1; argc = setup_revisions(info->commit_argc, info->commit_argv, revs, NULL); - if (argc > 1) - usage(*revert_or_cherry_pick_usage(info)); + if (argc > 1) { + fprintf(stderr, "usage: %s", *revert_or_cherry_pick_usage(info)); + return 129; + } if (prepare_revision_walk(revs)) - die("revision walk setup failed"); + return error("revision walk setup failed"); if (!revs->commits) - die("empty commit set passed"); + return error("empty commit set passed"); + + return 0; } -static void read_and_refresh_cache(const char *me) +static int read_and_refresh_cache(const char *me) { static struct lock_file index_lock; int index_fd = hold_locked_index(&index_lock, 0); if (read_index_preload(&the_index, NULL) < 0) - die("git %s: failed to read the index", me); + return error("git %s: failed to read the index", me); refresh_index(&the_index, REFRESH_QUIET|REFRESH_UNMERGED, NULL, NULL, NULL); if (the_index.cache_changed) { if (write_index(&the_index, index_fd) || commit_locked_index(&index_lock)) - die("git %s: failed to refresh the index", me); + return error("git %s: failed to refresh the index", me); } rollback_lock_file(&index_lock); + return 0; } static int ff_incompatible(int val, const char *opt) @@ -596,9 +601,9 @@ static int pick_commits(struct args_info *infos) (res = ff_incompatible(infos->edit, "--edit")))) return res; - read_and_refresh_cache(me); - - prepare_revs(&revs, infos); + if ((res = read_and_refresh_cache(me)) || + (res = prepare_revs(&revs, infos))) + return res; while ((commit = get_revision(&revs)) && !(res = do_pick_commit(infos, commit))) -- 1.7.3.2.504.g59d466 -- 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