#ifndef INCLUDE_cl_push_util_h__
#define INCLUDE_cl_push_util_h__
#include "git2/oid.h"
extern const git_oid OID_ZERO;
#define RECORD_CALLBACKS_INIT(data) \
{ GIT_REMOTE_CALLBACKS_VERSION, NULL, NULL, cred_acquire_cb, NULL, NULL, record_update_tips_cb, NULL, NULL, NULL, NULL, NULL, data }
typedef struct {
char *name;
git_oid old_oid;
git_oid new_oid;
} updated_tip;
typedef struct {
git_vector updated_tips;
git_vector statuses;
int pack_progress_calls;
int transfer_progress_calls;
} record_callbacks_data;
typedef struct {
const char *name;
const git_oid *oid;
} expected_ref;
typedef struct {
char *ref;
int success;
char *msg;
} push_status;
void updated_tip_free(updated_tip *t);
void record_callbacks_data_clear(record_callbacks_data *data);
int record_update_tips_cb(const char *refname, const git_oid *a, const git_oid *b, void *data);
int create_deletion_refspecs(git_vector *out, const git_remote_head **heads, size_t heads_len);
int record_ref_cb(git_remote_head *head, void *payload);
void verify_remote_refs(const git_remote_head *actual_refs[], size_t actual_refs_len, const expected_ref expected_refs[], size_t expected_refs_len);
#endif