]> git.ipfire.org Git - thirdparty/git.git/blobdiff - cache.h
Merge branch 'jc/add-i-use-builtin-experimental'
[thirdparty/git.git] / cache.h
diff --git a/cache.h b/cache.h
index 4cad61ffa4eecf4e793971a4009d199f7c2f3a50..cee8aa5dc325a422ac6ba7a7795fb05afd8ae642 100644 (file)
--- a/cache.h
+++ b/cache.h
@@ -1557,21 +1557,32 @@ int parse_oid_hex_any(const char *hex, struct object_id *oid, const char **end);
  *
  * If the input was ok but there are not N branch switches in the
  * reflog, it returns 0.
- *
- * If "allowed" is non-zero, it is a treated as a bitfield of allowable
- * expansions: local branches ("refs/heads/"), remote branches
- * ("refs/remotes/"), or "HEAD". If no "allowed" bits are set, any expansion is
- * allowed, even ones to refs outside of those namespaces.
  */
 #define INTERPRET_BRANCH_LOCAL (1<<0)
 #define INTERPRET_BRANCH_REMOTE (1<<1)
 #define INTERPRET_BRANCH_HEAD (1<<2)
+struct interpret_branch_name_options {
+       /*
+        * If "allowed" is non-zero, it is a treated as a bitfield of allowable
+        * expansions: local branches ("refs/heads/"), remote branches
+        * ("refs/remotes/"), or "HEAD". If no "allowed" bits are set, any expansion is
+        * allowed, even ones to refs outside of those namespaces.
+        */
+       unsigned allowed;
+
+       /*
+        * If ^{upstream} or ^{push} (or equivalent) is requested, and the
+        * branch in question does not have such a reference, return -1 instead
+        * of die()-ing.
+        */
+       unsigned nonfatal_dangling_mark : 1;
+};
 int repo_interpret_branch_name(struct repository *r,
                               const char *str, int len,
                               struct strbuf *buf,
-                              unsigned allowed);
-#define interpret_branch_name(str, len, buf, allowed) \
-       repo_interpret_branch_name(the_repository, str, len, buf, allowed)
+                              const struct interpret_branch_name_options *options);
+#define interpret_branch_name(str, len, buf, options) \
+       repo_interpret_branch_name(the_repository, str, len, buf, options)
 
 int validate_headref(const char *ref);