Mercurial > public > mercurial-scm > hg
annotate mercurial/help/internals/changegroups.txt @ 30790:dbcc10cf7f8d
patch: add label for coloring the index extended header
Just like the summary says, this will colorize the:
index 3d3ba4b65e11..57274a0f46b2 100644
line in the diff output.
author | Sean Farley <sean@farley.io> |
---|---|
date | Mon, 09 Jan 2017 10:59:45 -0800 |
parents | aba2bb2a6d0f |
children | 9f169b7f53d5 |
rev | line source |
---|---|
27372
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
1 Changegroups are representations of repository revlog data, specifically |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
2 the changelog, manifest, and filelogs. |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
3 |
27434
11150176a000
changegroups: add documentation for cg3
Augie Fackler <augie@google.com>
parents:
27372
diff
changeset
|
4 There are 3 versions of changegroups: ``1``, ``2``, and ``3``. From a |
11150176a000
changegroups: add documentation for cg3
Augie Fackler <augie@google.com>
parents:
27372
diff
changeset
|
5 high-level, versions ``1`` and ``2`` are almost exactly the same, with |
11150176a000
changegroups: add documentation for cg3
Augie Fackler <augie@google.com>
parents:
27372
diff
changeset
|
6 the only difference being a header on entries in the changeset |
11150176a000
changegroups: add documentation for cg3
Augie Fackler <augie@google.com>
parents:
27372
diff
changeset
|
7 segment. Version ``3`` adds support for exchanging treemanifests and |
11150176a000
changegroups: add documentation for cg3
Augie Fackler <augie@google.com>
parents:
27372
diff
changeset
|
8 includes revlog flags in the delta header. |
27372
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
9 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
10 Changegroups consists of 3 logical segments:: |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
11 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
12 +---------------------------------+ |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
13 | | | | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
14 | changeset | manifest | filelogs | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
15 | | | | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
16 +---------------------------------+ |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
17 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
18 The principle building block of each segment is a *chunk*. A *chunk* |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
19 is a framed piece of data:: |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
20 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
21 +---------------------------------------+ |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
22 | | | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
23 | length | data | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
24 | (32 bits) | <length> bytes | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
25 | | | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
26 +---------------------------------------+ |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
27 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
28 Each chunk starts with a 32-bit big-endian signed integer indicating |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
29 the length of the raw data that follows. |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
30 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
31 There is a special case chunk that has 0 length (``0x00000000``). We |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
32 call this an *empty chunk*. |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
33 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
34 Delta Groups |
29747
aba2bb2a6d0f
help: don't try to render a section on sub-topics
Gregory Szorc <gregory.szorc@gmail.com>
parents:
27434
diff
changeset
|
35 ============ |
27372
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
36 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
37 A *delta group* expresses the content of a revlog as a series of deltas, |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
38 or patches against previous revisions. |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
39 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
40 Delta groups consist of 0 or more *chunks* followed by the *empty chunk* |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
41 to signal the end of the delta group:: |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
42 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
43 +------------------------------------------------------------------------+ |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
44 | | | | | | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
45 | chunk0 length | chunk0 data | chunk1 length | chunk1 data | 0x0 | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
46 | (32 bits) | (various) | (32 bits) | (various) | (32 bits) | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
47 | | | | | | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
48 +------------------------------------------------------------+-----------+ |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
49 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
50 Each *chunk*'s data consists of the following:: |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
51 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
52 +-----------------------------------------+ |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
53 | | | | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
54 | delta header | mdiff header | delta | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
55 | (various) | (12 bytes) | (various) | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
56 | | | | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
57 +-----------------------------------------+ |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
58 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
59 The *length* field is the byte length of the remaining 3 logical pieces |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
60 of data. The *delta* is a diff from an existing entry in the changelog. |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
61 |
27434
11150176a000
changegroups: add documentation for cg3
Augie Fackler <augie@google.com>
parents:
27372
diff
changeset
|
62 The *delta header* is different between versions ``1``, ``2``, and |
11150176a000
changegroups: add documentation for cg3
Augie Fackler <augie@google.com>
parents:
27372
diff
changeset
|
63 ``3`` of the changegroup format. |
27372
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
64 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
65 Version 1:: |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
66 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
67 +------------------------------------------------------+ |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
68 | | | | | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
69 | node | p1 node | p2 node | link node | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
70 | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
71 | | | | | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
72 +------------------------------------------------------+ |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
73 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
74 Version 2:: |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
75 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
76 +------------------------------------------------------------------+ |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
77 | | | | | | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
78 | node | p1 node | p2 node | base node | link node | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
79 | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
80 | | | | | | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
81 +------------------------------------------------------------------+ |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
82 |
27434
11150176a000
changegroups: add documentation for cg3
Augie Fackler <augie@google.com>
parents:
27372
diff
changeset
|
83 Version 3:: |
11150176a000
changegroups: add documentation for cg3
Augie Fackler <augie@google.com>
parents:
27372
diff
changeset
|
84 |
11150176a000
changegroups: add documentation for cg3
Augie Fackler <augie@google.com>
parents:
27372
diff
changeset
|
85 +------------------------------------------------------------------------------+ |
11150176a000
changegroups: add documentation for cg3
Augie Fackler <augie@google.com>
parents:
27372
diff
changeset
|
86 | | | | | | | |
11150176a000
changegroups: add documentation for cg3
Augie Fackler <augie@google.com>
parents:
27372
diff
changeset
|
87 | node | p1 node | p2 node | base node | link node | flags | |
11150176a000
changegroups: add documentation for cg3
Augie Fackler <augie@google.com>
parents:
27372
diff
changeset
|
88 | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (20 bytes) | (2 bytes) | |
11150176a000
changegroups: add documentation for cg3
Augie Fackler <augie@google.com>
parents:
27372
diff
changeset
|
89 | | | | | | | |
11150176a000
changegroups: add documentation for cg3
Augie Fackler <augie@google.com>
parents:
27372
diff
changeset
|
90 +------------------------------------------------------------------------------+ |
11150176a000
changegroups: add documentation for cg3
Augie Fackler <augie@google.com>
parents:
27372
diff
changeset
|
91 |
27372
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
92 The *mdiff header* consists of 3 32-bit big-endian signed integers |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
93 describing offsets at which to apply the following delta content:: |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
94 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
95 +-------------------------------------+ |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
96 | | | | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
97 | offset | old length | new length | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
98 | (32 bits) | (32 bits) | (32 bits) | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
99 | | | | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
100 +-------------------------------------+ |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
101 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
102 In version 1, the delta is always applied against the previous node from |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
103 the changegroup or the first parent if this is the first entry in the |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
104 changegroup. |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
105 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
106 In version 2, the delta base node is encoded in the entry in the |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
107 changegroup. This allows the delta to be expressed against any parent, |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
108 which can result in smaller deltas and more efficient encoding of data. |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
109 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
110 Changeset Segment |
29747
aba2bb2a6d0f
help: don't try to render a section on sub-topics
Gregory Szorc <gregory.szorc@gmail.com>
parents:
27434
diff
changeset
|
111 ================= |
27372
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
112 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
113 The *changeset segment* consists of a single *delta group* holding |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
114 changelog data. It is followed by an *empty chunk* to denote the |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
115 boundary to the *manifests segment*. |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
116 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
117 Manifest Segment |
29747
aba2bb2a6d0f
help: don't try to render a section on sub-topics
Gregory Szorc <gregory.szorc@gmail.com>
parents:
27434
diff
changeset
|
118 ================ |
27372
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
119 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
120 The *manifest segment* consists of a single *delta group* holding |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
121 manifest data. It is followed by an *empty chunk* to denote the boundary |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
122 to the *filelogs segment*. |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
123 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
124 Filelogs Segment |
29747
aba2bb2a6d0f
help: don't try to render a section on sub-topics
Gregory Szorc <gregory.szorc@gmail.com>
parents:
27434
diff
changeset
|
125 ================ |
27372
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
126 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
127 The *filelogs* segment consists of multiple sub-segments, each |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
128 corresponding to an individual file whose data is being described:: |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
129 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
130 +--------------------------------------+ |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
131 | | | | | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
132 | filelog0 | filelog1 | filelog2 | ... | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
133 | | | | | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
134 +--------------------------------------+ |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
135 |
27434
11150176a000
changegroups: add documentation for cg3
Augie Fackler <augie@google.com>
parents:
27372
diff
changeset
|
136 In version ``3`` of the changegroup format, filelogs may include |
11150176a000
changegroups: add documentation for cg3
Augie Fackler <augie@google.com>
parents:
27372
diff
changeset
|
137 directory logs when treemanifests are in use. directory logs are |
11150176a000
changegroups: add documentation for cg3
Augie Fackler <augie@google.com>
parents:
27372
diff
changeset
|
138 identified by having a trailing '/' on their filename (see below). |
11150176a000
changegroups: add documentation for cg3
Augie Fackler <augie@google.com>
parents:
27372
diff
changeset
|
139 |
27372
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
140 The final filelog sub-segment is followed by an *empty chunk* to denote |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
141 the end of the segment and the overall changegroup. |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
142 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
143 Each filelog sub-segment consists of the following:: |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
144 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
145 +------------------------------------------+ |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
146 | | | | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
147 | filename size | filename | delta group | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
148 | (32 bits) | (various) | (various) | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
149 | | | | |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
150 +------------------------------------------+ |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
151 |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
152 That is, a *chunk* consisting of the filename (not terminated or padded) |
a79cba6cb206
help: add documentation for changegroup formats
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff
changeset
|
153 followed by N chunks constituting the *delta group* for this file. |