update-ref: allow creation of multiple transactions
While git-update-ref has recently grown commands which allow interactive
control of transactions in e48cf33b61
(update-ref: implement interactive
transaction handling, 2020-04-02), it is not yet possible to create
multiple transactions in a single session. To do so, one currently still
needs to invoke the executable multiple times.
This commit addresses this shortcoming by allowing the "start" command
to create a new transaction if the current transaction has already been
either committed or aborted.
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
c0e1726127
commit
262a4d28fe
@ -446,7 +446,18 @@ static void update_refs_stdin(void)
|
||||
state = cmd->state;
|
||||
break;
|
||||
case UPDATE_REFS_CLOSED:
|
||||
die("transaction is closed");
|
||||
if (cmd->state != UPDATE_REFS_STARTED)
|
||||
die("transaction is closed");
|
||||
|
||||
/*
|
||||
* Open a new transaction if we're currently closed and
|
||||
* get a "start".
|
||||
*/
|
||||
state = cmd->state;
|
||||
transaction = ref_transaction_begin(&err);
|
||||
if (!transaction)
|
||||
die("%s", err.buf);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user