@@ -630,16 +630,20 @@ static int delete_pseudoref(const char *pseudoref, const unsigned char *old_sha1
630
630
return 0 ;
631
631
}
632
632
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 )
635
637
{
636
638
struct ref_transaction * transaction ;
637
639
struct strbuf err = STRBUF_INIT ;
638
640
639
- if (ref_type (refname ) == REF_TYPE_PSEUDOREF )
641
+ if (ref_type (refname ) == REF_TYPE_PSEUDOREF ) {
642
+ assert (refs == get_main_ref_store ());
640
643
return delete_pseudoref (refname , old_sha1 );
644
+ }
641
645
642
- transaction = ref_transaction_begin ( & err );
646
+ transaction = ref_store_transaction_begin ( refs , & err );
643
647
if (!transaction ||
644
648
ref_transaction_delete (transaction , refname , old_sha1 ,
645
649
flags , msg , & err ) ||
@@ -654,6 +658,13 @@ int delete_ref(const char *msg, const char *refname,
654
658
return 0 ;
655
659
}
656
660
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
+
657
668
int copy_reflog_msg (char * buf , const char * msg )
658
669
{
659
670
char * cp = buf ;
@@ -813,11 +824,20 @@ int read_ref_at(const char *refname, unsigned int flags, unsigned long at_time,
813
824
return 1 ;
814
825
}
815
826
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 )
817
829
{
830
+ struct ref_transaction * tr ;
818
831
assert (err );
819
832
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 );
821
841
}
822
842
823
843
void ref_transaction_free (struct ref_transaction * transaction )
@@ -934,18 +954,20 @@ int update_ref_oid(const char *msg, const char *refname,
934
954
old_oid ? old_oid -> hash : NULL , flags , onerr );
935
955
}
936
956
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 )
940
961
{
941
962
struct ref_transaction * t = NULL ;
942
963
struct strbuf err = STRBUF_INIT ;
943
964
int ret = 0 ;
944
965
945
966
if (ref_type (refname ) == REF_TYPE_PSEUDOREF ) {
967
+ assert (refs == get_main_ref_store ());
946
968
ret = write_pseudoref (refname , new_sha1 , old_sha1 , & err );
947
969
} else {
948
- t = ref_transaction_begin ( & err );
970
+ t = ref_store_transaction_begin ( refs , & err );
949
971
if (!t ||
950
972
ref_transaction_update (t , refname , new_sha1 , old_sha1 ,
951
973
flags , msg , & err ) ||
@@ -976,6 +998,15 @@ int update_ref(const char *msg, const char *refname,
976
998
return 0 ;
977
999
}
978
1000
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
+
979
1010
char * shorten_unambiguous_ref (const char * refname , int strict )
980
1011
{
981
1012
int i ;
@@ -1607,7 +1638,7 @@ int create_symref(const char *ref_target, const char *refs_heads_master,
1607
1638
int ref_transaction_commit (struct ref_transaction * transaction ,
1608
1639
struct strbuf * err )
1609
1640
{
1610
- struct ref_store * refs = get_main_ref_store () ;
1641
+ struct ref_store * refs = transaction -> ref_store ;
1611
1642
1612
1643
return refs -> be -> transaction_commit (refs , transaction , err );
1613
1644
}
@@ -1726,7 +1757,7 @@ int reflog_expire(const char *refname, const unsigned char *sha1,
1726
1757
int initial_ref_transaction_commit (struct ref_transaction * transaction ,
1727
1758
struct strbuf * err )
1728
1759
{
1729
- struct ref_store * refs = get_main_ref_store () ;
1760
+ struct ref_store * refs = transaction -> ref_store ;
1730
1761
1731
1762
return refs -> be -> initial_transaction_commit (refs , transaction , err );
1732
1763
}
0 commit comments