##// END OF EJS Templates
changegroups: add documentation for cg3
Augie Fackler -
r27434:11150176 default
parent child Browse files
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 2 versions of changegroups: ``1`` and ``2``. From a
8 high-level, they are almost exactly the same, with the only difference
9 being a header on entries in the changeset segment.
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`` and ``2`` of the
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 2 versions of changegroups: "1" and "2". From a high-level, they
889 are almost exactly the same, with the only difference being a header on
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 "2" of the
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