Re: [PATCH 9/9] am: make a direct call to merge_recursive
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jun 29, 2016, 21:23 UTC
- Message-ID
- <xmqq37nv3d19.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <dc58115e23c8d942b3ff6270b43719bc841becbb.1467199553.git.johannes.schindelin@gmx.de>
Johannes Schindelin <johannes.schindelin@gmx.de> writes:
Show 28 quoted lines
> - cp.git_cmd = 1;
> + init_merge_options(&o);
> +
> + o.branch1 = "HEAD";
> + his_tree_name = xstrfmt("%.*s", linelen(state->msg), state->msg);
> + o.branch2 = his_tree_name;
>
> - argv_array_pushf(&cp.env_array, "GITHEAD_%s=%.*s",
> - sha1_to_hex(his_tree), linelen(state->msg), state->msg);
> if (state->quiet)
> - argv_array_push(&cp.env_array, "GIT_MERGE_VERBOSITY=0");
> + o.verbosity = 0;
>
> - argv_array_push(&cp.args, "merge-recursive");
> - argv_array_push(&cp.args, sha1_to_hex(orig_tree));
> - argv_array_push(&cp.args, "--");
> - argv_array_push(&cp.args, sha1_to_hex(our_tree));
> - argv_array_push(&cp.args, sha1_to_hex(his_tree));
> + status = merge_recursive_generic(&o, our_tree, his_tree, 1, bases, &result);
> + if (status < 0)
> + exit(128);
> + free(his_tree_name);
>
> - status = run_command(&cp) ? (-1) : 0;
> - discard_cache();
> - read_cache();
> return status;
> }Is this a correct conversion?
We used to prepare the command line and called run_command() and without dying returned status with the error status from the merge-recursive that was spawned by run_command().
The new code does not report failure to the caller and instead dies.