Show More
@@ -4,9 +4,11 b' Changegroups' | |||
|
4 | 4 | Changegroups are representations of repository revlog data, specifically |
|
5 | 5 | the changelog, manifest, and filelogs. |
|
6 | 6 | |
|
7 |
There are |
|
|
8 |
high-level, |
|
|
9 |
being a header on entries in the changeset |
|
|
7 | There are 3 versions of changegroups: ``1``, ``2``, and ``3``. From a | |
|
8 | high-level, versions ``1`` and ``2`` are almost exactly the same, with | |
|
9 | the only difference being a header on entries in the changeset | |
|
10 | segment. Version ``3`` adds support for exchanging treemanifests and | |
|
11 | includes revlog flags in the delta header. | |
|
10 | 12 | |
|
11 | 13 | Changegroups consists of 3 logical segments:: |
|
12 | 14 | |
@@ -60,8 +62,8 b" Each *chunk*'s data consists of the foll" | |||
|
60 | 62 | The *length* field is the byte length of the remaining 3 logical pieces |
|
61 | 63 | of data. The *delta* is a diff from an existing entry in the changelog. |
|
62 | 64 | |
|
63 |
The *delta header* is different between versions ``1`` |
|
|
64 | changegroup format. | |
|
65 | The *delta header* is different between versions ``1``, ``2``, and | |
|
66 | ``3`` of the changegroup format. | |
|
65 | 67 | |
|
66 | 68 | Version 1:: |
|
67 | 69 | |
@@ -81,6 +83,15 b' Version 2::' | |||
|
81 | 83 | | | | | | | |
|
82 | 84 | +------------------------------------------------------------------+ |
|
83 | 85 | |
|
86 | Version 3:: | |
|
87 | ||
|
88 | +------------------------------------------------------------------------------+ | |
|
89 | | | | | | | | | |
|
90 | | node | p1 node | p2 node | base node | link node | flags | | |
|
91 | | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (2 bytes) | | |
|
92 | | | | | | | | | |
|
93 | +------------------------------------------------------------------------------+ | |
|
94 | ||
|
84 | 95 | The *mdiff header* consists of 3 32-bit big-endian signed integers |
|
85 | 96 | describing offsets at which to apply the following delta content:: |
|
86 | 97 | |
@@ -125,6 +136,10 b' corresponding to an individual file whos' | |||
|
125 | 136 | | | | | | |
|
126 | 137 | +--------------------------------------+ |
|
127 | 138 | |
|
139 | In version ``3`` of the changegroup format, filelogs may include | |
|
140 | directory logs when treemanifests are in use. directory logs are | |
|
141 | identified by having a trailing '/' on their filename (see below). | |
|
142 | ||
|
128 | 143 | The final filelog sub-segment is followed by an *empty chunk* to denote |
|
129 | 144 | the end of the segment and the overall changegroup. |
|
130 | 145 |
@@ -885,9 +885,11 b' sub-topics can be accessed' | |||
|
885 | 885 | Changegroups are representations of repository revlog data, specifically |
|
886 | 886 | the changelog, manifest, and filelogs. |
|
887 | 887 | |
|
888 |
There are |
|
|
889 |
are almost exactly the same, with the only |
|
|
890 | entries in the changeset segment. | |
|
888 | There are 3 versions of changegroups: "1", "2", and "3". From a high- | |
|
889 | level, versions "1" and "2" are almost exactly the same, with the only | |
|
890 | difference being a header on entries in the changeset segment. Version "3" | |
|
891 | adds support for exchanging treemanifests and includes revlog flags in the | |
|
892 | delta header. | |
|
891 | 893 | |
|
892 | 894 | Changegroups consists of 3 logical segments: |
|
893 | 895 | |
@@ -941,7 +943,7 b' sub-topics can be accessed' | |||
|
941 | 943 | The *length* field is the byte length of the remaining 3 logical pieces of |
|
942 | 944 | data. The *delta* is a diff from an existing entry in the changelog. |
|
943 | 945 | |
|
944 |
The *delta header* is different between versions "1" and " |
|
|
946 | The *delta header* is different between versions "1", "2", and "3" of the | |
|
945 | 947 | changegroup format. |
|
946 | 948 | |
|
947 | 949 | Version 1: |
@@ -962,6 +964,15 b' sub-topics can be accessed' | |||
|
962 | 964 | | | | | | | |
|
963 | 965 | +------------------------------------------------------------------+ |
|
964 | 966 | |
|
967 | Version 3: | |
|
968 | ||
|
969 | +------------------------------------------------------------------------------+ | |
|
970 | | | | | | | | | |
|
971 | | node | p1 node | p2 node | base node | link node | flags | | |
|
972 | | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (2 bytes) | | |
|
973 | | | | | | | | | |
|
974 | +------------------------------------------------------------------------------+ | |
|
975 | ||
|
965 | 976 | The *mdiff header* consists of 3 32-bit big-endian signed integers |
|
966 | 977 | describing offsets at which to apply the following delta content: |
|
967 | 978 | |
@@ -1006,6 +1017,10 b' sub-topics can be accessed' | |||
|
1006 | 1017 | | | | | | |
|
1007 | 1018 | +--------------------------------------+ |
|
1008 | 1019 | |
|
1020 | In version "3" of the changegroup format, filelogs may include directory | |
|
1021 | logs when treemanifests are in use. directory logs are identified by | |
|
1022 | having a trailing '/' on their filename (see below). | |
|
1023 | ||
|
1009 | 1024 | The final filelog sub-segment is followed by an *empty chunk* to denote |
|
1010 | 1025 | the end of the segment and the overall changegroup. |
|
1011 | 1026 |
General Comments 0
You need to be logged in to leave comments.
Login now