diff options
author | Junio C Hamano <junkio@cox.net> | 2006-04-10 18:14:54 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-04-10 19:17:31 -0700 |
commit | c4e05b1a2290c605e68e6dac5e2a580e6d4080b7 (patch) | |
tree | ea41950c4519a6665503ec4fc9a4d2d2e17c55bc /blame.c | |
parent | 477f2b41310c4b1040a9e7f72720b9c39d82caf9 (diff) | |
download | git-c4e05b1a2290c605e68e6dac5e2a580e6d4080b7.tar.gz |
blame and friends: adjust to multiple pathspec change.
This makes things that include revision.h build again.
Blame is also built, but I am not sure how well it works (or how
well it worked to begin with) -- it was relying on tree-diff to
be using whatever pathspec was used the last time, which smells
a bit suspicious.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'blame.c')
-rw-r--r-- | blame.c | 20 |
1 files changed, 14 insertions, 6 deletions
@@ -508,25 +508,33 @@ static void process_commits(struct rev_info *rev, const char *path, static int compare_tree_path(struct rev_info* revs, struct commit* c1, struct commit* c2) { + int ret; const char* paths[2]; struct util_info* util = c2->object.util; paths[0] = util->pathname; paths[1] = NULL; - diff_tree_setup_paths(get_pathspec(revs->prefix, paths)); - return rev_compare_tree(c1->tree, c2->tree); + diff_tree_setup_paths(get_pathspec(revs->prefix, paths), + &revs->diffopt); + ret = rev_compare_tree(revs, c1->tree, c2->tree); + diff_tree_release_paths(&revs->diffopt); + return ret; } static int same_tree_as_empty_path(struct rev_info *revs, struct tree* t1, const char* path) { + int ret; const char* paths[2]; paths[0] = path; paths[1] = NULL; - diff_tree_setup_paths(get_pathspec(revs->prefix, paths)); - return rev_same_tree_as_empty(t1); + diff_tree_setup_paths(get_pathspec(revs->prefix, paths), + &revs->diffopt); + ret = rev_same_tree_as_empty(revs, t1); + diff_tree_release_paths(&revs->diffopt); + return ret; } static const char* find_rename(struct commit* commit, struct commit* parent) @@ -546,7 +554,7 @@ static const char* find_rename(struct commit* commit, struct commit* parent) diff_opts.recursive = 1; diff_opts.detect_rename = DIFF_DETECT_RENAME; paths[0] = NULL; - diff_tree_setup_paths(paths); + diff_tree_setup_paths(paths, &diff_opts); if (diff_setup_done(&diff_opts) < 0) die("diff_setup_done failed"); @@ -826,7 +834,7 @@ int main(int argc, const char **argv) args[0] = filename; args[1] = NULL; - diff_tree_setup_paths(args); + diff_tree_setup_paths(args, &rev.diffopt); prepare_revision_walk(&rev); process_commits(&rev, filename, &initial); |