Fossil SCM

Closing off the containers project: added the doc to the permuted index, noted the changes in the changelog, and removed all the hedging about WAL mode in the doc, having failed to make WAL fail in this scenario.

wyoung 2022-10-06 02:44 trunk
Commit 92982dc4e21f36e09fa1884438ad307e7c784b96903fbda7ef3e2fc97535f9ba
--- www/changes.wiki
+++ www/changes.wiki
@@ -7,10 +7,14 @@
77
* The /unsubscribe page now requests comformation. [./alerts.md|Email notifications]
88
now contain only an "Unsubscribe" link, and not a link to subscription management.
99
* More elements of the /info page are now inside of an accordion.
1010
* Replace the <tt>--dryrun</tt> flag with <tt>--dry-run</tt> in all
1111
commands which still used the former name, for consistency.
12
+ * Rebuilt the stock Dockerfile to create a "from scratch" Busybox
13
+ based container image (via Alpine Linux) instead of Fedora
14
+ * Added a new document describing how to customize, use, and run
15
+ that container.
1216
1317
<h2 id='v2_19'>Changes for version 2.19 (2022-07-21)</h2>
1418
* On file listing pages, sort filenames using the "uintnocase" collating
1519
sequence, so that filenames that contains embedded integers sort in
1620
numeric order even if they contain a different number of digits.
1721
--- www/changes.wiki
+++ www/changes.wiki
@@ -7,10 +7,14 @@
7 * The /unsubscribe page now requests comformation. [./alerts.md|Email notifications]
8 now contain only an "Unsubscribe" link, and not a link to subscription management.
9 * More elements of the /info page are now inside of an accordion.
10 * Replace the <tt>--dryrun</tt> flag with <tt>--dry-run</tt> in all
11 commands which still used the former name, for consistency.
 
 
 
 
12
13 <h2 id='v2_19'>Changes for version 2.19 (2022-07-21)</h2>
14 * On file listing pages, sort filenames using the "uintnocase" collating
15 sequence, so that filenames that contains embedded integers sort in
16 numeric order even if they contain a different number of digits.
17
--- www/changes.wiki
+++ www/changes.wiki
@@ -7,10 +7,14 @@
7 * The /unsubscribe page now requests comformation. [./alerts.md|Email notifications]
8 now contain only an "Unsubscribe" link, and not a link to subscription management.
9 * More elements of the /info page are now inside of an accordion.
10 * Replace the <tt>--dryrun</tt> flag with <tt>--dry-run</tt> in all
11 commands which still used the former name, for consistency.
12 * Rebuilt the stock Dockerfile to create a "from scratch" Busybox
13 based container image (via Alpine Linux) instead of Fedora
14 * Added a new document describing how to customize, use, and run
15 that container.
16
17 <h2 id='v2_19'>Changes for version 2.19 (2022-07-21)</h2>
18 * On file listing pages, sort filenames using the "uintnocase" collating
19 sequence, so that filenames that contains embedded integers sort in
20 numeric order even if they contain a different number of digits.
21
--- www/containers.md
+++ www/containers.md
@@ -168,41 +168,14 @@
168168
the container while there’s an active WAL, the Fossil instance outside
169169
won’t know about it. It will think it needs to write *its own*
170170
`-journal` and `-wal` files *outside* the container, creating a high
171171
risk of [database corruption][dbcorr].
172172
173
-If we map a whole directory, both sides see the same set of WAL files,
174
-so there is at least a *hope* that WAL will work properly across that
175
-boundary. The success of the scheme depends on the `mmap()` and shared
176
-memory system calls being coordinated properly by the OS kernel the two
177
-worlds share.
178
-
179
-There is [a plan](https://tangentsoft.com/sqlite/dir/walbanger?ci=trunk)
180
-for proving to a reasonable level of confidence that using WAL across a
181
-container boundary is safe, but this effort is still in the early stages
182
-as of this writing.
183
-
184
-Until that’s settled, my advice to those who want to use WAL mode on
185
-containerized servers is to map the whole directory as shown in these
186
-examples, but then isolate the two sides with a secondary clone. On the
187
-outside, you say something like this:
188
-
189
-```
190
- $ fossil clone https://[email protected]/myproject ~/museum/myproject.fossil
191
-```
192
-
193
-That lands you with two side-by-side clones of the repository on the
194
-server:
195
-
196
-```
197
- ~/museum/myproject.fossil ← local-use clone
198
- ~/museum/myproject/repo.fossil ← served by container only
199
-```
200
-
201
-You open the secondary clone for local use, not the one being served by
202
-the container. When you commit, Fossil’s autosync feature pushes the
203
-change up through the HTTPS link to land safely inside the container.
173
+If we map a whole directory, both sides see the same set of WAL files.
174
+[Testing](https://tangentsoft.com/sqlite/dir/walbanger?ci=trunk)
175
+gives us a reasonable level of confidence that using WAL across a
176
+container boundary is safe when used in this manner.
204177
205178
[dbcorr]: https://www.sqlite.org/howtocorrupt.html#_deleting_a_hot_journal
206179
[wal]: https://www.sqlite.org/wal.html
207180
208181
209182
--- www/containers.md
+++ www/containers.md
@@ -168,41 +168,14 @@
168 the container while there’s an active WAL, the Fossil instance outside
169 won’t know about it. It will think it needs to write *its own*
170 `-journal` and `-wal` files *outside* the container, creating a high
171 risk of [database corruption][dbcorr].
172
173 If we map a whole directory, both sides see the same set of WAL files,
174 so there is at least a *hope* that WAL will work properly across that
175 boundary. The success of the scheme depends on the `mmap()` and shared
176 memory system calls being coordinated properly by the OS kernel the two
177 worlds share.
178
179 There is [a plan](https://tangentsoft.com/sqlite/dir/walbanger?ci=trunk)
180 for proving to a reasonable level of confidence that using WAL across a
181 container boundary is safe, but this effort is still in the early stages
182 as of this writing.
183
184 Until that’s settled, my advice to those who want to use WAL mode on
185 containerized servers is to map the whole directory as shown in these
186 examples, but then isolate the two sides with a secondary clone. On the
187 outside, you say something like this:
188
189 ```
190 $ fossil clone https://[email protected]/myproject ~/museum/myproject.fossil
191 ```
192
193 That lands you with two side-by-side clones of the repository on the
194 server:
195
196 ```
197 ~/museum/myproject.fossil ← local-use clone
198 ~/museum/myproject/repo.fossil ← served by container only
199 ```
200
201 You open the secondary clone for local use, not the one being served by
202 the container. When you commit, Fossil’s autosync feature pushes the
203 change up through the HTTPS link to land safely inside the container.
204
205 [dbcorr]: https://www.sqlite.org/howtocorrupt.html#_deleting_a_hot_journal
206 [wal]: https://www.sqlite.org/wal.html
207
208
209
--- www/containers.md
+++ www/containers.md
@@ -168,41 +168,14 @@
168 the container while there’s an active WAL, the Fossil instance outside
169 won’t know about it. It will think it needs to write *its own*
170 `-journal` and `-wal` files *outside* the container, creating a high
171 risk of [database corruption][dbcorr].
172
173 If we map a whole directory, both sides see the same set of WAL files.
174 [Testing](https://tangentsoft.com/sqlite/dir/walbanger?ci=trunk)
175 gives us a reasonable level of confidence that using WAL across a
176 container boundary is safe when used in this manner.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
177
178 [dbcorr]: https://www.sqlite.org/howtocorrupt.html#_deleting_a_hot_journal
179 [wal]: https://www.sqlite.org/wal.html
180
181
182
--- www/mkindex.tcl
+++ www/mkindex.tcl
@@ -38,10 +38,11 @@
3838
ckout-workflows.md {Check-Out Workflows}
3939
co-vs-up.md {Checkout vs Update}
4040
copyright-release.html {Contributor License Agreement}
4141
concepts.wiki {Fossil Core Concepts}
4242
contact.md {Developer Contact Information}
43
+ containers.md {OCI Containers}
4344
contribute.wiki {Contributing Code or Documentation To The Fossil Project}
4445
css-tricks.md {Fossil CSS Tips and Tricks}
4546
customgraph.md {Theming: Customizing the Timeline Graph}
4647
customskin.md {Theming: Customizing The Appearance of Web Pages}
4748
customskin.md {Custom Skins}
4849
--- www/mkindex.tcl
+++ www/mkindex.tcl
@@ -38,10 +38,11 @@
38 ckout-workflows.md {Check-Out Workflows}
39 co-vs-up.md {Checkout vs Update}
40 copyright-release.html {Contributor License Agreement}
41 concepts.wiki {Fossil Core Concepts}
42 contact.md {Developer Contact Information}
 
43 contribute.wiki {Contributing Code or Documentation To The Fossil Project}
44 css-tricks.md {Fossil CSS Tips and Tricks}
45 customgraph.md {Theming: Customizing the Timeline Graph}
46 customskin.md {Theming: Customizing The Appearance of Web Pages}
47 customskin.md {Custom Skins}
48
--- www/mkindex.tcl
+++ www/mkindex.tcl
@@ -38,10 +38,11 @@
38 ckout-workflows.md {Check-Out Workflows}
39 co-vs-up.md {Checkout vs Update}
40 copyright-release.html {Contributor License Agreement}
41 concepts.wiki {Fossil Core Concepts}
42 contact.md {Developer Contact Information}
43 containers.md {OCI Containers}
44 contribute.wiki {Contributing Code or Documentation To The Fossil Project}
45 css-tricks.md {Fossil CSS Tips and Tricks}
46 customgraph.md {Theming: Customizing the Timeline Graph}
47 customskin.md {Theming: Customizing The Appearance of Web Pages}
48 customskin.md {Custom Skins}
49
--- www/permutedindex.html
+++ www/permutedindex.html
@@ -95,10 +95,11 @@
9595
<li><a href="json-api/index.md">JSON API</a></li>
9696
<li><a href="mirrorlimitations.md">Limitations On Git Mirrors</a></li>
9797
<li><a href="../../../help">Lists of Commands and Webpages</a></li>
9898
<li><a href="loadmgmt.md">Managing Server Load</a></li>
9999
<li><a href="../../../md_rules">Markdown Formatting Rules</a></li>
100
+<li><a href="containers.md">OCI Containers</a></li>
100101
<li><a href="password.wiki">Password Management And Authentication</a></li>
101102
<li><a href="stats.wiki">Performance Statistics</a></li>
102103
<li><a href="../test/release-checklist.wiki">Pre-Release Testing Checklist</a></li>
103104
<li><a href="pop.wiki">Principles Of Operation</a></li>
104105
<li><a href="qandc.wiki">Questions And Criticisms</a></li>
105106
--- www/permutedindex.html
+++ www/permutedindex.html
@@ -95,10 +95,11 @@
95 <li><a href="json-api/index.md">JSON API</a></li>
96 <li><a href="mirrorlimitations.md">Limitations On Git Mirrors</a></li>
97 <li><a href="../../../help">Lists of Commands and Webpages</a></li>
98 <li><a href="loadmgmt.md">Managing Server Load</a></li>
99 <li><a href="../../../md_rules">Markdown Formatting Rules</a></li>
 
100 <li><a href="password.wiki">Password Management And Authentication</a></li>
101 <li><a href="stats.wiki">Performance Statistics</a></li>
102 <li><a href="../test/release-checklist.wiki">Pre-Release Testing Checklist</a></li>
103 <li><a href="pop.wiki">Principles Of Operation</a></li>
104 <li><a href="qandc.wiki">Questions And Criticisms</a></li>
105
--- www/permutedindex.html
+++ www/permutedindex.html
@@ -95,10 +95,11 @@
95 <li><a href="json-api/index.md">JSON API</a></li>
96 <li><a href="mirrorlimitations.md">Limitations On Git Mirrors</a></li>
97 <li><a href="../../../help">Lists of Commands and Webpages</a></li>
98 <li><a href="loadmgmt.md">Managing Server Load</a></li>
99 <li><a href="../../../md_rules">Markdown Formatting Rules</a></li>
100 <li><a href="containers.md">OCI Containers</a></li>
101 <li><a href="password.wiki">Password Management And Authentication</a></li>
102 <li><a href="stats.wiki">Performance Statistics</a></li>
103 <li><a href="../test/release-checklist.wiki">Pre-Release Testing Checklist</a></li>
104 <li><a href="pop.wiki">Principles Of Operation</a></li>
105 <li><a href="qandc.wiki">Questions And Criticisms</a></li>
106

Keyboard Shortcuts

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