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.

wyoung 2019-08-09 12:15 trunk
Commit 1296ee46a3ad9f03dd315019ce187b32241d70be0741668a25f5fa6fb11e4174
1 file changed +15 -2
--- www/fossil-v-git.wiki
+++ www/fossil-v-git.wiki
@@ -247,11 +247,11 @@
247247
(both [https://git-scm.com/download/win|first-party] and
248248
[https://gitforwindows.org/|third-party]) are actually an
249249
[http://mingw.org/wiki/msys|MSYS POSIX portability environment] bundled
250250
with all of the Git stuff, because it would be too painful to port Git
251251
natively to Windows. Git is a foreign citizen on Windows, speaking to it
252
-only through a translator.
252
+only through a translator.⁷
253253
254254
While Fossil does lean toward POSIX norms when given a choice — LF-only
255255
line endings are treated as first-class citizens over CR+LF, for example
256256
— the Windows build of Fossil is truly native.
257257
@@ -338,11 +338,11 @@
338338
[https://www.git-scm.com/docs/git-request-pull|pull requests] offer
339339
a low-friction path to accepting
340340
[https://www.jonobacon.com/2012/07/25/building-strong-community-structural-integrity/|drive-by
341341
contributions]. Fossil's closest equivalent is its unique
342342
[/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
344344
initial designed purpose for each tool: the SQLite project doesn't
345345
accept outside contributions from previously-unknown developers, but
346346
the Linux kernel does.</p></li>
347347
348348
<li><p><b>No rebasing:</b> When your local repo clone syncs changes
@@ -732,10 +732,23 @@
732732
When he then created Fossil to manage the development of SQLite, it
733733
was natural for him to use Tcl-based tools for its scripting, build
734734
system, test system, etc. It came full circle in 2011 when
735735
[https://www.reddit.com/r/programming/comments/fwrx5/tcl_and_tk_move_away_from_cvs_to_fossil/
736736
| 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&nbsp;MiB but the current <tt>fossil.exe</tt>
747
+ zip file for Windows is 2.24&nbsp;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.
737750
738751
<li><p>Both Fossil and Git support
739752
[https://en.wikipedia.org/wiki/Patch_(Unix)|<tt>patch(1)</tt>
740753
files], a common way to allow drive-by contributions, but it's a
741754
lossy contribution path for both systems. Unlike Git PRs and Fossil
742755
--- 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&nbsp;MiB but the current <tt>fossil.exe</tt>
747 zip file for Windows is 2.24&nbsp;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

Keyboard Shortcuts

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