[PATCH] Introducing software archaeologist's tool "pickaxe".
This steals the "pickaxe" feature from JIT and make it available to the bare Plumbing layer. From the command line, the user gives a string he is intersted in. Using the diff-core infrastructure previously introduced, it filters the differences to limit the output only to the diffs between <src> and <dst> where the string appears only in one but not in the other. For example: $ ./git-rev-list HEAD | ./git-diff-tree -Sdiff-tree-helper --stdin -M would show the diffs that touch the string "diff-tree-helper". In real software-archaeologist application, you would typically look for a few to several lines of code and see where that code came from. The "pickaxe" module runs after "rename/copy detection" module, so it even crosses the file rename boundary, as the above example demonstrates. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
427dcb4bca
commit
52e9578985
11
diffcore.h
11
diffcore.h
@ -38,7 +38,7 @@ extern void fill_filespec(struct diff_filespec *, const unsigned char *,
|
||||
extern int diff_populate_filespec(struct diff_filespec *);
|
||||
extern void diff_free_filespec_data(struct diff_filespec *);
|
||||
|
||||
struct diff_file_pair {
|
||||
struct diff_filepair {
|
||||
struct diff_filespec *one;
|
||||
struct diff_filespec *two;
|
||||
char *xfrm_msg;
|
||||
@ -47,14 +47,15 @@ struct diff_file_pair {
|
||||
};
|
||||
|
||||
struct diff_queue_struct {
|
||||
struct diff_file_pair **queue;
|
||||
struct diff_filepair **queue;
|
||||
int alloc;
|
||||
int nr;
|
||||
};
|
||||
|
||||
extern struct diff_file_pair *diff_queue(struct diff_queue_struct *,
|
||||
struct diff_filespec *,
|
||||
struct diff_filespec *);
|
||||
extern struct diff_filepair *diff_queue(struct diff_queue_struct *,
|
||||
struct diff_filespec *,
|
||||
struct diff_filespec *);
|
||||
extern void diff_detect_rename(struct diff_queue_struct *, int, int);
|
||||
extern void diff_pickaxe(struct diff_queue_struct *, const char *);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user