push: Provide situational hints for non-fast-forward errors
[gitweb.git] / cache.h
diff --git a/cache.h b/cache.h
index e12b15f4b92da906c50f7f51df95b126347e9441..427b600267a6f07fc00205648ead0c69a0118902 100644 (file)
--- a/cache.h
+++ b/cache.h
@@ -625,7 +625,8 @@ enum push_default_type {
        PUSH_DEFAULT_NOTHING = 0,
        PUSH_DEFAULT_MATCHING,
        PUSH_DEFAULT_UPSTREAM,
-       PUSH_DEFAULT_CURRENT
+       PUSH_DEFAULT_CURRENT,
+       PUSH_DEFAULT_UNSPECIFIED
 };
 
 extern enum branch_track git_branch_track;
@@ -950,7 +951,9 @@ struct cache_def {
 extern int has_symlink_leading_path(const char *name, int len);
 extern int threaded_has_symlink_leading_path(struct cache_def *, const char *, int);
 extern int check_leading_path(const char *name, int len);
+extern int threaded_check_leading_path(struct cache_def *cache, const char *name, int len);
 extern int has_dirs_only_path(const char *name, int len, int prefix_len);
+extern int threaded_has_dirs_only_path(struct cache_def *cache, const char *name, int len, int prefix_len);
 extern void schedule_dir_for_removal(const char *name, int len);
 extern void remove_scheduled_dirs(void);
 
@@ -1006,7 +1009,6 @@ struct ref {
        char *symref;
        unsigned int force:1,
                merge:1,
-               nonfastforward:1,
                deletion:1;
        enum {
                REF_STATUS_NONE = 0,
@@ -1017,6 +1019,10 @@ struct ref {
                REF_STATUS_REMOTE_REJECT,
                REF_STATUS_EXPECTING_REPORT
        } status;
+       enum {
+               NON_FF_HEAD = 1,
+               NON_FF_OTHER
+       } nonfastforward;
        char *remote_status;
        struct ref *peer_ref; /* when renaming */
        char name[FLEX_ARRAY]; /* more */