summaryrefslogtreecommitdiff
path: root/diff.h
blob: 8f269b27721c3025a24c89bf16f32a6490397180 (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
/*
 * Copyright (C) 2005 Junio C Hamano
 */
#ifndef DIFF_H
#define DIFF_H

extern void diff_addremove(int addremove,
			   unsigned mode,
			   const unsigned char *sha1,
			   const char *base,
			   const char *path);

extern void diff_change(unsigned mode1, unsigned mode2,
			     const unsigned char *sha1,
			     const unsigned char *sha2,
			     const char *base, const char *path);

extern void diff_unmerge(const char *path);

/* These are for diff-tree-helper */

struct diff_spec {
	union {
		const char *name;       /* path on the filesystem */
		unsigned char sha1[20]; /* blob object ID */
	} u;
	unsigned short mode;	 /* file mode */
	unsigned sha1_valid : 1; /* if true, use u.sha1 and trust mode.
				  * (however with a NULL SHA1, read them
				  * from the file!).
				  * if false, use u.name and read mode from
				  * the filesystem.
				  */
	unsigned file_valid : 1; /* if false the file does not even exist */
};

extern void run_external_diff(const char *name,
			      struct diff_spec *, struct diff_spec *);

#endif /* DIFF_H */