Fossil SCM

Assorted improvements to the first few sections of the fossil-v-git doc, mainly in updating them to track changes to world facts and to clarify the presentation.

wyoung 2022-08-05 12:05 trunk
Commit c7afd68b9410f4111d1c2a7e47d216338a728675704aa6ab95478baa14c63cb4
1 file changed +51 -36
--- www/fossil-v-git.wiki
+++ www/fossil-v-git.wiki
@@ -113,36 +113,41 @@
113113
[/help?cmd=ui|UI],
114114
protected by [./caps/ | a fine-grained role-based
115115
access control system].
116116
These additional capabilities are available for Git as 3rd-party
117117
add-ons, but with Fossil they are integrated into
118
-the design. One way to describe Fossil is that it is
118
+the design, to the point that it approximates
119119
"[https://github.com/ | GitHub]-in-a-box."
120120
121
-Fossil can do operations over all local repo clones and check-out
122
-directories with a single command. For example, Fossil lets you say
123
-"<tt>fossil all sync</tt>" on a laptop prior to taking it off the network
124
-hosting those repos. You can sync up to all of the private repos on your
125
-company network plus those public Internet-hosted repos you use. Whether
126
-going out for a working lunch or on a transoceanic airplane trip, one
127
-command gets you in sync. This works with several other Fossil
128
-sub-commands, such as "<tt>fossil all changes</tt>" to get a list of files
121
+Even if you only want straight version control, Fossil has affordances
122
+not available in Git.
123
+
124
+For instance, Fossil can do operations over all local repo clones and
125
+check-out directories with a single command. You can say "<tt>fossil
126
+all sync</tt>" on a laptop prior to taking it off the network hosting
127
+those repos, as before going on a trip. It doesn't matter if those
128
+repos are private and restricted to your company network or public
129
+Internet-hosted repos, you get synced up with everything you need while
130
+off-network.
131
+
132
+You get the same capability with several other Fossil
133
+sub-commands as well, such as "<tt>fossil all changes</tt>" to get a list of files
129134
that you forgot to commit prior to the end of your working day, across
130135
all repos.
131136
132137
Whenever Fossil is told to modify the local checkout in some destructive
133138
way ([/help?cmd=rm|fossil rm], [/help?cmd=update|fossil update],
134139
[/help?cmd=revert|fossil revert], etc.) Fossil remembers the prior state
135140
and is able to return the check-out directory to that state with a
136
-<tt>fossil undo</tt> command. You cannot undo a commit in Fossil
137
-([#history | on purpose!]) but as long as the change remains confined to
141
+<tt>fossil undo</tt> command. While you cannot undo a commit in Fossil
142
+— [#history | on purpose!] — as long as the change remains confined to
138143
the local check-out directory only, Fossil makes undo
139144
[https://git-scm.com/book/en/v2/Git-Basics-Undoing-Things|easier than in
140145
Git].
141146
142
-For developers who choose to self-host projects (rather than using a
143
-3rd-party service such as GitHub) Fossil is much easier to set up, since
147
+For developers who choose to self-host projects rather than rely on a
148
+3rd-party service such as GitHub, Fossil is much easier to set up:
144149
the stand-alone Fossil executable together with a [./server/any/cgi.md|2-line CGI script]
145150
suffice to instantiate a full-featured developer website. To accomplish
146151
the same using Git requires locating, installing, configuring, integrating,
147152
and managing a wide assortment of separate tools. Standing up a developer
148153
website using Fossil can be done in minutes, whereas doing the same using
@@ -165,27 +170,35 @@
165170
so that most people end up installing it via some kind of package
166171
manager, simply because the creation of complicated binary packages is
167172
best delegated to people skilled in their creation. Normal Git users are
168173
not expected to build Git from source and install it themselves.
169174
170
-Fossil is a single self-contained stand-alone executable which by default
171
-depends only on common platform libraries. You can statically link
172
-to get an executable with no external dependencies at all &mdash; a useful
173
-feature for running inside a restrictive
174
-[https://en.wikipedia.org/wiki/Chroot|chroot jail].
175
-
176
-The precompiled Fossil binaries are delivered as just a single
177
-executable. The precompiled Windows deliveries are just a ZIP archive
175
+Fossil is a single self-contained stand-alone executable which
176
+depends only on common platform libraries in its default configuration.
177
+To install one of [https://fossil-scm.org/home/uv/download.html | our
178
+precompiled binaries], unpack the executable from the archive and put it
179
+somewhere in your <tt>PATH</tt>. To uninstall it, delete the executable.
180
+
181
+This policy is particularly useful when running Fossil inside a
182
+restrictive container, anything from [./chroot.md | classic chroot
183
+jails] to modern [https://en.wikipedia.org/wiki/OS-level_virtualization
184
+| OS-level virtualization mechanisms] such as
185
+[https://en.wikipedia.org/wiki/Docker_(software) | Docker].
186
+([src:/file?name=Dockerfile&ci=trunk | We ship a <tt>Dockerfile</tt>].)
187
+
188
+Modern Linux systems tend to make full static linking
189
+[https://stackoverflow.com/questions/3430400/linux-static-linking-is-dead
190
+| difficult], but our official executables do statically link to OpenSSL
191
+to remove a version dependency, resulting in an executable that's around
192
+6 MiB, depending on the platform. ([Release Build How-To | Details].)
193
+The result is dependent only upon widespread platform libraries with
194
+stable ABIs such as glibc, zlib, etc.
195
+
196
+Full static linking is easier on Windows, so our precompiled Windows
197
+binaries are just a ZIP archive
178198
containing only "<tt>fossil.exe</tt>". There is no "<tt>setup.exe</tt>"
179
-to run. Linux and Mac precompiled binaries are a tarball containing
180
-just the "<tt>fossil</tt>" executable. To install, just put the
181
-executable on your PATH. To uninstall, just delete the executable.
182
-To upgrade (or downgrade) simply replace the executable.
183
-
184
-A typical Fossil executable is between 5 and 7 megabytes uncompressed
185
-(as of 2020-12-12),
186
-assuming that the executable is statically linked against OpenSSL.
199
+to run.
187200
188201
Fossil is easy to build from sources. Just run
189202
"<tt>./configure && make</tt>" on POSIX systems and
190203
"<tt>nmake /f Makefile.msc</tt>" on Windows.
191204
@@ -208,18 +221,20 @@
208221
matters is effectiveness and efficiency. We believe Fossil achieves
209222
this.
210223
211224
The above size comparisons aren't apples-to-apples anyway. We've
212225
compared the size of Fossil with all of its [#features | many built-in
213
-features] to a fairly minimal Git installation. You must add a lot
214
-of third-party
215
-software to Git to give it a Fossil-equivalent feature set. Consider
216
-[https://about.gitlab.com/|GitLab], a third-party extension to Git
217
-wrapping it in many features, making it roughly Fossil-equivalent,
226
+features] to a fairly minimal Git installation. You must add a lot of
227
+third-party software to Git to give it a Fossil-equivalent feature set.
228
+Consider [https://about.gitlab.com/|GitLab], a third-party extension to
229
+Git wrapping it in many features, making it roughly Fossil-equivalent,
218230
though [https://docs.gitlab.com/ee/install/requirements.html|much more
219
-resource hungry] and hence more costly to run than the equivalent
220
-Fossil setup. GitLab's basic requirements are easy to accept when you're dedicating
231
+resource hungry] and hence more costly to run than the equivalent Fossil
232
+setup. [https://hub.docker.com/r/gitlab/gitlab-ce/ | The official GitLab
233
+Community Edition container] currently clocks in at 2.66 GiB!
234
+
235
+GitLab's requirements are easy to accept when you're dedicating
221236
a local rack server or blade to it, since its minimum requirements are
222237
more or less a description of the smallest
223238
thing you could call a "server" these days, but when you go to host that
224239
in the cloud, you can expect to pay about 8 times as much to comfortably host
225240
GitLab as for Fossil.³ This difference is largely due to basic
226241
--- www/fossil-v-git.wiki
+++ www/fossil-v-git.wiki
@@ -113,36 +113,41 @@
113 [/help?cmd=ui|UI],
114 protected by [./caps/ | a fine-grained role-based
115 access control system].
116 These additional capabilities are available for Git as 3rd-party
117 add-ons, but with Fossil they are integrated into
118 the design. One way to describe Fossil is that it is
119 "[https://github.com/ | GitHub]-in-a-box."
120
121 Fossil can do operations over all local repo clones and check-out
122 directories with a single command. For example, Fossil lets you say
123 "<tt>fossil all sync</tt>" on a laptop prior to taking it off the network
124 hosting those repos. You can sync up to all of the private repos on your
125 company network plus those public Internet-hosted repos you use. Whether
126 going out for a working lunch or on a transoceanic airplane trip, one
127 command gets you in sync. This works with several other Fossil
128 sub-commands, such as "<tt>fossil all changes</tt>" to get a list of files
 
 
 
 
 
129 that you forgot to commit prior to the end of your working day, across
130 all repos.
131
132 Whenever Fossil is told to modify the local checkout in some destructive
133 way ([/help?cmd=rm|fossil rm], [/help?cmd=update|fossil update],
134 [/help?cmd=revert|fossil revert], etc.) Fossil remembers the prior state
135 and is able to return the check-out directory to that state with a
136 <tt>fossil undo</tt> command. You cannot undo a commit in Fossil
137 ([#history | on purpose!]) but as long as the change remains confined to
138 the local check-out directory only, Fossil makes undo
139 [https://git-scm.com/book/en/v2/Git-Basics-Undoing-Things|easier than in
140 Git].
141
142 For developers who choose to self-host projects (rather than using a
143 3rd-party service such as GitHub) Fossil is much easier to set up, since
144 the stand-alone Fossil executable together with a [./server/any/cgi.md|2-line CGI script]
145 suffice to instantiate a full-featured developer website. To accomplish
146 the same using Git requires locating, installing, configuring, integrating,
147 and managing a wide assortment of separate tools. Standing up a developer
148 website using Fossil can be done in minutes, whereas doing the same using
@@ -165,27 +170,35 @@
165 so that most people end up installing it via some kind of package
166 manager, simply because the creation of complicated binary packages is
167 best delegated to people skilled in their creation. Normal Git users are
168 not expected to build Git from source and install it themselves.
169
170 Fossil is a single self-contained stand-alone executable which by default
171 depends only on common platform libraries. You can statically link
172 to get an executable with no external dependencies at all &mdash; a useful
173 feature for running inside a restrictive
174 [https://en.wikipedia.org/wiki/Chroot|chroot jail].
175
176 The precompiled Fossil binaries are delivered as just a single
177 executable. The precompiled Windows deliveries are just a ZIP archive
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
178 containing only "<tt>fossil.exe</tt>". There is no "<tt>setup.exe</tt>"
179 to run. Linux and Mac precompiled binaries are a tarball containing
180 just the "<tt>fossil</tt>" executable. To install, just put the
181 executable on your PATH. To uninstall, just delete the executable.
182 To upgrade (or downgrade) simply replace the executable.
183
184 A typical Fossil executable is between 5 and 7 megabytes uncompressed
185 (as of 2020-12-12),
186 assuming that the executable is statically linked against OpenSSL.
187
188 Fossil is easy to build from sources. Just run
189 "<tt>./configure && make</tt>" on POSIX systems and
190 "<tt>nmake /f Makefile.msc</tt>" on Windows.
191
@@ -208,18 +221,20 @@
208 matters is effectiveness and efficiency. We believe Fossil achieves
209 this.
210
211 The above size comparisons aren't apples-to-apples anyway. We've
212 compared the size of Fossil with all of its [#features | many built-in
213 features] to a fairly minimal Git installation. You must add a lot
214 of third-party
215 software to Git to give it a Fossil-equivalent feature set. Consider
216 [https://about.gitlab.com/|GitLab], a third-party extension to Git
217 wrapping it in many features, making it roughly Fossil-equivalent,
218 though [https://docs.gitlab.com/ee/install/requirements.html|much more
219 resource hungry] and hence more costly to run than the equivalent
220 Fossil setup. GitLab's basic requirements are easy to accept when you're dedicating
 
 
 
221 a local rack server or blade to it, since its minimum requirements are
222 more or less a description of the smallest
223 thing you could call a "server" these days, but when you go to host that
224 in the cloud, you can expect to pay about 8 times as much to comfortably host
225 GitLab as for Fossil.³ This difference is largely due to basic
226
--- www/fossil-v-git.wiki
+++ www/fossil-v-git.wiki
@@ -113,36 +113,41 @@
113 [/help?cmd=ui|UI],
114 protected by [./caps/ | a fine-grained role-based
115 access control system].
116 These additional capabilities are available for Git as 3rd-party
117 add-ons, but with Fossil they are integrated into
118 the design, to the point that it approximates
119 "[https://github.com/ | GitHub]-in-a-box."
120
121 Even if you only want straight version control, Fossil has affordances
122 not available in Git.
123
124 For instance, Fossil can do operations over all local repo clones and
125 check-out directories with a single command. You can say "<tt>fossil
126 all sync</tt>" on a laptop prior to taking it off the network hosting
127 those repos, as before going on a trip. It doesn't matter if those
128 repos are private and restricted to your company network or public
129 Internet-hosted repos, you get synced up with everything you need while
130 off-network.
131
132 You get the same capability with several other Fossil
133 sub-commands as well, such as "<tt>fossil all changes</tt>" to get a list of files
134 that you forgot to commit prior to the end of your working day, across
135 all repos.
136
137 Whenever Fossil is told to modify the local checkout in some destructive
138 way ([/help?cmd=rm|fossil rm], [/help?cmd=update|fossil update],
139 [/help?cmd=revert|fossil revert], etc.) Fossil remembers the prior state
140 and is able to return the check-out directory to that state with a
141 <tt>fossil undo</tt> command. While you cannot undo a commit in Fossil
142 — [#history | on purpose!] — as long as the change remains confined to
143 the local check-out directory only, Fossil makes undo
144 [https://git-scm.com/book/en/v2/Git-Basics-Undoing-Things|easier than in
145 Git].
146
147 For developers who choose to self-host projects rather than rely on a
148 3rd-party service such as GitHub, Fossil is much easier to set up:
149 the stand-alone Fossil executable together with a [./server/any/cgi.md|2-line CGI script]
150 suffice to instantiate a full-featured developer website. To accomplish
151 the same using Git requires locating, installing, configuring, integrating,
152 and managing a wide assortment of separate tools. Standing up a developer
153 website using Fossil can be done in minutes, whereas doing the same using
@@ -165,27 +170,35 @@
170 so that most people end up installing it via some kind of package
171 manager, simply because the creation of complicated binary packages is
172 best delegated to people skilled in their creation. Normal Git users are
173 not expected to build Git from source and install it themselves.
174
175 Fossil is a single self-contained stand-alone executable which
176 depends only on common platform libraries in its default configuration.
177 To install one of [https://fossil-scm.org/home/uv/download.html | our
178 precompiled binaries], unpack the executable from the archive and put it
179 somewhere in your <tt>PATH</tt>. To uninstall it, delete the executable.
180
181 This policy is particularly useful when running Fossil inside a
182 restrictive container, anything from [./chroot.md | classic chroot
183 jails] to modern [https://en.wikipedia.org/wiki/OS-level_virtualization
184 | OS-level virtualization mechanisms] such as
185 [https://en.wikipedia.org/wiki/Docker_(software) | Docker].
186 ([src:/file?name=Dockerfile&ci=trunk | We ship a <tt>Dockerfile</tt>].)
187
188 Modern Linux systems tend to make full static linking
189 [https://stackoverflow.com/questions/3430400/linux-static-linking-is-dead
190 | difficult], but our official executables do statically link to OpenSSL
191 to remove a version dependency, resulting in an executable that's around
192 6 MiB, depending on the platform. ([Release Build How-To | Details].)
193 The result is dependent only upon widespread platform libraries with
194 stable ABIs such as glibc, zlib, etc.
195
196 Full static linking is easier on Windows, so our precompiled Windows
197 binaries are just a ZIP archive
198 containing only "<tt>fossil.exe</tt>". There is no "<tt>setup.exe</tt>"
199 to run.
 
 
 
 
 
 
 
200
201 Fossil is easy to build from sources. Just run
202 "<tt>./configure && make</tt>" on POSIX systems and
203 "<tt>nmake /f Makefile.msc</tt>" on Windows.
204
@@ -208,18 +221,20 @@
221 matters is effectiveness and efficiency. We believe Fossil achieves
222 this.
223
224 The above size comparisons aren't apples-to-apples anyway. We've
225 compared the size of Fossil with all of its [#features | many built-in
226 features] to a fairly minimal Git installation. You must add a lot of
227 third-party software to Git to give it a Fossil-equivalent feature set.
228 Consider [https://about.gitlab.com/|GitLab], a third-party extension to
229 Git wrapping it in many features, making it roughly Fossil-equivalent,
 
230 though [https://docs.gitlab.com/ee/install/requirements.html|much more
231 resource hungry] and hence more costly to run than the equivalent Fossil
232 setup. [https://hub.docker.com/r/gitlab/gitlab-ce/ | The official GitLab
233 Community Edition container] currently clocks in at 2.66 GiB!
234
235 GitLab's requirements are easy to accept when you're dedicating
236 a local rack server or blade to it, since its minimum requirements are
237 more or less a description of the smallest
238 thing you could call a "server" these days, but when you go to host that
239 in the cloud, you can expect to pay about 8 times as much to comfortably host
240 GitLab as for Fossil.³ This difference is largely due to basic
241

Keyboard Shortcuts

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