summaryrefslogtreecommitdiff
path: root/tests/diff/diff_helpers.h
blob: bf21f4b1f8ed5beb4fb825d6eb314a7f5a0ba217 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include "fileops.h"
#include "git2/diff.h"

extern git_tree *resolve_commit_oid_to_tree(
	git_repository *repo, const char *partial_oid);

typedef struct {
	int files;
	int files_binary;

	int file_status[10]; /* indexed by git_delta_t value */

	int hunks;
	int hunk_new_lines;
	int hunk_old_lines;

	int lines;
	int line_ctxt;
	int line_adds;
	int line_dels;

	/* optional arrays of expected specific values */
	const char **names;
	int *statuses;

	int debug;

} diff_expects;

typedef struct {
	const char *path;
	const char *matched_pathspec;
} notify_expected;

extern int diff_file_cb(
	const git_diff_delta *delta,
	float progress,
	void *cb_data);

extern int diff_print_file_cb(
	const git_diff_delta *delta,
	float progress,
	void *cb_data);

extern int diff_hunk_cb(
	const git_diff_delta *delta,
	const git_diff_hunk *hunk,
	void *cb_data);

extern int diff_line_cb(
	const git_diff_delta *delta,
	const git_diff_hunk *hunk,
	const git_diff_line *line,
	void *cb_data);

extern int diff_foreach_via_iterator(
	git_diff *diff,
	git_diff_file_cb file_cb,
	git_diff_hunk_cb hunk_cb,
	git_diff_line_cb line_cb,
	void *data);

extern void diff_print(FILE *fp, git_diff *diff);
extern void diff_print_raw(FILE *fp, git_diff *diff);