path: root/rerere.h
diff options
authorJunio C Hamano <>2015-07-05 00:38:34 (GMT)
committerJunio C Hamano <>2015-07-24 23:05:26 (GMT)
commit1d51eced103f1c3e36beb6c1e01a413660910a50 (patch)
treebc4a5916f96363e93874202a84e1f19e39f2de0b /rerere.h
parent18bb99342fdb4b612ae45be3fef084ceebd498a0 (diff)
rerere: use "struct rerere_id" instead of "char *" for conflict ID
This gives a thin abstraction between the conflict ID that is a hash value obtained by inspecting the conflicts and the name of the directory under $GIT_DIR/rr-cache/, in which the previous resolution is recorded to be replayed. The plan is to make sure that the presence of the directory does not imply the presense of a previous resolution and vice-versa, and later allow us to have more than one pair of <preimage, postimage> for a given conflict ID. Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'rerere.h')
1 files changed, 11 insertions, 1 deletions
diff --git a/rerere.h b/rerere.h
index f998eba..ce545d0 100644
--- a/rerere.h
+++ b/rerere.h
@@ -15,9 +15,19 @@ struct pathspec;
extern void *RERERE_RESOLVED;
+struct rerere_id {
+ char hex[41];
extern int setup_rerere(struct string_list *, int);
extern int rerere(int);
-extern const char *rerere_path(const char *id, const char *file);
+ * Given the conflict ID and the name of a "file" used for replaying
+ * the recorded resolution (e.g. "preimage", "postimage"), return the
+ * path to that filesystem entity. With "file" specified with NULL,
+ * return the path to the directory that houses these files.
+ */
+extern const char *rerere_path(const struct rerere_id *, const char *file);
extern int rerere_forget(struct pathspec *);
extern int rerere_remaining(struct string_list *);
extern void rerere_clear(struct string_list *);