diff options
author | Junio C Hamano <gitster@pobox.com> | 2015-07-16 14:50:05 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-02-08 15:01:15 -0800 |
commit | 1869bbe1ce28d2b8024d5fac4267c0428483e6fb (patch) | |
tree | f44a516158ecaedd56883b6d189fc35d2c5920d7 /rerere.h | |
parent | f58316db0ef1b25506c8cd6cc86b3071243a672a (diff) | |
download | git-1869bbe1ce28d2b8024d5fac4267c0428483e6fb.tar.gz |
rerere: split conflict ID further
The plan is to keep assigning the backward compatible conflict ID
based on the hash of the (normalized) text of conflicts, keep using
that conflict ID as the directory name under $GIT_DIR/rr-cache/, but
allow each conflicted path to use a separate "variant" to record
resolutions, i.e. having more than one <preimage,postimage> pairs
under $GIT_DIR/rr-cache/$ID/ directory. As the first step in that
direction, separate the shared "conflict ID" out of the rerere_id
structure.
The plan is to keep information per $ID in rerere_dir, that can be
shared among rerere_id that is per conflicted path.
When we are done with rerere(), which can be directly called from
other programs like "git apply", "git commit" and "git merge", the
shared rerere_dir structures can be freed entirely, so they are not
reference-counted and they are not freed when we release rerere_id's
that reference them.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'rerere.h')
-rw-r--r-- | rerere.h | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -15,8 +15,9 @@ struct pathspec; */ extern void *RERERE_RESOLVED; +struct rerere_dir; struct rerere_id { - char hex[41]; + struct rerere_dir *collection; }; extern int setup_rerere(struct string_list *, int); |