Browse Source

Bust the ghost of long-defunct diffcore-pathspec.

This concept was retired by 77882f6 (Retire diffcore-pathspec.,
2006-04-10), more than 2 years ago.

Signed-off-by: Yann Dirson <ydirson@altern.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Yann Dirson 16 years ago committed by Junio C Hamano
parent
commit
264e0b9a3c
  1. 55
      Documentation/gitdiffcore.txt
  2. 1
      diffcore.h

55
Documentation/gitdiffcore.txt

@ -36,11 +36,25 @@ files: @@ -36,11 +36,25 @@ files:

- 'git-diff-tree' compares contents of two "tree" objects;

In all of these cases, the commands themselves compare
corresponding paths in the two sets of files. The result of
comparison is passed from these commands to what is internally
called "diffcore", in a format similar to what is output when
the -p option is not used. E.g.
In all of these cases, the commands themselves first optionally limit
the two sets of files by any pathspecs given on their command-lines,
and compare corresponding paths in the two resulting sets of files.

The pathspecs are used to limit the world diff operates in. They remove
the filepairs outside the specified sets of pathnames. E.g. If the
input set of filepairs included:

------------------------------------------------
:100644 100644 bcd1234... 0123456... M junkfile
------------------------------------------------

but the command invocation was `git diff-files myfile`, then the
junkfile entry would be removed from the list because only "myfile"
is under consideration.

The result of comparison is passed from these commands to what is
internally called "diffcore", in a format similar to what is output
when the -p option is not used. E.g.

------------------------------------------------
in-place edit :100644 100644 bcd1234... 0123456... M file0
@ -52,9 +66,8 @@ unmerged :000000 000000 0000000... 0000000... U file6 @@ -52,9 +66,8 @@ unmerged :000000 000000 0000000... 0000000... U file6
The diffcore mechanism is fed a list of such comparison results
(each of which is called "filepair", although at this point each
of them talks about a single file), and transforms such a list
into another list. There are currently 6 such transformations:
into another list. There are currently 5 such transformations:

- diffcore-pathspec
- diffcore-break
- diffcore-rename
- diffcore-merge-broken
@ -62,38 +75,14 @@ into another list. There are currently 6 such transformations: @@ -62,38 +75,14 @@ into another list. There are currently 6 such transformations:
- diffcore-order

These are applied in sequence. The set of filepairs 'git-diff-{asterisk}'
commands find are used as the input to diffcore-pathspec, and
the output from diffcore-pathspec is used as the input to the
commands find are used as the input to diffcore-break, and
the output from diffcore-break is used as the input to the
next transformation. The final result is then passed to the
output routine and generates either diff-raw format (see Output
format sections of the manual for 'git-diff-{asterisk}' commands) or
diff-patch format.


diffcore-pathspec: For Ignoring Files Outside Our Consideration
---------------------------------------------------------------

The first transformation in the chain is diffcore-pathspec, and
is controlled by giving the pathname parameters to the
'git-diff-{asterisk}' commands on the command line. The pathspec is used
to limit the world diff operates in. It removes the filepairs
outside the specified set of pathnames. E.g. If the input set
of filepairs included:

------------------------------------------------
:100644 100644 bcd1234... 0123456... M junkfile
------------------------------------------------

but the command invocation was `git diff-files myfile`, then the
junkfile entry would be removed from the list because only "myfile"
is under consideration.

Implementation note. For performance reasons, 'git-diff-tree'
uses the pathname parameters on the command line to cull set of
filepairs it feeds the diffcore mechanism itself, and does not
use diffcore-pathspec, but the end result is the same.


diffcore-break: For Splitting Up "Complete Rewrites"
----------------------------------------------------


1
diffcore.h

@ -92,7 +92,6 @@ extern struct diff_filepair *diff_queue(struct diff_queue_struct *, @@ -92,7 +92,6 @@ extern struct diff_filepair *diff_queue(struct diff_queue_struct *,
struct diff_filespec *);
extern void diff_q(struct diff_queue_struct *, struct diff_filepair *);

extern void diffcore_pathspec(const char **pathspec);
extern void diffcore_break(int);
extern void diffcore_rename(struct diff_options *);
extern void diffcore_merge_broken(void);

Loading…
Cancel
Save