@@ -1721,32 +1721,33 @@ static int do_for_each_ref(struct ref_cache *refs, const char *base,
return do_for_each_entry(refs, base, do_one_ref, &data);
}
-static int do_head_ref(const char *submodule, each_ref_fn fn, void *cb_data)
+static int do_one_head_ref(const char *ref, const char *submodule,
+ each_ref_fn fn, void *cb_data)
{
unsigned char sha1[20];
int flag;
if (submodule) {
- if (resolve_gitlink_ref(submodule, "HEAD", sha1) == 0)
- return fn("HEAD", sha1, 0, cb_data);
+ if (resolve_gitlink_ref(submodule, ref, sha1) == 0)
+ return fn(ref, sha1, 0, cb_data);
return 0;
}
- if (!read_ref_full("HEAD", sha1, 1, &flag))
- return fn("HEAD", sha1, flag, cb_data);
+ if (!read_ref_full(ref, sha1, 1, &flag))
+ return fn(ref, sha1, flag, cb_data);
return 0;
}
int head_ref(each_ref_fn fn, void *cb_data)
{
- return do_head_ref(NULL, fn, cb_data);
+ return do_one_head_ref("HEAD", NULL, fn, cb_data);
}
int head_ref_submodule(const char *submodule, each_ref_fn fn, void *cb_data)
{
- return do_head_ref(submodule, fn, cb_data);
+ return do_one_head_ref("HEAD", submodule, fn, cb_data);
}
int for_each_ref(each_ref_fn fn, void *cb_data)