Permalink
Cannot retrieve contributors at this time
| #ifndef SHALLOW_H | |
| #define SHALLOW_H | |
| #include "lockfile.h" | |
| #include "object.h" | |
| #include "repository.h" | |
| #include "strbuf.h" | |
| void set_alternate_shallow_file(struct repository *r, const char *path, int override); | |
| int register_shallow(struct repository *r, const struct object_id *oid); | |
| int unregister_shallow(const struct object_id *oid); | |
| int is_repository_shallow(struct repository *r); | |
| /* | |
| * Lock for updating the $GIT_DIR/shallow file. | |
| * | |
| * Use `commit_shallow_file()` to commit an update, or | |
| * `rollback_shallow_file()` to roll it back. In either case, any | |
| * in-memory cached information about which commits are shallow will be | |
| * appropriately invalidated so that future operations reflect the new | |
| * state. | |
| */ | |
| struct shallow_lock { | |
| struct lock_file lock; | |
| }; | |
| #define SHALLOW_LOCK_INIT { LOCK_INIT } | |
| /* commit $GIT_DIR/shallow and reset stat-validity checks */ | |
| int commit_shallow_file(struct repository *r, struct shallow_lock *lk); | |
| /* rollback $GIT_DIR/shallow and reset stat-validity checks */ | |
| void rollback_shallow_file(struct repository *r, struct shallow_lock *lk); | |
| struct commit_list *get_shallow_commits(struct object_array *heads, | |
| int depth, int shallow_flag, int not_shallow_flag); | |
| struct commit_list *get_shallow_commits_by_rev_list( | |
| int ac, const char **av, int shallow_flag, int not_shallow_flag); | |
| int write_shallow_commits(struct strbuf *out, int use_pack_protocol, | |
| const struct oid_array *extra); | |
| void setup_alternate_shallow(struct shallow_lock *shallow_lock, | |
| const char **alternate_shallow_file, | |
| const struct oid_array *extra); | |
| const char *setup_temporary_shallow(const struct oid_array *extra); | |
| void advertise_shallow_grafts(int); | |
| #define PRUNE_SHOW_ONLY 1 | |
| #define PRUNE_QUICK 2 | |
| void prune_shallow(unsigned options); | |
| /* | |
| * Initialize with prepare_shallow_info() or zero-initialize (equivalent to | |
| * prepare_shallow_info with a NULL oid_array). | |
| */ | |
| struct shallow_info { | |
| struct oid_array *shallow; | |
| int *ours, nr_ours; | |
| int *theirs, nr_theirs; | |
| struct oid_array *ref; | |
| /* for receive-pack */ | |
| uint32_t **used_shallow; | |
| int *need_reachability_test; | |
| int *reachable; | |
| int *shallow_ref; | |
| struct commit **commits; | |
| int nr_commits; | |
| }; | |
| void prepare_shallow_info(struct shallow_info *, struct oid_array *); | |
| void clear_shallow_info(struct shallow_info *); | |
| void remove_nonexistent_theirs_shallow(struct shallow_info *); | |
| void assign_shallow_commits_to_refs(struct shallow_info *info, | |
| uint32_t **used, | |
| int *ref_status); | |
| int delayed_reachability_test(struct shallow_info *si, int c); | |
| extern struct trace_key trace_shallow; | |
| #endif /* SHALLOW_H */ |