[PATCH] Diffcore updates.

This moves the path selection logic from individual programs to a new
diffcore transformer (diff-tree still needs to have its own for
performance reasons).  Also the header printing code in diff-tree was
tweaked not to produce anything when pickaxe is in effect and there is
nothing interesting to report.  An interesting example is the following
in the GIT archive itself:

    $ git-whatchanged -p -C -S'or something in a real script'

Signed-off-by: Junio C Hamano <junkio@cox.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Junio C Hamano
2005-05-22 10:04:37 -07:00
committed by Linus Torvalds
parent 26dee0adfc
commit 6b14d7faf0
11 changed files with 266 additions and 168 deletions

22
diff.h
View File

@ -26,16 +26,24 @@ extern void diff_unmerge(const char *path);
extern int diff_scoreopt_parse(const char *opt);
#define DIFF_FORMAT_HUMAN 0
#define DIFF_FORMAT_MACHINE 1
#define DIFF_FORMAT_PATCH 2
extern void diff_setup(int reverse, int diff_output_style);
#define DIFF_FORMAT_HUMAN 0
#define DIFF_FORMAT_MACHINE 1
#define DIFF_FORMAT_PATCH 2
#define DIFF_FORMAT_NO_OUTPUT 3
extern void diff_setup(int reverse);
extern void diff_detect_rename(int, int);
extern void diff_pickaxe(const char *);
#define DIFF_DETECT_RENAME 1
#define DIFF_DETECT_COPY 2
extern void diffcore_rename(int rename_copy, int minimum_score);
extern void diffcore_prune(void);
extern void diffcore_pickaxe(const char *needle);
extern void diffcore_pathspec(const char **pathspec);
extern int diff_queue_is_empty(void);
extern void diff_flush(const char **, int);
extern void diff_flush(int output_style);
#endif /* DIFF_H */