refs: move head_ref{,_submodule} to the common code
These don't use any backend-specific functions. These were previously defined in terms of the do_head_ref helper function, but since they are otherwise identical, we don't need that function. Signed-off-by: David Turner <dturner@twopensource.com> Reviewed-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
David Turner committed
Apr 7, 2016 at 15:02 UTC
2bf68ed5aa79fcccba6ea4c021b15e51c019a85e
2 files changed
+23
-28
refs.c
+23
@@ -1080,3 +1080,26 @@ int rename_ref_available(const char *oldname, const char *newname)
1080
strbuf_release(&err);
1081
return ret;
1082
}
1083
+
1084
+int head_ref_submodule(const char *submodule, each_ref_fn fn, void *cb_data)
1085
+{
1086
+ struct object_id oid;
1087
+ int flag;
1088
+
1089
+ if (submodule) {
1090
+ if (resolve_gitlink_ref(submodule, "HEAD", oid.hash) == 0)
1091
+ return fn("HEAD", &oid, 0, cb_data);
1092
+
1093
+ return 0;
1094
+ }
1095
+
1096
+ if (!read_ref_full("HEAD", RESOLVE_REF_READING, oid.hash, &flag))
1097
+ return fn("HEAD", &oid, flag, cb_data);
1098
+
1099
+ return 0;
1100
+}
1101
+
1102
+int head_ref(each_ref_fn fn, void *cb_data)
1103
+{
1104
+ return head_ref_submodule(NULL, fn, cb_data);
1105
+}
refs/files-backend.c
-28
@@ -1745,34 +1745,6 @@ static int do_for_each_ref(struct ref_cache *refs, const char *base,
1745
return do_for_each_entry(refs, base, do_one_ref, &data);
1746
}
1747
1748
-static int do_head_ref(const char *submodule, each_ref_fn fn, void *cb_data)
1749
-{
1750
- struct object_id oid;
1751
- int flag;
1752
-
1753
- if (submodule) {
1754
- if (resolve_gitlink_ref(submodule, "HEAD", oid.hash) == 0)
1755
- return fn("HEAD", &oid, 0, cb_data);
1756
-
1757
- return 0;
1758
- }
1759
-
1760
- if (!read_ref_full("HEAD", RESOLVE_REF_READING, oid.hash, &flag))
1761
- return fn("HEAD", &oid, flag, cb_data);
1762
-
1763
- return 0;
1764
-}
1765
-
1766
-int head_ref(each_ref_fn fn, void *cb_data)
1767
-{
1768
- return do_head_ref(NULL, fn, cb_data);
1769
-}
1770
-
1771
-int head_ref_submodule(const char *submodule, each_ref_fn fn, void *cb_data)
1772
-{
1773
- return do_head_ref(submodule, fn, cb_data);
1774
-}
1775
-
1748
int for_each_ref(each_ref_fn fn, void *cb_data)
1749
{
1750
return do_for_each_ref(&ref_cache, "", fn, 0, 0, cb_data);