diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/transaction.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/transaction.c b/src/transaction.c index 5dd7f42db..7367d1240 100644 --- a/src/transaction.c +++ b/src/transaction.c @@ -334,7 +334,13 @@ int git_transaction_commit(git_transaction *tx) return error; } - if (node->ref_type != GIT_REFERENCE_INVALID) { + if (node->ref_type == GIT_REFERENCE_INVALID) { + /* ref was locked but not modified */ + if ((error = git_refdb_unlock(tx->db, node->payload, false, false, NULL, NULL, NULL)) < 0) { + return error; + } + node->committed = true; + } else { if ((error = update_target(tx->db, node)) < 0) return error; } |
