transport: drop refnames from for_each_alternate_ref
None of the current callers use the refname parameter we pass to their callbacks. In theory somebody _could_ do so, but it's actually quite weird if you think about it: it's a ref in somebody else's repository. So the name has no meaning locally, and in fact there may be duplicates if there are multiple alternates. The users of this interface really only care about seeing some ref tips, since that promises that the alternate has the full commit graph reachable from there. So let's keep the information we pass back to the bare minimum. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Taylor Blau <me@ttaylorr.com> Acked-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Jeff King committed
Oct 8, 2018 at 11:09 UTC
bdf4276c91623cf57efefd2ada7fb3e0709e2230
4 files changed
+6
-8
builtin/receive-pack.c
+1
-2
@@ -280,8 +280,7 @@ static int show_ref_cb(const char *path_full, const struct object_id *oid,
280
return 0;
281
}
282
283
-static void show_one_alternate_ref(const char *refname,
284
- const struct object_id *oid,
283
+static void show_one_alternate_ref(const struct object_id *oid,
284
void *data)
285
{
286
struct oidset *seen = data;
fetch-pack.c
+1
-2
@@ -76,8 +76,7 @@ struct alternate_object_cache {
76
size_t nr, alloc;
77
};
78
79
-static void cache_one_alternate(const char *refname,
80
- const struct object_id *oid,
79
+static void cache_one_alternate(const struct object_id *oid,
80
void *vcache)
81
{
82
struct alternate_object_cache *cache = vcache;
transport.c
+3
-3
@@ -1336,7 +1336,7 @@ static void read_alternate_refs(const char *path,
1336
cmd.git_cmd = 1;
1337
argv_array_pushf(&cmd.args, "--git-dir=%s", path);
1338
argv_array_push(&cmd.args, "for-each-ref");
1339
- argv_array_push(&cmd.args, "--format=%(objectname) %(refname)");
1339
+ argv_array_push(&cmd.args, "--format=%(objectname)");
1340
cmd.env = local_repo_env;
1341
cmd.out = -1;
1342
@@ -1348,13 +1348,13 @@ static void read_alternate_refs(const char *path,
1348
struct object_id oid;
1349
1350
if (get_oid_hex(line.buf, &oid) ||
1351
- line.buf[GIT_SHA1_HEXSZ] != ' ') {
1351
+ line.buf[GIT_SHA1_HEXSZ]) {
1352
warning(_("invalid line while parsing alternate refs: %s"),
1353
line.buf);
1354
break;
1355
}
1356
1357
- cb(line.buf + GIT_SHA1_HEXSZ + 1, &oid, data);
1357
+ cb(&oid, data);
1358
}
1359
1360
fclose(fh);
transport.h
+1
-1
@@ -261,6 +261,6 @@ int transport_refs_pushed(struct ref *ref);
261
void transport_print_push_status(const char *dest, struct ref *refs,
262
int verbose, int porcelain, unsigned int *reject_reasons);
263
264
-typedef void alternate_ref_fn(const char *refname, const struct object_id *oid, void *);
264
+typedef void alternate_ref_fn(const struct object_id *oid, void *);
265
extern void for_each_alternate_ref(alternate_ref_fn, void *);
266
#endif