]> git.ipfire.org Git - thirdparty/git.git/blobdiff - remote.h
config.mak.uname: remove unused the NO_R_TO_GCC_LINKER flag
[thirdparty/git.git] / remote.h
index 5e3ea5a26deb1d0db7deb6ff9ed2f3ef778084d4..d0e3f51574c11423ec8b8d17ca373eddc13ae753 100644 (file)
--- a/remote.h
+++ b/remote.h
@@ -93,6 +93,14 @@ int for_each_remote(each_remote_fn fn, void *priv);
 
 int remote_has_url(struct remote *remote, const char *url);
 
+struct ref_push_report {
+       const char *ref_name;
+       struct object_id *old_oid;
+       struct object_id *new_oid;
+       unsigned int forced_update:1;
+       struct ref_push_report *next;
+};
+
 struct ref {
        struct ref *next;
        struct object_id old_oid;
@@ -140,6 +148,7 @@ struct ref {
                REF_STATUS_ATOMIC_PUSH_FAILED
        } status;
        char *remote_status;
+       struct ref_push_report *report;
        struct ref *peer_ref; /* when renaming */
        char name[FLEX_ARRAY]; /* more */
 };
@@ -193,6 +202,12 @@ int resolve_remote_symref(struct ref *ref, struct ref *list);
  */
 struct ref *ref_remove_duplicates(struct ref *ref_map);
 
+/*
+ * Remove all entries in the input list which match any negative refspec in
+ * the refspec list.
+ */
+struct ref *apply_negative_refspecs(struct ref *ref_map, struct refspec *rs);
+
 int query_refspecs(struct refspec *rs, struct refspec_item *query);
 char *apply_refspecs(struct refspec *rs, const char *name);
 
@@ -205,7 +220,8 @@ void set_ref_status_for_push(struct ref *remote_refs, int send_mirror,
 /*
  * Given a list of the remote refs and the specification of things to
  * fetch, makes a (separate) list of the refs to fetch and the local
- * refs to store into.
+ * refs to store into. Note that negative refspecs are ignored here, and
+ * should be handled separately.
  *
  * *tail is the pointer to the tail pointer of the list of results
  * beforehand, and will be set to the tail pointer of the list of