int check_ref_type(const struct ref *ref, int flags);
/*
- * Frees the entire list and peers of elements.
+ * Free a single ref and its peer, or an entire list of refs and their peers,
+ * respectively.
*/
+void free_one_ref(struct ref *ref);
void free_refs(struct ref *ref);
struct oid_array;
struct argv_array;
struct string_list;
struct ref **get_remote_heads(struct packet_reader *reader,
- struct ref **list, unsigned int flags,
- struct oid_array *extra_have,
- struct oid_array *shallow_points);
+ struct ref **list, unsigned int flags,
+ struct oid_array *extra_have,
+ struct oid_array *shallow_points);
/* Used for protocol v2 in order to retrieve refs from a remote */
struct ref **get_remote_refs(int fd_out, struct packet_reader *reader,
- struct ref **list, int for_push,
- const struct argv_array *ref_prefixes,
- const struct string_list *server_options);
+ struct ref **list, int for_push,
+ const struct argv_array *ref_prefixes,
+ const struct string_list *server_options);
int resolve_remote_symref(struct ref *ref, struct ref *list);
/* Reporting of tracking info */
int stat_tracking_info(struct branch *branch, int *num_ours, int *num_theirs,
- const char **upstream_name, enum ahead_behind_flags abf);
+ const char **upstream_name, int for_push,
+ enum ahead_behind_flags abf);
int format_tracking_info(struct branch *branch, struct strbuf *sb,
enum ahead_behind_flags abf);