rerere.hon commit Sync with maint (a9a63af)
   1#ifndef RERERE_H
   2#define RERERE_H
   3
   4#include "string-list.h"
   5
   6struct pathspec;
   7struct 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 */
  18extern void *RERERE_RESOLVED;
  19
  20struct rerere_dir;
  21struct rerere_id {
  22        struct rerere_dir *collection;
  23        int variant;
  24};
  25
  26int 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
  30int 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 */
  37const char *rerere_path(const struct rerere_id *, const char *file);
  38int rerere_forget(struct repository *, struct pathspec *);
  39int rerere_remaining(struct repository *, struct string_list *);
  40void rerere_clear(struct repository *, struct string_list *);
  41void 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