Re: [PATCH 2/2] rebase -i: silence stash apply
flat view
From: Johannes Schindelin <hidden>
Date: 2017-05-18 21:19:48
Hi Phillip, On Thu, 18 May 2017, Phillip Wood wrote:
The shell version prints it's own error message if there's an error, the
C version does this as well
Shell version:
apply_autostash () {
if test -f "$state_dir/autostash"
then
stash_sha1=$(cat "$state_dir/autostash")
if git stash apply $stash_sha1 2>&1 >/dev/null
then
echo "$(gettext 'Applied autostash.')"
else
git stash store -m "autostash" -q $stash_sha1 ||
die "$(eval_gettext "Cannot store \$stash_sha1")"
gettext 'Applying autostash resulted in conflicts.
Your changes are safe in the stash.
You can run "git stash pop" or "git stash drop" at any time.
'
fi
fi
}
C version:
static int apply_autostash(struct replay_opts *opts)
{
struct strbuf stash_sha1 = STRBUF_INIT;
struct child_process child = CHILD_PROCESS_INIT;
int ret = 0;
if (!read_oneliner(&stash_sha1, rebase_path_autostash(), 1)) {
strbuf_release(&stash_sha1);
return 0;
}
strbuf_trim(&stash_sha1);
child.git_cmd = 1;
child.no_stdout = 1;
child.no_stderr = 1;
argv_array_push(&child.args, "stash");
argv_array_push(&child.args, "apply");
argv_array_push(&child.args, stash_sha1.buf);
if (!run_command(&child))
printf(_("Applied autostash.\n"));
else {
struct child_process store = CHILD_PROCESS_INIT;
store.git_cmd = 1;
argv_array_push(&store.args, "stash");
argv_array_push(&store.args, "store");
argv_array_push(&store.args, "-m");
argv_array_push(&store.args, "autostash");
argv_array_push(&store.args, "-q");
argv_array_push(&store.args, stash_sha1.buf);
if (run_command(&store))
ret = error(_("cannot store %s"), stash_sha1.buf);
else
printf(_("Applying autostash resulted in conflicts.\n"
"Your changes are safe in the stash.\n"
"You can run \"git stash pop\" or"
" \"git stash drop\" at any time.\n"));
}
strbuf_release(&stash_sha1);
return ret;
}Oh, you're right, I misremembered. Thank you for being so thorough. This patch is Acked-by: me, then. Thanks, Johannes