]>
Commit | Line | Data |
---|---|---|
24d113ec JN |
1 | merge API |
2 | ========= | |
3 | ||
4 | The merge API helps a program to reconcile two competing sets of | |
5 | improvements to some files (e.g., unregistered changes from the work | |
6 | tree versus changes involved in switching to a new branch), reporting | |
7 | conflicts if found. The library called through this API is | |
8 | responsible for a few things. | |
9 | ||
10 | * determining which trees to merge (recursive ancestor consolidation); | |
11 | ||
12 | * lining up corresponding files in the trees to be merged (rename | |
13 | detection, subtree shifting), reporting edge cases like add/add | |
14 | and rename/rename conflicts to the user; | |
15 | ||
16 | * performing a three-way merge of corresponding files, taking | |
17 | path-specific merge drivers (specified in `.gitattributes`) | |
18 | into account. | |
19 | ||
712516bc JN |
20 | Data structures |
21 | --------------- | |
22 | ||
23 | * `mmbuffer_t`, `mmfile_t` | |
24 | ||
25 | These store data usable for use by the xdiff backend, for writing and | |
26 | for reading, respectively. See `xdiff/xdiff.h` for the definitions | |
27 | and `diff.c` for examples. | |
28 | ||
29 | * `struct ll_merge_options` | |
30 | ||
67238999 | 31 | Check merge-ll.h for details. |
712516bc | 32 | |
24d113ec JN |
33 | Low-level (single file) merge |
34 | ----------------------------- | |
35 | ||
67238999 | 36 | Check merge-ll.h for details. |