Split up tree diff functions into tree-diff.c library

This makes the tree diff functionality independent of the "git-diff-tree"
program, by splitting the core functionality up into a library file.

This will be needed for when we teach git-rev-list to only follow a
specified set of pathnames, rather than the global revision history.

Most of it is a fairly straightforward code move, but it also involves
some calling convention cleanup, and moving some of the static variables
from diff-tree.c into the options structure.

The actual tree change callback routines also become paramterized by the
diff_options structure, allowing the library functionality to do something
else than just show the diff on stdout.

Right now the only user of this functionality remains git-diff-tree
itself.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Linus Torvalds
2005-10-20 21:05:05 -07:00
committed by Junio C Hamano
parent 4f692b1978
commit ac1b3d1248
5 changed files with 317 additions and 269 deletions

3
diff.c
View File

@ -754,6 +754,9 @@ void diff_setup(struct diff_options *options)
options->line_termination = '\n';
options->break_opt = -1;
options->rename_limit = -1;
options->change = diff_change;
options->add_remove = diff_addremove;
}
int diff_setup_done(struct diff_options *options)