diff-tree: fix up comparison of "interesting" sub-trees
[git.git] / diff.h
1 /*
2  * Copyright (C) 2005 Junio C Hamano
3  */
4 #ifndef DIFF_H
5 #define DIFF_H
6
7 extern void diff_addremove(int addremove,
8                            unsigned mode,
9                            const unsigned char *sha1,
10                            const char *base,
11                            const char *path);
12
13 extern void diff_change(unsigned mode1, unsigned mode2,
14                              const unsigned char *sha1,
15                              const unsigned char *sha2,
16                              const char *base, const char *path);
17
18 extern void diff_unmerge(const char *path);
19
20 /* These are for diff-helper */
21
22 struct diff_spec {
23         unsigned char blob_sha1[20];
24         unsigned short mode;     /* file mode */
25         unsigned sha1_valid : 1; /* if true, use blob_sha1 and trust mode;
26                                   * however with a NULL SHA1, read them
27                                   * from the file system.
28                                   * if false, use the name and read mode from
29                                   * the filesystem.
30                                   */
31         unsigned file_valid : 1; /* if false the file does not even exist */
32 };
33
34 extern void run_external_diff(const char *name, const char *other,
35                               struct diff_spec *, struct diff_spec *);
36
37 #endif /* DIFF_H */