Merge branch 'jl/submodule-mv'
[gitweb.git] / cache.h
diff --git a/cache.h b/cache.h
index 3cff825d5c369f20dae01ab2dabedd98fc4381c1..bd6fb9f66418b5dc6441fb47fbeb63ae50f7f335 100644 (file)
--- a/cache.h
+++ b/cache.h
@@ -431,6 +431,8 @@ extern int path_inside_repo(const char *prefix, const char *path);
 extern int set_git_dir_init(const char *git_dir, const char *real_git_dir, int);
 extern int init_db(const char *template_dir, unsigned int flags);
 
+extern void sanitize_stdfds(void);
+
 #define alloc_nr(x) (((x)+16)*3/2)
 
 /*
@@ -482,7 +484,7 @@ extern int remove_file_from_index(struct index_state *, const char *path);
 extern int add_to_index(struct index_state *, const char *path, struct stat *, int flags);
 extern int add_file_to_index(struct index_state *, const char *path, int flags);
 extern struct cache_entry *make_cache_entry(unsigned int mode, const unsigned char *sha1, const char *path, int stage, int refresh);
-extern int ce_same_name(struct cache_entry *a, struct cache_entry *b);
+extern int ce_same_name(const struct cache_entry *a, const struct cache_entry *b);
 extern int index_name_is_other(const struct index_state *, const char *, int);
 extern void *read_blob_data_from_index(struct index_state *, const char *, unsigned long *);
 
@@ -561,6 +563,7 @@ extern int assume_unchanged;
 extern int prefer_symlink_refs;
 extern int log_all_ref_updates;
 extern int warn_ambiguous_refs;
+extern int warn_on_object_refname_ambiguity;
 extern int shared_repository;
 extern const char *apply_default_whitespace;
 extern const char *apply_default_ignorewhitespace;
@@ -744,7 +747,7 @@ int is_directory(const char *);
 const char *real_path(const char *path);
 const char *real_path_if_valid(const char *path);
 const char *absolute_path(const char *path);
-const char *relative_path(const char *abs, const char *base);
+const char *relative_path(const char *in, const char *prefix, struct strbuf *sb);
 int normalize_path_copy_len(char *dst, const char *src, int *prefix_len);
 int normalize_path_copy(char *dst, const char *src);
 int longest_ancestor_length(const char *path, struct string_list *prefixes);
@@ -1022,68 +1025,6 @@ struct pack_entry {
        struct packed_git *p;
 };
 
-struct ref {
-       struct ref *next;
-       unsigned char old_sha1[20];
-       unsigned char new_sha1[20];
-       char *symref;
-       unsigned int
-               force:1,
-               forced_update:1,
-               deletion:1,
-               matched:1;
-
-       /*
-        * Order is important here, as we write to FETCH_HEAD
-        * in numeric order. And the default NOT_FOR_MERGE
-        * should be 0, so that xcalloc'd structures get it
-        * by default.
-        */
-       enum {
-               FETCH_HEAD_MERGE = -1,
-               FETCH_HEAD_NOT_FOR_MERGE = 0,
-               FETCH_HEAD_IGNORE = 1
-       } fetch_head_status;
-
-       enum {
-               REF_STATUS_NONE = 0,
-               REF_STATUS_OK,
-               REF_STATUS_REJECT_NONFASTFORWARD,
-               REF_STATUS_REJECT_ALREADY_EXISTS,
-               REF_STATUS_REJECT_NODELETE,
-               REF_STATUS_REJECT_FETCH_FIRST,
-               REF_STATUS_REJECT_NEEDS_FORCE,
-               REF_STATUS_UPTODATE,
-               REF_STATUS_REMOTE_REJECT,
-               REF_STATUS_EXPECTING_REPORT
-       } status;
-       char *remote_status;
-       struct ref *peer_ref; /* when renaming */
-       char name[FLEX_ARRAY]; /* more */
-};
-
-#define REF_NORMAL     (1u << 0)
-#define REF_HEADS      (1u << 1)
-#define REF_TAGS       (1u << 2)
-
-extern struct ref *find_ref_by_name(const struct ref *list, const char *name);
-
-#define CONNECT_VERBOSE       (1u << 0)
-extern struct child_process *git_connect(int fd[2], const char *url, const char *prog, int flags);
-extern int finish_connect(struct child_process *conn);
-extern int git_connection_is_socket(struct child_process *conn);
-struct extra_have_objects {
-       int nr, alloc;
-       unsigned char (*array)[20];
-};
-extern struct ref **get_remote_heads(int in, char *src_buf, size_t src_len,
-                                    struct ref **list, unsigned int flags,
-                                    struct extra_have_objects *);
-extern int server_supports(const char *feature);
-extern int parse_feature_request(const char *features, const char *feature);
-extern const char *server_feature_value(const char *feature, int *len_ret);
-extern const char *parse_feature_value(const char *feature_list, const char *feature, int *len_ret);
-
 extern struct packed_git *parse_pack_index(unsigned char *sha1, const char *idx_path);
 
 /* A hook for count-objects to report invalid files in pack directory */
@@ -1116,7 +1057,9 @@ extern int unpack_object_header(struct packed_git *, struct pack_window **, off_
 
 struct object_info {
        /* Request */
+       enum object_type *typep;
        unsigned long *sizep;
+       unsigned long *disk_sizep;
 
        /* Response */
        enum {
@@ -1160,11 +1103,15 @@ extern int update_server_info(int);
 typedef int (*config_fn_t)(const char *, const char *, void *);
 extern int git_default_config(const char *, const char *, void *);
 extern int git_config_from_file(config_fn_t fn, const char *, void *);
+extern int git_config_from_buf(config_fn_t fn, const char *name,
+                              const char *buf, size_t len, void *data);
 extern void git_config_push_parameter(const char *text);
 extern int git_config_from_parameters(config_fn_t fn, void *data);
 extern int git_config(config_fn_t fn, void *);
 extern int git_config_with_options(config_fn_t fn, void *,
-                                  const char *filename, int respect_includes);
+                                  const char *filename,
+                                  const char *blob_ref,
+                                  int respect_includes);
 extern int git_config_early(config_fn_t fn, void *, const char *repo_config);
 extern int git_parse_ulong(const char *, unsigned long *);
 extern int git_config_int(const char *, const char *);