##// 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 Changegroups are representations of repository revlog data, specifically
4 Changegroups are representations of repository revlog data, specifically
5 the changelog, manifest, and filelogs.
5 the changelog, manifest, and filelogs.
6
6
7 There are 2 versions of changegroups: ``1`` and ``2``. From a
7 There are 3 versions of changegroups: ``1``, ``2``, and ``3``. From a
8 high-level, they are almost exactly the same, with the only difference
8 high-level, versions ``1`` and ``2`` are almost exactly the same, with
9 being a header on entries in the changeset segment.
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 Changegroups consists of 3 logical segments::
13 Changegroups consists of 3 logical segments::
12
14
@@ -60,8 +62,8 b" Each *chunk*'s data consists of the foll"
60 The *length* field is the byte length of the remaining 3 logical pieces
62 The *length* field is the byte length of the remaining 3 logical pieces
61 of data. The *delta* is a diff from an existing entry in the changelog.
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
65 The *delta header* is different between versions ``1``, ``2``, and
64 changegroup format.
66 ``3`` of the changegroup format.
65
67
66 Version 1::
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 The *mdiff header* consists of 3 32-bit big-endian signed integers
95 The *mdiff header* consists of 3 32-bit big-endian signed integers
85 describing offsets at which to apply the following delta content::
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 The final filelog sub-segment is followed by an *empty chunk* to denote
143 The final filelog sub-segment is followed by an *empty chunk* to denote
129 the end of the segment and the overall changegroup.
144 the end of the segment and the overall changegroup.
130
145
@@ -885,9 +885,11 b' sub-topics can be accessed'
885 Changegroups are representations of repository revlog data, specifically
885 Changegroups are representations of repository revlog data, specifically
886 the changelog, manifest, and filelogs.
886 the changelog, manifest, and filelogs.
887
887
888 There are 2 versions of changegroups: "1" and "2". From a high-level, they
888 There are 3 versions of changegroups: "1", "2", and "3". From a high-
889 are almost exactly the same, with the only difference being a header on
889 level, versions "1" and "2" are almost exactly the same, with the only
890 entries in the changeset segment.
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 Changegroups consists of 3 logical segments:
894 Changegroups consists of 3 logical segments:
893
895
@@ -941,7 +943,7 b' sub-topics can be accessed'
941 The *length* field is the byte length of the remaining 3 logical pieces of
943 The *length* field is the byte length of the remaining 3 logical pieces of
942 data. The *delta* is a diff from an existing entry in the changelog.
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 changegroup format.
947 changegroup format.
946
948
947 Version 1:
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 The *mdiff header* consists of 3 32-bit big-endian signed integers
976 The *mdiff header* consists of 3 32-bit big-endian signed integers
966 describing offsets at which to apply the following delta content:
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 The final filelog sub-segment is followed by an *empty chunk* to denote
1024 The final filelog sub-segment is followed by an *empty chunk* to denote
1010 the end of the segment and the overall changegroup.
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