sequencer: allow create_autostash to run silently
Add a silent parameter to create_autostash_internal and introduce create_autostash_ref_silent so that callers can create an autostash without printing the "Created autostash" message. Signed-off-by: Harald Nordgren <haraldnordgren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Harald Nordgren committed
Apr 28, 2026 at 18:39 UTC
93177db652ce15533494033b1379b4e434cff364
3 files changed
+17
-9
builtin/merge.c
+4
-2
index 2cbce56f8d..3ebe190ef1 100644
--- a/builtin/merge.c
+++ b/builtin/merge.c
@@ -1672,7 +1672,8 @@ int cmd_merge(int argc,
}
if (autostash)
- create_autostash_ref(the_repository, "MERGE_AUTOSTASH");
+ create_autostash_ref(the_repository, "MERGE_AUTOSTASH",
+ NULL, false);
if (checkout_fast_forward(the_repository,
&head_commit->object.oid,
&commit->object.oid,
@@ -1764,7 +1765,8 @@ int cmd_merge(int argc,
die_ff_impossible();
if (autostash)
- create_autostash_ref(the_repository, "MERGE_AUTOSTASH");
+ create_autostash_ref(the_repository, "MERGE_AUTOSTASH",
+ NULL, false);
/* We are going to make a new commit. */
git_committer_info(IDENT_STRICT);
sequencer.c
+11
-6
index b7d8dca47f..ff5258f481 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -4657,7 +4657,9 @@ static enum todo_command peek_command(struct todo_list *todo_list, int offset)
static void create_autostash_internal(struct repository *r,
const char *path,
- const char *refname)
+ const char *refname,
+ const char *message,
+ bool silent)
{
struct strbuf buf = STRBUF_INIT;
struct lock_file lock_file = LOCK_INIT;
@@ -4679,7 +4681,8 @@ static void create_autostash_internal(struct repository *r,
struct object_id oid;
strvec_pushl(&stash.args,
- "stash", "create", "autostash", NULL);
+ "stash", "create",
+ message ? message : "autostash", NULL);
stash.git_cmd = 1;
stash.no_stdin = 1;
strbuf_reset(&buf);
@@ -4702,7 +4705,8 @@ static void create_autostash_internal(struct repository *r,
&oid, null_oid(the_hash_algo), 0, UPDATE_REFS_DIE_ON_ERR);
}
- printf(_("Created autostash: %s\n"), buf.buf);
+ if (!silent)
+ printf(_("Created autostash: %s\n"), buf.buf);
if (reset_head(r, &ropts) < 0)
die(_("could not reset --hard"));
discard_index(r->index);
@@ -4714,12 +4718,13 @@ static void create_autostash_internal(struct repository *r,
void create_autostash(struct repository *r, const char *path)
{
- create_autostash_internal(r, path, NULL);
+ create_autostash_internal(r, path, NULL, NULL, false);
}
-void create_autostash_ref(struct repository *r, const char *refname)
+void create_autostash_ref(struct repository *r, const char *refname,
+ const char *message, bool silent)
{
- create_autostash_internal(r, NULL, refname);
+ create_autostash_internal(r, NULL, refname, message, silent);
}
static int apply_save_autostash_oid(const char *stash_oid, int attempt_apply)
sequencer.h
+2
-1
index a6fa670c7c..02d2d9db06 100644
--- a/sequencer.h
+++ b/sequencer.h
@@ -229,7 +229,8 @@ void commit_post_rewrite(struct repository *r,
const struct object_id *new_head);
void create_autostash(struct repository *r, const char *path);
-void create_autostash_ref(struct repository *r, const char *refname);
+void create_autostash_ref(struct repository *r, const char *refname,
+ const char *message, bool silent);
int save_autostash(const char *path);
int save_autostash_ref(struct repository *r, const char *refname);
int apply_autostash(const char *path);