426
NULL, NULL);
427
}
428
429
-static int for_each_filter_refs(const char *refname, const char *referent,
430
- const struct object_id *oid,
431
- int flags, void *data)
429
+static int for_each_filter_refs(const struct reference *ref, void *data)
430
{
431
struct for_each_ref_filter *filter = data;
432
435
- if (wildmatch(filter->pattern, refname, 0))
433
+ if (wildmatch(filter->pattern, ref->name, 0))
434
return 0;
437
- if (filter->prefix)
438
- skip_prefix(refname, filter->prefix, &refname);
439
- return filter->fn(refname, referent, oid, flags, filter->cb_data);
435
+ if (filter->prefix) {
436
+ struct reference skipped = *ref;
437
+ skip_prefix(skipped.name, filter->prefix, &skipped.name);
438
+ return filter->fn(&skipped, filter->cb_data);
439
+ } else {
440
+ return filter->fn(ref, filter->cb_data);
441
+ }
442
}
443
444
struct warn_if_dangling_data {
449
int dry_run;
450
};
451
450
-static int warn_if_dangling_symref(const char *refname, const char *referent UNUSED,
451
- const struct object_id *oid UNUSED,
452
- int flags, void *cb_data)
452
+static int warn_if_dangling_symref(const struct reference *ref, void *cb_data)
453
{
454
struct warn_if_dangling_data *d = cb_data;
455
const char *resolves_to, *msg;
456
457
- if (!(flags & REF_ISSYMREF))
457
+ if (!(ref->flags & REF_ISSYMREF))
458
return 0;
459
460
- resolves_to = refs_resolve_ref_unsafe(d->refs, refname, 0, NULL, NULL);
460
+ resolves_to = refs_resolve_ref_unsafe(d->refs, ref->name, 0, NULL, NULL);
461
if (!resolves_to
462
|| !string_list_has_string(d->refnames, resolves_to)) {
463
return 0;
466
msg = d->dry_run
467
? _("%s%s will become dangling after %s is deleted\n")
468
: _("%s%s has become dangling after %s was deleted\n");
469
- fprintf(d->fp, msg, d->indent, refname, resolves_to);
469
+ fprintf(d->fp, msg, d->indent, ref->name, resolves_to);
470
return 0;
471
}
472
507
int flag;
508
509
strbuf_addf(&buf, "%sHEAD", get_git_namespace());
510
- if (!refs_read_ref_full(refs, buf.buf, RESOLVE_REF_READING, &oid, &flag))
511
- ret = fn(buf.buf, NULL, &oid, flag, cb_data);
510
+ if (!refs_read_ref_full(refs, buf.buf, RESOLVE_REF_READING, &oid, &flag)) {
511
+ struct reference ref = {
512
+ .name = buf.buf,
513
+ .oid = &oid,
514
+ .flags = flag,
515
+ };
516
+
517
+ ret = fn(&ref, cb_data);
518
+ }
519
strbuf_release(&buf);
520
521
return ret;
1748
int flag;
1749
1750
if (refs_resolve_ref_unsafe(refs, "HEAD", RESOLVE_REF_READING,
1744
- &oid, &flag))
1745
- return fn("HEAD", NULL, &oid, flag, cb_data);
1751
+ &oid, &flag)) {
1752
+ struct reference ref = {
1753
+ .name = "HEAD",
1754
+ .oid = &oid,
1755
+ .flags = flag,
1756
+ };
1757
+
1758
+ return fn(&ref, cb_data);
1759
+ }
1760
1761
return 0;
1762
}
2767
void *cb_data;
2768
};
2769
2756
-static int do_for_each_reflog_helper(const char *refname,
2757
- const char *referent UNUSED,
2758
- const struct object_id *oid UNUSED,
2759
- int flags UNUSED,
2760
- void *cb_data)
2770
+static int do_for_each_reflog_helper(const struct reference *ref, void *cb_data)
2771
{
2772
struct do_for_each_reflog_help *hp = cb_data;
2763
- return hp->fn(refname, hp->cb_data);
2773
+ return hp->fn(ref->name, hp->cb_data);
2774
}
2775
2776
int refs_for_each_reflog(struct ref_store *refs, each_reflog_fn fn, void *cb_data)
2986
uint64_t index;
2987
};
2988
2979
-static int migrate_one_ref(const char *refname, const char *referent UNUSED, const struct object_id *oid,
2980
- int flags, void *cb_data)
2989
+static int migrate_one_ref(const struct reference *ref, void *cb_data)
2990
{
2991
struct migration_data *data = cb_data;
2992
struct strbuf symref_target = STRBUF_INIT;
2993
int ret;
2994
2986
- if (flags & REF_ISSYMREF) {
2987
- ret = refs_read_symbolic_ref(data->old_refs, refname, &symref_target);
2995
+ if (ref->flags & REF_ISSYMREF) {
2996
+ ret = refs_read_symbolic_ref(data->old_refs, ref->name, &symref_target);
2997
if (ret < 0)
2998
goto done;
2999
2991
- ret = ref_transaction_update(data->transaction, refname, NULL, null_oid(the_hash_algo),
3000
+ ret = ref_transaction_update(data->transaction, ref->name, NULL, null_oid(the_hash_algo),
3001
symref_target.buf, NULL,
3002
REF_SKIP_CREATE_REFLOG | REF_NO_DEREF, NULL, data->errbuf);
3003
if (ret < 0)
3004
goto done;
3005
} else {
2997
- ret = ref_transaction_create(data->transaction, refname, oid, NULL,
3006
+ ret = ref_transaction_create(data->transaction, ref->name, ref->oid, NULL,
3007
REF_SKIP_CREATE_REFLOG | REF_SKIP_OID_VERIFICATION,
3008
NULL, data->errbuf);
3009
if (ret < 0)