refs.c: make get_main_ref_store() public and use it
get_ref_store() will soon be renamed to get_submodule_ref_store(). Together with future get_worktree_ref_store(), the three functions provide an appropriate ref store for different operation modes. New APIs will be added to operate directly on ref stores. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nguyễn Thái Ngọc Duy committed
Mar 26, 2017 at 09:42 UTC
077be78d7ff0d44cab311da315b2f8dbd2a0d57b
3 files changed
+22
-19
refs.c
+18
-18
@@ -1314,7 +1314,7 @@ const char *resolve_ref_recursively(struct ref_store *refs,
1314
/* backend functions */
1315
int refs_init_db(struct strbuf *err)
1316
{
1317
- struct ref_store *refs = get_ref_store(NULL);
1317
+ struct ref_store *refs = get_main_ref_store();
1318
1319
return refs->be->init_db(refs, err);
1320
}
@@ -1322,7 +1322,7 @@ int refs_init_db(struct strbuf *err)
1322
const char *resolve_ref_unsafe(const char *refname, int resolve_flags,
1323
unsigned char *sha1, int *flags)
1324
{
1325
- return resolve_ref_recursively(get_ref_store(NULL), refname,
1325
+ return resolve_ref_recursively(get_main_ref_store(), refname,
1326
resolve_flags, sha1, flags);
1327
}
1328
@@ -1428,7 +1428,7 @@ static struct ref_store *ref_store_init(const char *submodule)
1428
return refs;
1429
}
1430
1431
-static struct ref_store *get_main_ref_store(void)
1431
+struct ref_store *get_main_ref_store(void)
1432
{
1433
if (main_ref_store)
1434
return main_ref_store;
@@ -1488,14 +1488,14 @@ void base_ref_store_init(struct ref_store *refs,
1488
/* backend functions */
1489
int pack_refs(unsigned int flags)
1490
{
1491
- struct ref_store *refs = get_ref_store(NULL);
1491
+ struct ref_store *refs = get_main_ref_store();
1492
1493
return refs->be->pack_refs(refs, flags);
1494
}
1495
1496
int peel_ref(const char *refname, unsigned char *sha1)
1497
{
1498
- struct ref_store *refs = get_ref_store(NULL);
1498
+ struct ref_store *refs = get_main_ref_store();
1499
1500
return refs->be->peel_ref(refs, refname, sha1);
1501
}
@@ -1503,7 +1503,7 @@ int peel_ref(const char *refname, unsigned char *sha1)
1503
int create_symref(const char *ref_target, const char *refs_heads_master,
1504
const char *logmsg)
1505
{
1506
- struct ref_store *refs = get_ref_store(NULL);
1506
+ struct ref_store *refs = get_main_ref_store();
1507
1508
return refs->be->create_symref(refs, ref_target, refs_heads_master,
1509
logmsg);
@@ -1512,7 +1512,7 @@ int create_symref(const char *ref_target, const char *refs_heads_master,
1512
int ref_transaction_commit(struct ref_transaction *transaction,
1513
struct strbuf *err)
1514
{
1515
- struct ref_store *refs = get_ref_store(NULL);
1515
+ struct ref_store *refs = get_main_ref_store();
1516
1517
return refs->be->transaction_commit(refs, transaction, err);
1518
}
@@ -1522,14 +1522,14 @@ int verify_refname_available(const char *refname,
1522
const struct string_list *skip,
1523
struct strbuf *err)
1524
{
1525
- struct ref_store *refs = get_ref_store(NULL);
1525
+ struct ref_store *refs = get_main_ref_store();
1526
1527
return refs->be->verify_refname_available(refs, refname, extra, skip, err);
1528
}
1529
1530
int for_each_reflog(each_ref_fn fn, void *cb_data)
1531
{
1532
- struct ref_store *refs = get_ref_store(NULL);
1532
+ struct ref_store *refs = get_main_ref_store();
1533
struct ref_iterator *iter;
1534
1535
iter = refs->be->reflog_iterator_begin(refs);
@@ -1540,7 +1540,7 @@ int for_each_reflog(each_ref_fn fn, void *cb_data)
1540
int for_each_reflog_ent_reverse(const char *refname, each_reflog_ent_fn fn,
1541
void *cb_data)
1542
{
1543
- struct ref_store *refs = get_ref_store(NULL);
1543
+ struct ref_store *refs = get_main_ref_store();
1544
1545
return refs->be->for_each_reflog_ent_reverse(refs, refname,
1546
fn, cb_data);
@@ -1549,14 +1549,14 @@ int for_each_reflog_ent_reverse(const char *refname, each_reflog_ent_fn fn,
1549
int for_each_reflog_ent(const char *refname, each_reflog_ent_fn fn,
1550
void *cb_data)
1551
{
1552
- struct ref_store *refs = get_ref_store(NULL);
1552
+ struct ref_store *refs = get_main_ref_store();
1553
1554
return refs->be->for_each_reflog_ent(refs, refname, fn, cb_data);
1555
}
1556
1557
int reflog_exists(const char *refname)
1558
{
1559
- struct ref_store *refs = get_ref_store(NULL);
1559
+ struct ref_store *refs = get_main_ref_store();
1560
1561
return refs->be->reflog_exists(refs, refname);
1562
}
@@ -1564,14 +1564,14 @@ int reflog_exists(const char *refname)
1564
int safe_create_reflog(const char *refname, int force_create,
1565
struct strbuf *err)
1566
{
1567
- struct ref_store *refs = get_ref_store(NULL);
1567
+ struct ref_store *refs = get_main_ref_store();
1568
1569
return refs->be->create_reflog(refs, refname, force_create, err);
1570
}
1571
1572
int delete_reflog(const char *refname)
1573
{
1574
- struct ref_store *refs = get_ref_store(NULL);
1574
+ struct ref_store *refs = get_main_ref_store();
1575
1576
return refs->be->delete_reflog(refs, refname);
1577
}
@@ -1583,7 +1583,7 @@ int reflog_expire(const char *refname, const unsigned char *sha1,
1583
reflog_expiry_cleanup_fn cleanup_fn,
1584
void *policy_cb_data)
1585
{
1586
- struct ref_store *refs = get_ref_store(NULL);
1586
+ struct ref_store *refs = get_main_ref_store();
1587
1588
return refs->be->reflog_expire(refs, refname, sha1, flags,
1589
prepare_fn, should_prune_fn,
@@ -1593,21 +1593,21 @@ int reflog_expire(const char *refname, const unsigned char *sha1,
1593
int initial_ref_transaction_commit(struct ref_transaction *transaction,
1594
struct strbuf *err)
1595
{
1596
- struct ref_store *refs = get_ref_store(NULL);
1596
+ struct ref_store *refs = get_main_ref_store();
1597
1598
return refs->be->initial_transaction_commit(refs, transaction, err);
1599
}
1600
1601
int delete_refs(struct string_list *refnames, unsigned int flags)
1602
{
1603
- struct ref_store *refs = get_ref_store(NULL);
1603
+ struct ref_store *refs = get_main_ref_store();
1604
1605
return refs->be->delete_refs(refs, refnames, flags);
1606
}
1607
1608
int rename_ref(const char *oldref, const char *newref, const char *logmsg)
1609
{
1610
- struct ref_store *refs = get_ref_store(NULL);
1610
+ struct ref_store *refs = get_main_ref_store();
1611
1612
return refs->be->rename_ref(refs, oldref, newref, logmsg);
1613
}
refs.h
+3
@@ -2,6 +2,7 @@
2
#define REFS_H
3
4
struct object_id;
5
+struct ref_store;
6
struct strbuf;
7
struct string_list;
8
@@ -560,4 +561,6 @@ int reflog_expire(const char *refname, const unsigned char *sha1,
561
562
int ref_storage_backend_exists(const char *name);
563
564
+struct ref_store *get_main_ref_store(void);
565
+
566
#endif /* REFS_H */
refs/files-backend.c
+1
-1
@@ -3163,7 +3163,7 @@ int set_worktree_head_symref(const char *gitdir, const char *target, const char
3163
* backends. This function needs to die.
3164
*/
3165
struct files_ref_store *refs =
3166
- files_downcast(get_ref_store(NULL), 0, "set_head_symref");
3166
+ files_downcast(get_main_ref_store(), 0, "set_head_symref");
3167
3168
static struct lock_file head_lock;
3169
struct ref_lock *lock;