path: root/diffcore.h
diff options
authorJunio C Hamano <>2005-05-21 09:40:01 (GMT)
committerLinus Torvalds <>2005-05-21 16:58:03 (GMT)
commit52e9578985fb636ec1d3f6cf794fdadd5ec896fc (patch)
treebb22f522116f5d8e6ae677b7a4660e959c052fc2 /diffcore.h
parent427dcb4bca49117664d9428fd4e86483f516d703 (diff)
[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 <> Signed-off-by: Linus Torvalds <>
Diffstat (limited to 'diffcore.h')
1 files changed, 6 insertions, 5 deletions
diff --git a/diffcore.h b/diffcore.h
index 5fa7067..c3809ef 100644
--- a/diffcore.h
+++ b/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 *);