Improve sha1 object file writing.
[git/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-tree-helper */
21
22 struct diff_spec {
23 union {
24 const char *name; /* path on the filesystem */
25 unsigned char sha1[20]; /* blob object ID */
26 } u;
27 unsigned short mode; /* file mode */
28 unsigned sha1_valid : 1; /* if true, use u.sha1 and trust mode.
29 * (however with a NULL SHA1, read them
30 * from the file!).
31 * if false, use u.name and read mode from
32 * the filesystem.
33 */
34 unsigned file_valid : 1; /* if false the file does not even exist */
35 };
36
37 extern void run_external_diff(const char *name,
38 struct diff_spec *, struct diff_spec *);
39
40 #endif /* DIFF_H */