Fossil SCM
Added an aside in fossil-v-git about Git's minority use of high-level scripting languages aside from its dominant one, POSIX shell, with a comparison to Fossil's own use of high-level scripting.
Commit
1296ee46a3ad9f03dd315019ce187b32241d70be0741668a25f5fa6fb11e4174
Parent
595559f45ca9789…
1 file changed
+15
-2
+15
-2
| --- www/fossil-v-git.wiki | ||
| +++ www/fossil-v-git.wiki | ||
| @@ -247,11 +247,11 @@ | ||
| 247 | 247 | (both [https://git-scm.com/download/win|first-party] and |
| 248 | 248 | [https://gitforwindows.org/|third-party]) are actually an |
| 249 | 249 | [http://mingw.org/wiki/msys|MSYS POSIX portability environment] bundled |
| 250 | 250 | with all of the Git stuff, because it would be too painful to port Git |
| 251 | 251 | natively to Windows. Git is a foreign citizen on Windows, speaking to it |
| 252 | -only through a translator. | |
| 252 | +only through a translator.⁷ | |
| 253 | 253 | |
| 254 | 254 | While Fossil does lean toward POSIX norms when given a choice — LF-only |
| 255 | 255 | line endings are treated as first-class citizens over CR+LF, for example |
| 256 | 256 | — the Windows build of Fossil is truly native. |
| 257 | 257 | |
| @@ -338,11 +338,11 @@ | ||
| 338 | 338 | [https://www.git-scm.com/docs/git-request-pull|pull requests] offer |
| 339 | 339 | a low-friction path to accepting |
| 340 | 340 | [https://www.jonobacon.com/2012/07/25/building-strong-community-structural-integrity/|drive-by |
| 341 | 341 | contributions]. Fossil's closest equivalent is its unique |
| 342 | 342 | [/help?cmd=bundle|bundle] feature, which requires higher engagement |
| 343 | - than firing off a PR.⁷ This difference comes directly from the | |
| 343 | + than firing off a PR.⁸ This difference comes directly from the | |
| 344 | 344 | initial designed purpose for each tool: the SQLite project doesn't |
| 345 | 345 | accept outside contributions from previously-unknown developers, but |
| 346 | 346 | the Linux kernel does.</p></li> |
| 347 | 347 | |
| 348 | 348 | <li><p><b>No rebasing:</b> When your local repo clone syncs changes |
| @@ -732,10 +732,23 @@ | ||
| 732 | 732 | When he then created Fossil to manage the development of SQLite, it |
| 733 | 733 | was natural for him to use Tcl-based tools for its scripting, build |
| 734 | 734 | system, test system, etc. It came full circle in 2011 when |
| 735 | 735 | [https://www.reddit.com/r/programming/comments/fwrx5/tcl_and_tk_move_away_from_cvs_to_fossil/ |
| 736 | 736 | | the Tcl and Tk projects moved from CVS to Fossil]. |
| 737 | + | |
| 738 | + <li><p>A minority of the pieces of the Git core software suite are | |
| 739 | + written in other languages, primarily Perl, Python, and Tcl. (e.g. | |
| 740 | + <tt>git-send-mail</tt>, <tt>git-p4</tt>, and <tt>gitk</tt>, | |
| 741 | + respectively.) Although these interpreters are quite portable, they | |
| 742 | + aren't installed by default everywhere, and on some platforms you | |
| 743 | + can't count on them at all. (Not just Windows, but also the BSDs and | |
| 744 | + many other non-Linux platforms.) This expands the dependency | |
| 745 | + footprint of Git considerably. It is why the current Git for Windows | |
| 746 | + distribution is 44.7 MiB but the current <tt>fossil.exe</tt> | |
| 747 | + zip file for Windows is 2.24 MiB. Fossil is much smaller | |
| 748 | + despite using a roughly similar amount of high-level scripting code | |
| 749 | + because its interpreters are compact and built into Fossil itself. | |
| 737 | 750 | |
| 738 | 751 | <li><p>Both Fossil and Git support |
| 739 | 752 | [https://en.wikipedia.org/wiki/Patch_(Unix)|<tt>patch(1)</tt> |
| 740 | 753 | files], a common way to allow drive-by contributions, but it's a |
| 741 | 754 | lossy contribution path for both systems. Unlike Git PRs and Fossil |
| 742 | 755 |
| --- www/fossil-v-git.wiki | |
| +++ www/fossil-v-git.wiki | |
| @@ -247,11 +247,11 @@ | |
| 247 | (both [https://git-scm.com/download/win|first-party] and |
| 248 | [https://gitforwindows.org/|third-party]) are actually an |
| 249 | [http://mingw.org/wiki/msys|MSYS POSIX portability environment] bundled |
| 250 | with all of the Git stuff, because it would be too painful to port Git |
| 251 | natively to Windows. Git is a foreign citizen on Windows, speaking to it |
| 252 | only through a translator. |
| 253 | |
| 254 | While Fossil does lean toward POSIX norms when given a choice — LF-only |
| 255 | line endings are treated as first-class citizens over CR+LF, for example |
| 256 | — the Windows build of Fossil is truly native. |
| 257 | |
| @@ -338,11 +338,11 @@ | |
| 338 | [https://www.git-scm.com/docs/git-request-pull|pull requests] offer |
| 339 | a low-friction path to accepting |
| 340 | [https://www.jonobacon.com/2012/07/25/building-strong-community-structural-integrity/|drive-by |
| 341 | contributions]. Fossil's closest equivalent is its unique |
| 342 | [/help?cmd=bundle|bundle] feature, which requires higher engagement |
| 343 | than firing off a PR.⁷ This difference comes directly from the |
| 344 | initial designed purpose for each tool: the SQLite project doesn't |
| 345 | accept outside contributions from previously-unknown developers, but |
| 346 | the Linux kernel does.</p></li> |
| 347 | |
| 348 | <li><p><b>No rebasing:</b> When your local repo clone syncs changes |
| @@ -732,10 +732,23 @@ | |
| 732 | When he then created Fossil to manage the development of SQLite, it |
| 733 | was natural for him to use Tcl-based tools for its scripting, build |
| 734 | system, test system, etc. It came full circle in 2011 when |
| 735 | [https://www.reddit.com/r/programming/comments/fwrx5/tcl_and_tk_move_away_from_cvs_to_fossil/ |
| 736 | | the Tcl and Tk projects moved from CVS to Fossil]. |
| 737 | |
| 738 | <li><p>Both Fossil and Git support |
| 739 | [https://en.wikipedia.org/wiki/Patch_(Unix)|<tt>patch(1)</tt> |
| 740 | files], a common way to allow drive-by contributions, but it's a |
| 741 | lossy contribution path for both systems. Unlike Git PRs and Fossil |
| 742 |
| --- www/fossil-v-git.wiki | |
| +++ www/fossil-v-git.wiki | |
| @@ -247,11 +247,11 @@ | |
| 247 | (both [https://git-scm.com/download/win|first-party] and |
| 248 | [https://gitforwindows.org/|third-party]) are actually an |
| 249 | [http://mingw.org/wiki/msys|MSYS POSIX portability environment] bundled |
| 250 | with all of the Git stuff, because it would be too painful to port Git |
| 251 | natively to Windows. Git is a foreign citizen on Windows, speaking to it |
| 252 | only through a translator.⁷ |
| 253 | |
| 254 | While Fossil does lean toward POSIX norms when given a choice — LF-only |
| 255 | line endings are treated as first-class citizens over CR+LF, for example |
| 256 | — the Windows build of Fossil is truly native. |
| 257 | |
| @@ -338,11 +338,11 @@ | |
| 338 | [https://www.git-scm.com/docs/git-request-pull|pull requests] offer |
| 339 | a low-friction path to accepting |
| 340 | [https://www.jonobacon.com/2012/07/25/building-strong-community-structural-integrity/|drive-by |
| 341 | contributions]. Fossil's closest equivalent is its unique |
| 342 | [/help?cmd=bundle|bundle] feature, which requires higher engagement |
| 343 | than firing off a PR.⁸ This difference comes directly from the |
| 344 | initial designed purpose for each tool: the SQLite project doesn't |
| 345 | accept outside contributions from previously-unknown developers, but |
| 346 | the Linux kernel does.</p></li> |
| 347 | |
| 348 | <li><p><b>No rebasing:</b> When your local repo clone syncs changes |
| @@ -732,10 +732,23 @@ | |
| 732 | When he then created Fossil to manage the development of SQLite, it |
| 733 | was natural for him to use Tcl-based tools for its scripting, build |
| 734 | system, test system, etc. It came full circle in 2011 when |
| 735 | [https://www.reddit.com/r/programming/comments/fwrx5/tcl_and_tk_move_away_from_cvs_to_fossil/ |
| 736 | | the Tcl and Tk projects moved from CVS to Fossil]. |
| 737 | |
| 738 | <li><p>A minority of the pieces of the Git core software suite are |
| 739 | written in other languages, primarily Perl, Python, and Tcl. (e.g. |
| 740 | <tt>git-send-mail</tt>, <tt>git-p4</tt>, and <tt>gitk</tt>, |
| 741 | respectively.) Although these interpreters are quite portable, they |
| 742 | aren't installed by default everywhere, and on some platforms you |
| 743 | can't count on them at all. (Not just Windows, but also the BSDs and |
| 744 | many other non-Linux platforms.) This expands the dependency |
| 745 | footprint of Git considerably. It is why the current Git for Windows |
| 746 | distribution is 44.7 MiB but the current <tt>fossil.exe</tt> |
| 747 | zip file for Windows is 2.24 MiB. Fossil is much smaller |
| 748 | despite using a roughly similar amount of high-level scripting code |
| 749 | because its interpreters are compact and built into Fossil itself. |
| 750 | |
| 751 | <li><p>Both Fossil and Git support |
| 752 | [https://en.wikipedia.org/wiki/Patch_(Unix)|<tt>patch(1)</tt> |
| 753 | files], a common way to allow drive-by contributions, but it's a |
| 754 | lossy contribution path for both systems. Unlike Git PRs and Fossil |
| 755 |