@@ -630,16 +630,20 @@ static int delete_pseudoref(const char *pseudoref, const unsigned char *old_sha1
630630 return 0 ;
631631}
632632
633- int delete_ref (const char * msg , const char * refname ,
634- const unsigned char * old_sha1 , unsigned int flags )
633+ int refs_delete_ref (struct ref_store * refs , const char * msg ,
634+ const char * refname ,
635+ const unsigned char * old_sha1 ,
636+ unsigned int flags )
635637{
636638 struct ref_transaction * transaction ;
637639 struct strbuf err = STRBUF_INIT ;
638640
639- if (ref_type (refname ) == REF_TYPE_PSEUDOREF )
641+ if (ref_type (refname ) == REF_TYPE_PSEUDOREF ) {
642+ assert (refs == get_main_ref_store ());
640643 return delete_pseudoref (refname , old_sha1 );
644+ }
641645
642- transaction = ref_transaction_begin ( & err );
646+ transaction = ref_store_transaction_begin ( refs , & err );
643647 if (!transaction ||
644648 ref_transaction_delete (transaction , refname , old_sha1 ,
645649 flags , msg , & err ) ||
@@ -654,6 +658,13 @@ int delete_ref(const char *msg, const char *refname,
654658 return 0 ;
655659}
656660
661+ int delete_ref (const char * msg , const char * refname ,
662+ const unsigned char * old_sha1 , unsigned int flags )
663+ {
664+ return refs_delete_ref (get_main_ref_store (), msg , refname ,
665+ old_sha1 , flags );
666+ }
667+
657668int copy_reflog_msg (char * buf , const char * msg )
658669{
659670 char * cp = buf ;
@@ -813,11 +824,20 @@ int read_ref_at(const char *refname, unsigned int flags, unsigned long at_time,
813824 return 1 ;
814825}
815826
816- struct ref_transaction * ref_transaction_begin (struct strbuf * err )
827+ struct ref_transaction * ref_store_transaction_begin (struct ref_store * refs ,
828+ struct strbuf * err )
817829{
830+ struct ref_transaction * tr ;
818831 assert (err );
819832
820- return xcalloc (1 , sizeof (struct ref_transaction ));
833+ tr = xcalloc (1 , sizeof (struct ref_transaction ));
834+ tr -> ref_store = refs ;
835+ return tr ;
836+ }
837+
838+ struct ref_transaction * ref_transaction_begin (struct strbuf * err )
839+ {
840+ return ref_store_transaction_begin (get_main_ref_store (), err );
821841}
822842
823843void ref_transaction_free (struct ref_transaction * transaction )
@@ -934,18 +954,20 @@ int update_ref_oid(const char *msg, const char *refname,
934954 old_oid ? old_oid -> hash : NULL , flags , onerr );
935955}
936956
937- int update_ref (const char * msg , const char * refname ,
938- const unsigned char * new_sha1 , const unsigned char * old_sha1 ,
939- unsigned int flags , enum action_on_err onerr )
957+ int refs_update_ref (struct ref_store * refs , const char * msg ,
958+ const char * refname , const unsigned char * new_sha1 ,
959+ const unsigned char * old_sha1 , unsigned int flags ,
960+ enum action_on_err onerr )
940961{
941962 struct ref_transaction * t = NULL ;
942963 struct strbuf err = STRBUF_INIT ;
943964 int ret = 0 ;
944965
945966 if (ref_type (refname ) == REF_TYPE_PSEUDOREF ) {
967+ assert (refs == get_main_ref_store ());
946968 ret = write_pseudoref (refname , new_sha1 , old_sha1 , & err );
947969 } else {
948- t = ref_transaction_begin ( & err );
970+ t = ref_store_transaction_begin ( refs , & err );
949971 if (!t ||
950972 ref_transaction_update (t , refname , new_sha1 , old_sha1 ,
951973 flags , msg , & err ) ||
@@ -976,6 +998,15 @@ int update_ref(const char *msg, const char *refname,
976998 return 0 ;
977999}
9781000
1001+ int update_ref (const char * msg , const char * refname ,
1002+ const unsigned char * new_sha1 ,
1003+ const unsigned char * old_sha1 ,
1004+ unsigned int flags , enum action_on_err onerr )
1005+ {
1006+ return refs_update_ref (get_main_ref_store (), msg , refname , new_sha1 ,
1007+ old_sha1 , flags , onerr );
1008+ }
1009+
9791010char * shorten_unambiguous_ref (const char * refname , int strict )
9801011{
9811012 int i ;
@@ -1607,7 +1638,7 @@ int create_symref(const char *ref_target, const char *refs_heads_master,
16071638int ref_transaction_commit (struct ref_transaction * transaction ,
16081639 struct strbuf * err )
16091640{
1610- struct ref_store * refs = get_main_ref_store () ;
1641+ struct ref_store * refs = transaction -> ref_store ;
16111642
16121643 return refs -> be -> transaction_commit (refs , transaction , err );
16131644}
@@ -1726,7 +1757,7 @@ int reflog_expire(const char *refname, const unsigned char *sha1,
17261757int initial_ref_transaction_commit (struct ref_transaction * transaction ,
17271758 struct strbuf * err )
17281759{
1729- struct ref_store * refs = get_main_ref_store () ;
1760+ struct ref_store * refs = transaction -> ref_store ;
17301761
17311762 return refs -> be -> initial_transaction_commit (refs , transaction , err );
17321763}
0 commit comments