From b00f3cfa92d10d7180e6baf01d570eb904b5a592 Mon Sep 17 00:00:00 2001 From: Michael Haggerty Date: Sun, 5 Nov 2017 09:42:02 +0100 Subject: prune_ref(): call `ref_transaction_add_update()` directly `prune_ref()` needs to use the `REF_ISPRUNING` flag, but we want to make that flag private to the files backend. So instead of calling `ref_transaction_delete()`, which is a public function and therefore shouldn't allow the `REF_ISPRUNING` flag, change `prune_ref()` to call `ref_transaction_add_update()`, which is private to the refs module. (Note that we don't need any of the other services provided by `ref_transaction_delete()`.) This allows us to change `ref_transaction_update()` to reject the `REF_ISPRUNING` flag. Do so by adjusting `REF_TRANSACTION_UPDATE_ALLOWED_FLAGS`. Also add parentheses to its definition to avoid potential future mishaps. Signed-off-by: Michael Haggerty Signed-off-by: Junio C Hamano --- refs.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'refs.h') diff --git a/refs.h b/refs.h index 15fd419c7..4ffef9502 100644 --- a/refs.h +++ b/refs.h @@ -349,9 +349,7 @@ int refs_pack_refs(struct ref_store *refs, unsigned int flags); * Flags that can be passed in to ref_transaction_update */ #define REF_TRANSACTION_UPDATE_ALLOWED_FLAGS \ - REF_ISPRUNING | \ - REF_FORCE_CREATE_REFLOG | \ - REF_NODEREF + (REF_NODEREF | REF_FORCE_CREATE_REFLOG) /* * Setup reflog before using. Fill in err and return -1 on failure. -- cgit v1.2.1