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.
Commit
c7afd68b9410f4111d1c2a7e47d216338a728675704aa6ab95478baa14c63cb4
Parent
69a6f453872b5c3…
1 file changed
+51
-36
+51
-36
| --- www/fossil-v-git.wiki | ||
| +++ www/fossil-v-git.wiki | ||
| @@ -113,36 +113,41 @@ | ||
| 113 | 113 | [/help?cmd=ui|UI], |
| 114 | 114 | protected by [./caps/ | a fine-grained role-based |
| 115 | 115 | access control system]. |
| 116 | 116 | These additional capabilities are available for Git as 3rd-party |
| 117 | 117 | 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 | |
| 119 | 119 | "[https://github.com/ | GitHub]-in-a-box." |
| 120 | 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 | |
| 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 | |
| 129 | 134 | that you forgot to commit prior to the end of your working day, across |
| 130 | 135 | all repos. |
| 131 | 136 | |
| 132 | 137 | Whenever Fossil is told to modify the local checkout in some destructive |
| 133 | 138 | way ([/help?cmd=rm|fossil rm], [/help?cmd=update|fossil update], |
| 134 | 139 | [/help?cmd=revert|fossil revert], etc.) Fossil remembers the prior state |
| 135 | 140 | 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 | |
| 138 | 143 | the local check-out directory only, Fossil makes undo |
| 139 | 144 | [https://git-scm.com/book/en/v2/Git-Basics-Undoing-Things|easier than in |
| 140 | 145 | Git]. |
| 141 | 146 | |
| 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: | |
| 144 | 149 | the stand-alone Fossil executable together with a [./server/any/cgi.md|2-line CGI script] |
| 145 | 150 | suffice to instantiate a full-featured developer website. To accomplish |
| 146 | 151 | the same using Git requires locating, installing, configuring, integrating, |
| 147 | 152 | and managing a wide assortment of separate tools. Standing up a developer |
| 148 | 153 | website using Fossil can be done in minutes, whereas doing the same using |
| @@ -165,27 +170,35 @@ | ||
| 165 | 170 | so that most people end up installing it via some kind of package |
| 166 | 171 | manager, simply because the creation of complicated binary packages is |
| 167 | 172 | best delegated to people skilled in their creation. Normal Git users are |
| 168 | 173 | not expected to build Git from source and install it themselves. |
| 169 | 174 | |
| 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 — 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 | |
| 178 | 198 | 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. | |
| 187 | 200 | |
| 188 | 201 | Fossil is easy to build from sources. Just run |
| 189 | 202 | "<tt>./configure && make</tt>" on POSIX systems and |
| 190 | 203 | "<tt>nmake /f Makefile.msc</tt>" on Windows. |
| 191 | 204 | |
| @@ -208,18 +221,20 @@ | ||
| 208 | 221 | matters is effectiveness and efficiency. We believe Fossil achieves |
| 209 | 222 | this. |
| 210 | 223 | |
| 211 | 224 | The above size comparisons aren't apples-to-apples anyway. We've |
| 212 | 225 | 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, | |
| 218 | 230 | 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 | |
| 221 | 236 | a local rack server or blade to it, since its minimum requirements are |
| 222 | 237 | more or less a description of the smallest |
| 223 | 238 | thing you could call a "server" these days, but when you go to host that |
| 224 | 239 | in the cloud, you can expect to pay about 8 times as much to comfortably host |
| 225 | 240 | GitLab as for Fossil.³ This difference is largely due to basic |
| 226 | 241 |
| --- 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 — 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 |