77eb272046
This introduces three public functions for diff-cache and friends can use to call out to the GIT_EXTERNAL_DIFF program when they wish to. A normal "add/remove/change" entry is turned into 7-parameter process invocation of GIT_EXTERNAL_DIFF program as before. In addition, the program can now be called with a single parameter when diff-cache and friends want to report an unmerged path. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
41 lines
1.0 KiB
C
41 lines
1.0 KiB
C
/*
|
|
* 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 */
|