merge(3p/git): Merge git upstream at v2.26.2
This commit is contained in:
commit
5229c9b232
1006 changed files with 149006 additions and 60819 deletions
32
third_party/git/diffcore.h
vendored
32
third_party/git/diffcore.h
vendored
|
@ -28,6 +28,12 @@ struct userdiff_driver;
|
|||
|
||||
#define MINIMUM_BREAK_SIZE 400 /* do not break a file smaller than this */
|
||||
|
||||
/**
|
||||
* the internal representation for a single file (blob). It records the blob
|
||||
* object name (if known -- for a work tree file it typically is a NUL SHA-1),
|
||||
* filemode and pathname. This is what the `diff_addremove()`, `diff_change()`
|
||||
* and `diff_unmerge()` synthesize and feed `diff_queue()` function with.
|
||||
*/
|
||||
struct diff_filespec {
|
||||
struct object_id oid;
|
||||
char *path;
|
||||
|
@ -66,6 +72,17 @@ void diff_free_filespec_data(struct diff_filespec *);
|
|||
void diff_free_filespec_blob(struct diff_filespec *);
|
||||
int diff_filespec_is_binary(struct repository *, struct diff_filespec *);
|
||||
|
||||
/**
|
||||
* This records a pair of `struct diff_filespec`; the filespec for a file in
|
||||
* the "old" set (i.e. preimage) is called `one`, and the filespec for a file
|
||||
* in the "new" set (i.e. postimage) is called `two`. A change that represents
|
||||
* file creation has NULL in `one`, and file deletion has NULL in `two`.
|
||||
*
|
||||
* A `filepair` starts pointing at `one` and `two` that are from the same
|
||||
* filename, but `diffcore_std()` can break pairs and match component filespecs
|
||||
* with other filespecs from a different filepair to form new filepair. This is
|
||||
* called 'rename detection'.
|
||||
*/
|
||||
struct diff_filepair {
|
||||
struct diff_filespec *one;
|
||||
struct diff_filespec *two;
|
||||
|
@ -77,6 +94,7 @@ struct diff_filepair {
|
|||
unsigned done_skip_stat_unmatch : 1;
|
||||
unsigned skip_stat_unmatch_result : 1;
|
||||
};
|
||||
|
||||
#define DIFF_PAIR_UNMERGED(p) ((p)->is_unmerged)
|
||||
|
||||
#define DIFF_PAIR_RENAME(p) ((p)->renamed_pair)
|
||||
|
@ -94,11 +112,25 @@ void diff_free_filepair(struct diff_filepair *);
|
|||
|
||||
int diff_unmodified_pair(struct diff_filepair *);
|
||||
|
||||
/**
|
||||
* This is a collection of filepairs. Notable members are:
|
||||
*
|
||||
* - `queue`:
|
||||
* An array of pointers to `struct diff_filepair`. This dynamically grows as
|
||||
* you add filepairs;
|
||||
*
|
||||
* - `alloc`:
|
||||
* The allocated size of the `queue` array;
|
||||
*
|
||||
* - `nr`:
|
||||
* The number of elements in the `queue` array.
|
||||
*/
|
||||
struct diff_queue_struct {
|
||||
struct diff_filepair **queue;
|
||||
int alloc;
|
||||
int nr;
|
||||
};
|
||||
|
||||
#define DIFF_QUEUE_CLEAR(q) \
|
||||
do { \
|
||||
(q)->queue = NULL; \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue