#ifndef RANGE_DIFF_H #define RANGE_DIFF_H #include "diff.h" #include "strvec.h" #define RANGE_DIFF_CREATION_FACTOR_DEFAULT 60 #define RANGE_DIFF_MAX_MEMORY_DEFAULT \ (sizeof(void*) >= 8 ? \ ((size_t)(1024L * 1024L) * (size_t)(4L * 1024L)) : /* 4GB on 64-bit */ \ ((size_t)(1024L * 1024L) * (size_t)(2L * 1024L))) /* 2GB on 32-bit */ /* * A much higher value than the default, when we KNOW we are comparing * the same series (e.g., used when format-patch calls range-diff). */ #define CREATION_FACTOR_FOR_THE_SAME_SERIES 999 struct range_diff_options { int creation_factor; unsigned dual_color:1; unsigned left_only:1, right_only:1; unsigned include_merges:1; size_t max_memory; const struct diff_options *diffopt; /* may be NULL */ const struct strvec *other_arg; /* may be NULL */ }; /* * Compare series of commits in `range1` and `range2`, and emit to the * standard output. */ int show_range_diff(const char *range1, const char *range2, struct range_diff_options *opts); /* * Determine whether the given argument is usable as a range argument of `git * range-diff`, e.g. A..B. */ int is_range_diff_range(const char *arg); #endif