| 2716 | } |
| 2717 | |
| 2718 | int ref_transaction_abort(struct ref_transaction *transaction, |
| 2719 | struct strbuf *err) |
| 2720 | { |
| 2721 | struct ref_store *refs = transaction->ref_store; |
| 2722 | int ret = 0; |
| 2723 | |
| 2724 | switch (transaction->state) { |
| 2725 | case REF_TRANSACTION_OPEN: |
| 2726 | /* No need to abort explicitly. */ |
| 2727 | break; |
| 2728 | case REF_TRANSACTION_PREPARED: |
| 2729 | ret = refs->be->transaction_abort(refs, transaction, err); |
| 2730 | break; |
| 2731 | case REF_TRANSACTION_CLOSED: |
| 2732 | BUG("abort called on a closed reference transaction"); |
| 2733 | break; |
| 2734 | default: |
| 2735 | BUG("unexpected reference transaction state"); |
| 2736 | break; |
| 2737 | } |
| 2738 | |
| 2739 | run_transaction_hook(transaction, "aborted"); |
| 2740 | |
| 2741 | ref_transaction_free(transaction); |
| 2742 | return ret; |
| 2743 | } |
| 2744 | |
| 2745 | int ref_transaction_commit(struct ref_transaction *transaction, |
| 2746 | struct strbuf *err) |
no test coverage detected