Fossil SCM

Further design changes to hierarchical manifests. Still no actual code.

drh 2015-12-22 13:40 UTC hierarchical-manifests
Commit 47aa92824027e7740ceca498a442308e8e462351
1 file changed +52 -74
--- www/fileformat.wiki
+++ www/fileformat.wiki
@@ -111,10 +111,11 @@
111111
<blockquote>
112112
<b>B</b> <i>baseline-manifest</i><br>
113113
<b>C</b> <i>checkin-comment</i><br>
114114
<b>D</b> <i>time-and-date-stamp</i><br>
115115
<b>F</b> <i>filename</i> ?<i>SHA1-hash</i>? ?<i>permissions</i>? ?<i>old-name</i>?<br>
116
+<b>G</b> <i>SHA1-hash</i><br>
116117
<b>N</b> <i>mimetype</i><br>
117118
<b>P</b> <i>SHA1-hash</i>+<br>
118119
<b>Q</b> (<b>+</b>|<b>-</b>)<i>SHA1-hash</i> ?<i>SHA1-hash</i>?<br>
119120
<b>R</b> <i>repository-checksum</i><br>
120121
<b>T</b> (<b>+</b>|<b>-</b>|<b>*</b>)<i>tag-name</i> <b>*</b> ?<i>value</i>?<br>
@@ -153,58 +154,49 @@
153154
<blockquote>
154155
<i>YYYY</i><b>-</b><i>MM</i><b>-</b><i>DD</i><b>T</b><i>HH</i><b>:</b><i>MM</i><b>:</b><i>SS</i><br>
155156
<i>YYYY</i><b>-</b><i>MM</i><b>-</b><i>DD</i><b>T</b><i>HH</i><b>:</b><i>MM</i><b>:</b><i>SS</i><b>.</b><i>SSS</i>
156157
</blockquote>
157158
158
-A manifest has zero or more F-cards. Each F-card identifies a file or
159
-subdirectory
159
+A manifest has zero or more F-cards. Each F-card identifies a file
160160
that is part of the check-in. There are one, two, three, or four
161161
arguments. The first argument is the pathname of the file or
162162
subdirectory in the
163163
check-in relative to the root of the project file hierarchy. No ".."
164164
or "." directories are allowed within the filename. Space characters
165165
are escaped as in C-card comment text. Backslash characters and
166166
newlines are not allowed within filenames. The directory separator
167167
character is a forward slash (ASCII 0x2F). The second argument to the
168168
F-card is the full 40-character lower-case hexadecimal SHA1 hash of
169
-the content artifact, or of the [#directory|directory artifact] if
170
-the "d" permission is present. The second argument is required for baseline
169
+the content artifact. The second argument is required for baseline
171170
manifests but is optional for delta manifests. When the second
172171
argument to the F-card is omitted, it means that the file has been
173172
deleted relative to the baseline (files removed in baseline manifests
174173
versions are <em>not</em> added as F-cards). The optional 3rd argument
175
-defines any special access permissions associated with the file. This
176
-can be defined as "x" to mean that the file is executable or "l"
177
-(small letter ell) to mean a symlink or "d" to mean the entry describes
178
-a subdirectory rather than a file. All files and subdirectories
179
-are always readable and writable. This can be expressed by "w"
174
+defines any special access permissions associated with the file.
175
+In a manifest, the permission string may contain
176
+an "x" to mean that the file is executable or "l"
177
+(small letter ell) to mean the file is a symlink.
178
+All files are always readable and writable. This can be expressed by "w"
180179
permission if desired but the "w" permission is optional and is ignored
181180
by Fossil. The file format might be extended with new permission
182181
letters in the future. The optional 4th argument is the name of the
183182
same file as it existed in the parent check-in. If the name of the
184183
file is unchanged from its parent, then the 4th argument is omitted.
185184
186
-Manifests may be either flat or hierarchical. A flat manifest lists
187
-all files in the check-in, including all files in subdirectories. A
188
-flat manifest may not include F-cards with the "d" permission. An
189
-heirarchical manifest only lists the files or subdirectories at the
190
-top-level of the check-in. An heirarchical manifest may not include
191
-an F-card entries that have a directory separator character ("/").
192
-An heirarchical manifest may not be a delta-manifest (it may not have
193
-a B-card) nor may it be used as a baseline-manifest by some other
194
-delta-manifest. Hierarchical manifests
195
-are only recognized by Fossil versions 1.35 and later. Repositories
196
-that contain hierarchical manifests will cause problems for earlier
197
-versions of Fossil.
198
-
199
-When an F-card refers to a subdirectory (that is to say, when the
200
-F-card is part of an hierarchical manifest and contains the "d"
201
-permission) then the referenced directory artifact must be a
202
-[#directory|well-formed directory artifact] that contains a
203
-G-card that exactly matches the name of the subdirectory as assigned
204
-by the F-card. If these conditions are not met, then the artifact is
205
-not a valid manifest.
185
+A G-card is an alternative way of specifying the files of a check-in.
186
+A single manifest may have many F-cards or a single G-card, but not
187
+both. A manifest containing F-cards is called a "flat manifest" and
188
+a manifest that contains a G-card is called an "hierarchical manifest".
189
+
190
+A G-card contains a single argument which is the SHA1 hash of a
191
+[#directory|directory artifact] that defines the files and directories
192
+at the top-level of the check-in. That directory artifact may contain
193
+F-cards with the "d" permission that reference other subdirectories
194
+in check-in file hierarchy.
195
+
196
+A G-card may not be used in a delta manifest. No delta manifest may
197
+refer to an hierarchical manifest as its baseline.
206198
207199
A manifest has zero or one P-cards. Most manifests have one P-card.
208200
The P-card has a varying number of arguments that
209201
defines other manifests from which the current manifest
210202
is derived. Each argument is an 40-character lowercase
@@ -281,30 +273,29 @@
281273
A directory artifact describes the files and subdirectories within a
282274
single directory of an hierarchical manifest. Directory artifacts
283275
are only recognized by Fossil version 1.35 and later (circa 2015-12-23).
284276
285277
Directory artifacts contain zero or more F-cards and exactly one Z-card,
286
-in the same format as a manifest. A directory artifact also contains
287
-exactly one G-card with a single argument that is the pathname
288
-of the directory relative to the root of the repository.
289
-The format of the directory name in a G-card is
290
-the same as the format of a filename in an F-card.
291
-
292
-The F-cards in a directory artifact may not contain directory separator
293
-characters. The content of subdirectories must be expressed using
294
-additional directory artifacts referenced by F-cards with the "d"
295
-permission. All F-cards in a directory artifact must contain at least
296
-two arguments.
297
-
298
-When an F-card X of directory artifact Y refers to
299
-subdirectory Z (that is to say, when F-card X contains
300
-the "d" permission and the second argument on X is the SHA1
301
-hash of directory artifact Z) then the G-card of Z must
302
-be the concatenation of the G-card on artifact Y, the
303
-directory separator character "/" and the first argument to
304
-the F-card X. Otherwise, the artifact Y is not a valid
305
-directory artifact.
278
+in the same format as a manifest.
279
+
280
+The F-cards of a directory artifact are slightly different from the F-cards
281
+in a [#manifest|manifest artifact].
282
+
283
+<ul>
284
+<li>F-cards in a directory artifact may not have directory separator
285
+characters in their filename. The F-cards of a directory specify only
286
+the files and subdirectories in that directory.
287
+<li>F-cards in a directory artifact may use the "d" permission character
288
+to indicate that the entry refers to a subdirectory. In that case, the
289
+SHA1 hash on the second argument refers to another directory artifact,
290
+not to a content artifact.
291
+<li>F-cards in a directory artifact must have at last two arguments.
292
+</ul>
293
+
294
+The Z-card in a directory artifact is required and has the same format as
295
+it does in all other special artifacts. Directory artifacts may not be
296
+PGP-clearsigned.
306297
307298
<a name="cluster"></a>
308299
<h3>1.3 Clusters Artifacts</h3>
309300
310301
A cluster is an artifact that declares the existence of other artifacts.
@@ -615,31 +606,18 @@
615606
<td align=center><b>1</b></td>
616607
<td>&nbsp;</td>
617608
</tr>
618609
<tr>
619610
<td><b>B</b> <i>baseline</i></td>
620
-<td align=center><b>0-1*</b></td>
621
-<td>&nbsp;</td>
622
-<td>&nbsp;</td>
623
-<td>&nbsp;</td>
624
-<td>&nbsp;</td>
625
-<td>&nbsp;</td>
626
-<td>&nbsp;</td>
627
-<td>&nbsp;</td>
628
-</tr>
629
-<tr><td>&nbsp;</td><td colspan='8'>* = Required for delta manifests,
630
-Disallowed for hierarchical manifests.</td></tr>
631
-<tr>
632
-<td><b>C</b> <i>comment-text</i></td>
633
-<td align=center><b>1</b></td>
634
-<td>&nbsp;</td>
635
-<td>&nbsp;</td>
636
-<td>&nbsp;</td>
637
-<td>&nbsp;</td>
638
-<td>&nbsp;</td>
639
-<td align=center><b>0-1</b></td>
640
-<td align=center><b>0-1</b></td>
611
+<td align=center><b>0-1</b></td>
612
+<td>&nbsp;</td>
613
+<td>&nbsp;</td>
614
+<td>&nbsp;</td>
615
+<td>&nbsp;</td>
616
+<td>&nbsp;</td>
617
+<td>&nbsp;</td>
618
+<td>&nbsp;</td>
641619
</tr>
642620
<tr>
643621
<td><b>D</b> <i>date-time-stamp</i></td>
644622
<td align=center><b>1</b></td>
645623
<td>&nbsp;</td>
@@ -671,13 +649,13 @@
671649
<td>&nbsp;</td>
672650
<td>&nbsp;</td>
673651
<td>&nbsp;</td>
674652
</tr>
675653
<tr>
676
-<td><b>G</b> <i>fileame</i>
654
+<td><b>G</b> <i>SHA1-hash</i>
655
+<td align=center><b>0-1</b></td>
677656
<td>&nbsp;</td>
678
-<td align=center><b>1</b></td>
679657
<td>&nbsp;</td>
680658
<td>&nbsp;</td>
681659
<td>&nbsp;</td>
682660
<td>&nbsp;</td>
683661
<td>&nbsp;</td>
@@ -870,12 +848,12 @@
870848
is not a storage space issue. Fossil was originally designed
871849
specifically to support the SQLite project, and as SQLite has fewer
872850
than 2000 files on any give version, a flat baseline manifest design
873851
worked well there and was simple to implement.
874852
875
-However, some project (ex: NetBSD) contain a huge number of files in
876
-every version, and even though the manifests compressed will using
853
+However, some other projects (ex: NetBSD) contain a huge number of files in
854
+every check-in, and even though the manifests compressed will using
877855
delta-compression, many CPU cycles had to be spent to decompress those
878856
manifests. To help make Fossil more efficient for large projects like
879857
NetBSD, the concept of a delta-manifest was added. This helped a lot
880858
but was not a perfect solution.
881859
882860
--- www/fileformat.wiki
+++ www/fileformat.wiki
@@ -111,10 +111,11 @@
111 <blockquote>
112 <b>B</b> <i>baseline-manifest</i><br>
113 <b>C</b> <i>checkin-comment</i><br>
114 <b>D</b> <i>time-and-date-stamp</i><br>
115 <b>F</b> <i>filename</i> ?<i>SHA1-hash</i>? ?<i>permissions</i>? ?<i>old-name</i>?<br>
 
116 <b>N</b> <i>mimetype</i><br>
117 <b>P</b> <i>SHA1-hash</i>+<br>
118 <b>Q</b> (<b>+</b>|<b>-</b>)<i>SHA1-hash</i> ?<i>SHA1-hash</i>?<br>
119 <b>R</b> <i>repository-checksum</i><br>
120 <b>T</b> (<b>+</b>|<b>-</b>|<b>*</b>)<i>tag-name</i> <b>*</b> ?<i>value</i>?<br>
@@ -153,58 +154,49 @@
153 <blockquote>
154 <i>YYYY</i><b>-</b><i>MM</i><b>-</b><i>DD</i><b>T</b><i>HH</i><b>:</b><i>MM</i><b>:</b><i>SS</i><br>
155 <i>YYYY</i><b>-</b><i>MM</i><b>-</b><i>DD</i><b>T</b><i>HH</i><b>:</b><i>MM</i><b>:</b><i>SS</i><b>.</b><i>SSS</i>
156 </blockquote>
157
158 A manifest has zero or more F-cards. Each F-card identifies a file or
159 subdirectory
160 that is part of the check-in. There are one, two, three, or four
161 arguments. The first argument is the pathname of the file or
162 subdirectory in the
163 check-in relative to the root of the project file hierarchy. No ".."
164 or "." directories are allowed within the filename. Space characters
165 are escaped as in C-card comment text. Backslash characters and
166 newlines are not allowed within filenames. The directory separator
167 character is a forward slash (ASCII 0x2F). The second argument to the
168 F-card is the full 40-character lower-case hexadecimal SHA1 hash of
169 the content artifact, or of the [#directory|directory artifact] if
170 the "d" permission is present. The second argument is required for baseline
171 manifests but is optional for delta manifests. When the second
172 argument to the F-card is omitted, it means that the file has been
173 deleted relative to the baseline (files removed in baseline manifests
174 versions are <em>not</em> added as F-cards). The optional 3rd argument
175 defines any special access permissions associated with the file. This
176 can be defined as "x" to mean that the file is executable or "l"
177 (small letter ell) to mean a symlink or "d" to mean the entry describes
178 a subdirectory rather than a file. All files and subdirectories
179 are always readable and writable. This can be expressed by "w"
180 permission if desired but the "w" permission is optional and is ignored
181 by Fossil. The file format might be extended with new permission
182 letters in the future. The optional 4th argument is the name of the
183 same file as it existed in the parent check-in. If the name of the
184 file is unchanged from its parent, then the 4th argument is omitted.
185
186 Manifests may be either flat or hierarchical. A flat manifest lists
187 all files in the check-in, including all files in subdirectories. A
188 flat manifest may not include F-cards with the "d" permission. An
189 heirarchical manifest only lists the files or subdirectories at the
190 top-level of the check-in. An heirarchical manifest may not include
191 an F-card entries that have a directory separator character ("/").
192 An heirarchical manifest may not be a delta-manifest (it may not have
193 a B-card) nor may it be used as a baseline-manifest by some other
194 delta-manifest. Hierarchical manifests
195 are only recognized by Fossil versions 1.35 and later. Repositories
196 that contain hierarchical manifests will cause problems for earlier
197 versions of Fossil.
198
199 When an F-card refers to a subdirectory (that is to say, when the
200 F-card is part of an hierarchical manifest and contains the "d"
201 permission) then the referenced directory artifact must be a
202 [#directory|well-formed directory artifact] that contains a
203 G-card that exactly matches the name of the subdirectory as assigned
204 by the F-card. If these conditions are not met, then the artifact is
205 not a valid manifest.
206
207 A manifest has zero or one P-cards. Most manifests have one P-card.
208 The P-card has a varying number of arguments that
209 defines other manifests from which the current manifest
210 is derived. Each argument is an 40-character lowercase
@@ -281,30 +273,29 @@
281 A directory artifact describes the files and subdirectories within a
282 single directory of an hierarchical manifest. Directory artifacts
283 are only recognized by Fossil version 1.35 and later (circa 2015-12-23).
284
285 Directory artifacts contain zero or more F-cards and exactly one Z-card,
286 in the same format as a manifest. A directory artifact also contains
287 exactly one G-card with a single argument that is the pathname
288 of the directory relative to the root of the repository.
289 The format of the directory name in a G-card is
290 the same as the format of a filename in an F-card.
291
292 The F-cards in a directory artifact may not contain directory separator
293 characters. The content of subdirectories must be expressed using
294 additional directory artifacts referenced by F-cards with the "d"
295 permission. All F-cards in a directory artifact must contain at least
296 two arguments.
297
298 When an F-card X of directory artifact Y refers to
299 subdirectory Z (that is to say, when F-card X contains
300 the "d" permission and the second argument on X is the SHA1
301 hash of directory artifact Z) then the G-card of Z must
302 be the concatenation of the G-card on artifact Y, the
303 directory separator character "/" and the first argument to
304 the F-card X. Otherwise, the artifact Y is not a valid
305 directory artifact.
306
307 <a name="cluster"></a>
308 <h3>1.3 Clusters Artifacts</h3>
309
310 A cluster is an artifact that declares the existence of other artifacts.
@@ -615,31 +606,18 @@
615 <td align=center><b>1</b></td>
616 <td>&nbsp;</td>
617 </tr>
618 <tr>
619 <td><b>B</b> <i>baseline</i></td>
620 <td align=center><b>0-1*</b></td>
621 <td>&nbsp;</td>
622 <td>&nbsp;</td>
623 <td>&nbsp;</td>
624 <td>&nbsp;</td>
625 <td>&nbsp;</td>
626 <td>&nbsp;</td>
627 <td>&nbsp;</td>
628 </tr>
629 <tr><td>&nbsp;</td><td colspan='8'>* = Required for delta manifests,
630 Disallowed for hierarchical manifests.</td></tr>
631 <tr>
632 <td><b>C</b> <i>comment-text</i></td>
633 <td align=center><b>1</b></td>
634 <td>&nbsp;</td>
635 <td>&nbsp;</td>
636 <td>&nbsp;</td>
637 <td>&nbsp;</td>
638 <td>&nbsp;</td>
639 <td align=center><b>0-1</b></td>
640 <td align=center><b>0-1</b></td>
641 </tr>
642 <tr>
643 <td><b>D</b> <i>date-time-stamp</i></td>
644 <td align=center><b>1</b></td>
645 <td>&nbsp;</td>
@@ -671,13 +649,13 @@
671 <td>&nbsp;</td>
672 <td>&nbsp;</td>
673 <td>&nbsp;</td>
674 </tr>
675 <tr>
676 <td><b>G</b> <i>fileame</i>
 
677 <td>&nbsp;</td>
678 <td align=center><b>1</b></td>
679 <td>&nbsp;</td>
680 <td>&nbsp;</td>
681 <td>&nbsp;</td>
682 <td>&nbsp;</td>
683 <td>&nbsp;</td>
@@ -870,12 +848,12 @@
870 is not a storage space issue. Fossil was originally designed
871 specifically to support the SQLite project, and as SQLite has fewer
872 than 2000 files on any give version, a flat baseline manifest design
873 worked well there and was simple to implement.
874
875 However, some project (ex: NetBSD) contain a huge number of files in
876 every version, and even though the manifests compressed will using
877 delta-compression, many CPU cycles had to be spent to decompress those
878 manifests. To help make Fossil more efficient for large projects like
879 NetBSD, the concept of a delta-manifest was added. This helped a lot
880 but was not a perfect solution.
881
882
--- www/fileformat.wiki
+++ www/fileformat.wiki
@@ -111,10 +111,11 @@
111 <blockquote>
112 <b>B</b> <i>baseline-manifest</i><br>
113 <b>C</b> <i>checkin-comment</i><br>
114 <b>D</b> <i>time-and-date-stamp</i><br>
115 <b>F</b> <i>filename</i> ?<i>SHA1-hash</i>? ?<i>permissions</i>? ?<i>old-name</i>?<br>
116 <b>G</b> <i>SHA1-hash</i><br>
117 <b>N</b> <i>mimetype</i><br>
118 <b>P</b> <i>SHA1-hash</i>+<br>
119 <b>Q</b> (<b>+</b>|<b>-</b>)<i>SHA1-hash</i> ?<i>SHA1-hash</i>?<br>
120 <b>R</b> <i>repository-checksum</i><br>
121 <b>T</b> (<b>+</b>|<b>-</b>|<b>*</b>)<i>tag-name</i> <b>*</b> ?<i>value</i>?<br>
@@ -153,58 +154,49 @@
154 <blockquote>
155 <i>YYYY</i><b>-</b><i>MM</i><b>-</b><i>DD</i><b>T</b><i>HH</i><b>:</b><i>MM</i><b>:</b><i>SS</i><br>
156 <i>YYYY</i><b>-</b><i>MM</i><b>-</b><i>DD</i><b>T</b><i>HH</i><b>:</b><i>MM</i><b>:</b><i>SS</i><b>.</b><i>SSS</i>
157 </blockquote>
158
159 A manifest has zero or more F-cards. Each F-card identifies a file
 
160 that is part of the check-in. There are one, two, three, or four
161 arguments. The first argument is the pathname of the file or
162 subdirectory in the
163 check-in relative to the root of the project file hierarchy. No ".."
164 or "." directories are allowed within the filename. Space characters
165 are escaped as in C-card comment text. Backslash characters and
166 newlines are not allowed within filenames. The directory separator
167 character is a forward slash (ASCII 0x2F). The second argument to the
168 F-card is the full 40-character lower-case hexadecimal SHA1 hash of
169 the content artifact. The second argument is required for baseline
 
170 manifests but is optional for delta manifests. When the second
171 argument to the F-card is omitted, it means that the file has been
172 deleted relative to the baseline (files removed in baseline manifests
173 versions are <em>not</em> added as F-cards). The optional 3rd argument
174 defines any special access permissions associated with the file.
175 In a manifest, the permission string may contain
176 an "x" to mean that the file is executable or "l"
177 (small letter ell) to mean the file is a symlink.
178 All files are always readable and writable. This can be expressed by "w"
179 permission if desired but the "w" permission is optional and is ignored
180 by Fossil. The file format might be extended with new permission
181 letters in the future. The optional 4th argument is the name of the
182 same file as it existed in the parent check-in. If the name of the
183 file is unchanged from its parent, then the 4th argument is omitted.
184
185 A G-card is an alternative way of specifying the files of a check-in.
186 A single manifest may have many F-cards or a single G-card, but not
187 both. A manifest containing F-cards is called a "flat manifest" and
188 a manifest that contains a G-card is called an "hierarchical manifest".
189
190 A G-card contains a single argument which is the SHA1 hash of a
191 [#directory|directory artifact] that defines the files and directories
192 at the top-level of the check-in. That directory artifact may contain
193 F-cards with the "d" permission that reference other subdirectories
194 in check-in file hierarchy.
195
196 A G-card may not be used in a delta manifest. No delta manifest may
197 refer to an hierarchical manifest as its baseline.
 
 
 
 
 
 
 
198
199 A manifest has zero or one P-cards. Most manifests have one P-card.
200 The P-card has a varying number of arguments that
201 defines other manifests from which the current manifest
202 is derived. Each argument is an 40-character lowercase
@@ -281,30 +273,29 @@
273 A directory artifact describes the files and subdirectories within a
274 single directory of an hierarchical manifest. Directory artifacts
275 are only recognized by Fossil version 1.35 and later (circa 2015-12-23).
276
277 Directory artifacts contain zero or more F-cards and exactly one Z-card,
278 in the same format as a manifest.
279
280 The F-cards of a directory artifact are slightly different from the F-cards
281 in a [#manifest|manifest artifact].
282
283 <ul>
284 <li>F-cards in a directory artifact may not have directory separator
285 characters in their filename. The F-cards of a directory specify only
286 the files and subdirectories in that directory.
287 <li>F-cards in a directory artifact may use the "d" permission character
288 to indicate that the entry refers to a subdirectory. In that case, the
289 SHA1 hash on the second argument refers to another directory artifact,
290 not to a content artifact.
291 <li>F-cards in a directory artifact must have at last two arguments.
292 </ul>
293
294 The Z-card in a directory artifact is required and has the same format as
295 it does in all other special artifacts. Directory artifacts may not be
296 PGP-clearsigned.
 
297
298 <a name="cluster"></a>
299 <h3>1.3 Clusters Artifacts</h3>
300
301 A cluster is an artifact that declares the existence of other artifacts.
@@ -615,31 +606,18 @@
606 <td align=center><b>1</b></td>
607 <td>&nbsp;</td>
608 </tr>
609 <tr>
610 <td><b>B</b> <i>baseline</i></td>
611 <td align=center><b>0-1</b></td>
612 <td>&nbsp;</td>
613 <td>&nbsp;</td>
614 <td>&nbsp;</td>
615 <td>&nbsp;</td>
616 <td>&nbsp;</td>
617 <td>&nbsp;</td>
618 <td>&nbsp;</td>
 
 
 
 
 
 
 
 
 
 
 
 
 
619 </tr>
620 <tr>
621 <td><b>D</b> <i>date-time-stamp</i></td>
622 <td align=center><b>1</b></td>
623 <td>&nbsp;</td>
@@ -671,13 +649,13 @@
649 <td>&nbsp;</td>
650 <td>&nbsp;</td>
651 <td>&nbsp;</td>
652 </tr>
653 <tr>
654 <td><b>G</b> <i>SHA1-hash</i>
655 <td align=center><b>0-1</b></td>
656 <td>&nbsp;</td>
 
657 <td>&nbsp;</td>
658 <td>&nbsp;</td>
659 <td>&nbsp;</td>
660 <td>&nbsp;</td>
661 <td>&nbsp;</td>
@@ -870,12 +848,12 @@
848 is not a storage space issue. Fossil was originally designed
849 specifically to support the SQLite project, and as SQLite has fewer
850 than 2000 files on any give version, a flat baseline manifest design
851 worked well there and was simple to implement.
852
853 However, some other projects (ex: NetBSD) contain a huge number of files in
854 every check-in, and even though the manifests compressed will using
855 delta-compression, many CPU cycles had to be spent to decompress those
856 manifests. To help make Fossil more efficient for large projects like
857 NetBSD, the concept of a delta-manifest was added. This helped a lot
858 but was not a perfect solution.
859
860

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button