summaryrefslogtreecommitdiff
path: root/sha1-name.c
diff options
context:
space:
mode:
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>2019-04-16 09:33:22 (GMT)
committerJunio C Hamano <gitster@pobox.com>2019-04-16 09:56:52 (GMT)
commit8bb95572b05d70cce6ea6eef9396cdaf6b34b14f (patch)
tree313a25b897997cfa689aa407e55d44560521543b /sha1-name.c
parent7f07c033a6ee1a0751e0b136aca1f37258106109 (diff)
downloadgit-8bb95572b05d70cce6ea6eef9396cdaf6b34b14f.zip
git-8bb95572b05d70cce6ea6eef9396cdaf6b34b14f.tar.gz
git-8bb95572b05d70cce6ea6eef9396cdaf6b34b14f.tar.bz2
sha1-name.c: add repo_find_unique_abbrev_r()
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'sha1-name.c')
-rw-r--r--sha1-name.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/sha1-name.c b/sha1-name.c
index b9381aa..9b57787 100644
--- a/sha1-name.c
+++ b/sha1-name.c
@@ -626,15 +626,16 @@ static void find_abbrev_len_packed(struct min_abbrev_data *mad)
find_abbrev_len_for_pack(p, mad);
}
-int find_unique_abbrev_r(char *hex, const struct object_id *oid, int len)
+int repo_find_unique_abbrev_r(struct repository *r, char *hex,
+ const struct object_id *oid, int len)
{
struct disambiguate_state ds;
struct min_abbrev_data mad;
struct object_id oid_ret;
- const unsigned hexsz = the_hash_algo->hexsz;
+ const unsigned hexsz = r->hash_algo->hexsz;
if (len < 0) {
- unsigned long count = approximate_object_count();
+ unsigned long count = repo_approximate_object_count(r);
/*
* Add one because the MSB only tells us the highest bit set,
* not including the value of all the _other_ bits (so "15"
@@ -659,7 +660,7 @@ int find_unique_abbrev_r(char *hex, const struct object_id *oid, int len)
if (len == hexsz || !len)
return hexsz;
- mad.repo = the_repository;
+ mad.repo = r;
mad.init_len = len;
mad.cur_len = len;
mad.hex = hex;
@@ -681,13 +682,15 @@ int find_unique_abbrev_r(char *hex, const struct object_id *oid, int len)
return mad.cur_len;
}
-const char *find_unique_abbrev(const struct object_id *oid, int len)
+const char *repo_find_unique_abbrev(struct repository *r,
+ const struct object_id *oid,
+ int len)
{
static int bufno;
static char hexbuffer[4][GIT_MAX_HEXSZ + 1];
char *hex = hexbuffer[bufno];
bufno = (bufno + 1) % ARRAY_SIZE(hexbuffer);
- find_unique_abbrev_r(hex, oid, len);
+ repo_find_unique_abbrev_r(r, hex, oid, len);
return hex;
}