| 1 | #ifndef RERERE_H |
| 2 | #define RERERE_H |
| 3 | |
| 4 | #include "string-list.h" |
| 5 | |
| 6 | struct pathspec; |
| 7 | struct repository; |
| 8 | |
| 9 | #define RERERE_AUTOUPDATE 01 |
| 10 | #define RERERE_NOAUTOUPDATE 02 |
| 11 | #define RERERE_READONLY 04 |
| 12 | |
| 13 | /* |
| 14 | * Marks paths that have been hand-resolved and added to the |
| 15 | * index. Set in the util field of such paths after calling |
| 16 | * rerere_remaining. |
| 17 | */ |
| 18 | extern void *RERERE_RESOLVED; |
| 19 | |
| 20 | struct rerere_dir; |
| 21 | struct rerere_id { |
| 22 | struct rerere_dir *collection; |
| 23 | int variant; |
| 24 | }; |
| 25 | |
| 26 | int setup_rerere(struct repository *,struct string_list *, int); |
| 27 | #ifndef NO_THE_REPOSITORY_COMPATIBILITY_MACROS |
| 28 | #define rerere(flags) repo_rerere(the_repository, flags) |
| 29 | #endif |
| 30 | int repo_rerere(struct repository *, int); |
| 31 | /* |
| 32 | * Given the conflict ID and the name of a "file" used for replaying |
| 33 | * the recorded resolution (e.g. "preimage", "postimage"), return the |
| 34 | * path to that filesystem entity. With "file" specified with NULL, |
| 35 | * return the path to the directory that houses these files. |
| 36 | */ |
| 37 | const char *rerere_path(const struct rerere_id *, const char *file); |
| 38 | int rerere_forget(struct repository *, struct pathspec *); |
| 39 | int rerere_remaining(struct repository *, struct string_list *); |
| 40 | void rerere_clear(struct repository *, struct string_list *); |
| 41 | void rerere_gc(struct repository *, struct string_list *); |
| 42 | |
| 43 | #define OPT_RERERE_AUTOUPDATE(v) OPT_UYN(0, "rerere-autoupdate", (v), \ |
| 44 | N_("update the index with reused conflict resolution if possible")) |
| 45 | |
| 46 | #endif |