6 #include "repository.h"
9 void set_alternate_shallow_file(struct repository
*r
, const char *path
, int override
);
10 int register_shallow(struct repository
*r
, const struct object_id
*oid
);
11 int unregister_shallow(const struct object_id
*oid
);
12 int is_repository_shallow(struct repository
*r
);
15 * Lock for updating the $GIT_DIR/shallow file.
17 * Use `commit_shallow_file()` to commit an update, or
18 * `rollback_shallow_file()` to roll it back. In either case, any
19 * in-memory cached information about which commits are shallow will be
20 * appropriately invalidated so that future operations reflect the new
24 struct lock_file lock
;
26 #define SHALLOW_LOCK_INIT { LOCK_INIT }
28 /* commit $GIT_DIR/shallow and reset stat-validity checks */
29 int commit_shallow_file(struct repository
*r
, struct shallow_lock
*lk
);
30 /* rollback $GIT_DIR/shallow and reset stat-validity checks */
31 void rollback_shallow_file(struct repository
*r
, struct shallow_lock
*lk
);
33 struct commit_list
*get_shallow_commits(struct object_array
*heads
,
34 int depth
, int shallow_flag
, int not_shallow_flag
);
35 struct commit_list
*get_shallow_commits_by_rev_list(
36 int ac
, const char **av
, int shallow_flag
, int not_shallow_flag
);
37 int write_shallow_commits(struct strbuf
*out
, int use_pack_protocol
,
38 const struct oid_array
*extra
);
40 void setup_alternate_shallow(struct shallow_lock
*shallow_lock
,
41 const char **alternate_shallow_file
,
42 const struct oid_array
*extra
);
44 const char *setup_temporary_shallow(const struct oid_array
*extra
);
46 void advertise_shallow_grafts(int);
48 #define PRUNE_SHOW_ONLY 1
50 void prune_shallow(unsigned options
);
53 * Initialize with prepare_shallow_info() or zero-initialize (equivalent to
54 * prepare_shallow_info with a NULL oid_array).
57 struct oid_array
*shallow
;
59 int *theirs
, nr_theirs
;
60 struct oid_array
*ref
;
62 /* for receive-pack */
63 uint32_t **used_shallow
;
64 int *need_reachability_test
;
67 struct commit
**commits
;
71 void prepare_shallow_info(struct shallow_info
*, struct oid_array
*);
72 void clear_shallow_info(struct shallow_info
*);
73 void remove_nonexistent_theirs_shallow(struct shallow_info
*);
74 void assign_shallow_commits_to_refs(struct shallow_info
*info
,
77 int delayed_reachability_test(struct shallow_info
*si
, int c
);
79 extern struct trace_key trace_shallow
;
81 #endif /* SHALLOW_H */