Fossil SCM
Moved all of the "Features found in Fossil but not in Git" up from section 3.1 into section 2.1 Featureful of the fossil-v-git doc, where such differences are otherwise covered. Removed section 3.2, giving the opposite case, since all of the Git features not found in Fossil are already covered elsewhere in the doc, sometimes more than once, as with the rebase issue.
Commit
d357f81b6c179313caf0b5128e90ea2180757c2de39a9dac435e86137643cd5b
Parent
d887a6d74d7958c…
1 file changed
+21
-54
+21
-54
| --- www/fossil-v-git.wiki | ||
| +++ www/fossil-v-git.wiki | ||
| @@ -73,10 +73,31 @@ | ||
| 73 | 73 | access control system]. |
| 74 | 74 | These additional capabilities are available for Git as 3rd-party |
| 75 | 75 | add-ons, but with Fossil they are integrated into |
| 76 | 76 | the design. One way to describe Fossil is that it is |
| 77 | 77 | "[https://github.com/ | GitHub]-in-a-box." |
| 78 | + | |
| 79 | +Fossil can do operations over all local repo clones and check-out | |
| 80 | +directories with a single command. For example, Fossil lets you say | |
| 81 | +<tt>fossil all pull</tt> on a laptop prior to taking it off the network | |
| 82 | +hosting those repos. You can sync up to all of the private repos on your | |
| 83 | +company network plus those public Internet-hosted repos you use. Whether | |
| 84 | +going out for a working lunch or on a transoceanic an airplane trip, one | |
| 85 | +command gets you in sync. This works with several other Fossil | |
| 86 | +sub-commands, such as <tt>fossil all changes</tt> to get a list of files | |
| 87 | +that you forgot to commit prior to the end of your working day, across | |
| 88 | +all repos. | |
| 89 | + | |
| 90 | +Whenever Fossil is told to modify the local checkout in some destructive | |
| 91 | +way ([/help?cmd=rm|fossil rm], [/help?cmd=update|fossil update], | |
| 92 | +[/help?cmd=revert|fossil revert], etc.) Fossil remembers the prior state | |
| 93 | +and is able to return the check-out directory to that state with a | |
| 94 | +<tt>fossil undo</tt> command. You cannot undo a commit in Fossil | |
| 95 | +([#history | on purpose!]) but as long as the change remains confined to | |
| 96 | +the local check-out directory only, Fossil makes undo | |
| 97 | +[https://git-scm.com/book/en/v2/Git-Basics-Undoing-Things|easier than in | |
| 98 | +Git]. | |
| 78 | 99 | |
| 79 | 100 | For developers who choose to self-host projects (rather than using a |
| 80 | 101 | 3rd-party service such as GitHub) Fossil is much easier to set up, since |
| 81 | 102 | the stand-alone Fossil executable together with a [./server/any/cgi.md|2-line CGI script] |
| 82 | 103 | suffice to instantiate a full-featured developer website. To accomplish |
| @@ -750,64 +771,10 @@ | ||
| 750 | 771 | moved over to a stronger hash algorithm before someone figures out how |
| 751 | 772 | to make use of the weaknesses in the old one. Fossil's developers moved |
| 752 | 773 | on this problem quickly and had a widely-deployed solution to it years |
| 753 | 774 | ago. |
| 754 | 775 | |
| 755 | - | |
| 756 | -<h2 id="missing">3.0 Missing Features</h2> | |
| 757 | - | |
| 758 | -Although there is a large overlap in capability between Fossil and Git, | |
| 759 | -there are many areas where one system has a feature that is simply | |
| 760 | -missing in the other. We covered most of those above, but there | |
| 761 | -are a few remaining feature differences we haven't gotten to yet. | |
| 762 | - | |
| 763 | - | |
| 764 | -<h3 id="missing-in-git">3.1 Features found in Fossil but missing from Git</h3> | |
| 765 | - | |
| 766 | - * <b>The [/help?cmd=all|fossil all] command</b> | |
| 767 | - | |
| 768 | - Fossil keeps track of all repositories and check-outs and allows | |
| 769 | - operations over all of them with a single command. For example, in | |
| 770 | - Fossil is possible to request a pull of all repositories on a laptop | |
| 771 | - from their respective servers, prior to taking the laptop off network. | |
| 772 | - Or it is possible to do "fossil all changes" to see if there are any | |
| 773 | - uncommitted changes that were overlooked prior to the end of the workday. | |
| 774 | - | |
| 775 | - * <b>The [/help?cmd=undo|fossil undo] command</b> | |
| 776 | - | |
| 777 | - Whenever Fossil is told to modify the local checkout in some | |
| 778 | - destructive way ([/help?cmd=rm|fossil rm], [/help?cmd=update|fossil | |
| 779 | - update], [/help?cmd=revert|fossil revert], etc.) Fossil remembers the | |
| 780 | - prior state and is able to return the local check-out directory to | |
| 781 | - its prior state with a simple "fossil undo" command. You | |
| 782 | - [#history|cannot undo a commit], since writes to the actual | |
| 783 | - repository — as opposed to the local check-out directory — are more | |
| 784 | - or less permanent, on purpose, but as long as the change is simply | |
| 785 | - staged locally, Fossil makes undo | |
| 786 | - [https://git-scm.com/book/en/v2/Git-Basics-Undoing-Things|easier than | |
| 787 | - in Git]. | |
| 788 | - | |
| 789 | - | |
| 790 | -<h3 id="missing-in-fossil">3.2 Features found in Git but missing from Fossil</h3> | |
| 791 | - | |
| 792 | - * <b>Rebase</b> | |
| 793 | - | |
| 794 | - Because of its emphasis on recording history exactly as it happened, | |
| 795 | - rather than as we would have liked it to happen, | |
| 796 | - [./rebaseharm.md|Fossil deliberately omits the "rebase" command]. | |
| 797 | - For those rare | |
| 798 | - occasions where something like rebase is actually needed, the same | |
| 799 | - topology can be achieved using cherrypick merges. | |
| 800 | - | |
| 801 | - * <b>Push or pull a single branch</b> | |
| 802 | - | |
| 803 | - The [/help?cmd=push|fossil push], [/help?cmd=pull|fossil pull], and | |
| 804 | - [/help?cmd=sync|fossil sync] commands do not provide the capability to | |
| 805 | - push or pull individual branches. Pushing and pulling in Fossil is | |
| 806 | - all or nothing. This is in keeping with Fossil's emphasis on maintaining | |
| 807 | - a complete record and on sharing everything between all developers. | |
| 808 | - | |
| 809 | 776 | <hr/> |
| 810 | 777 | |
| 811 | 778 | <h3>Asides and Digressions</h3> |
| 812 | 779 | |
| 813 | 780 | <i><small><ol> |
| 814 | 781 |
| --- www/fossil-v-git.wiki | |
| +++ www/fossil-v-git.wiki | |
| @@ -73,10 +73,31 @@ | |
| 73 | access control system]. |
| 74 | These additional capabilities are available for Git as 3rd-party |
| 75 | add-ons, but with Fossil they are integrated into |
| 76 | the design. One way to describe Fossil is that it is |
| 77 | "[https://github.com/ | GitHub]-in-a-box." |
| 78 | |
| 79 | For developers who choose to self-host projects (rather than using a |
| 80 | 3rd-party service such as GitHub) Fossil is much easier to set up, since |
| 81 | the stand-alone Fossil executable together with a [./server/any/cgi.md|2-line CGI script] |
| 82 | suffice to instantiate a full-featured developer website. To accomplish |
| @@ -750,64 +771,10 @@ | |
| 750 | moved over to a stronger hash algorithm before someone figures out how |
| 751 | to make use of the weaknesses in the old one. Fossil's developers moved |
| 752 | on this problem quickly and had a widely-deployed solution to it years |
| 753 | ago. |
| 754 | |
| 755 | |
| 756 | <h2 id="missing">3.0 Missing Features</h2> |
| 757 | |
| 758 | Although there is a large overlap in capability between Fossil and Git, |
| 759 | there are many areas where one system has a feature that is simply |
| 760 | missing in the other. We covered most of those above, but there |
| 761 | are a few remaining feature differences we haven't gotten to yet. |
| 762 | |
| 763 | |
| 764 | <h3 id="missing-in-git">3.1 Features found in Fossil but missing from Git</h3> |
| 765 | |
| 766 | * <b>The [/help?cmd=all|fossil all] command</b> |
| 767 | |
| 768 | Fossil keeps track of all repositories and check-outs and allows |
| 769 | operations over all of them with a single command. For example, in |
| 770 | Fossil is possible to request a pull of all repositories on a laptop |
| 771 | from their respective servers, prior to taking the laptop off network. |
| 772 | Or it is possible to do "fossil all changes" to see if there are any |
| 773 | uncommitted changes that were overlooked prior to the end of the workday. |
| 774 | |
| 775 | * <b>The [/help?cmd=undo|fossil undo] command</b> |
| 776 | |
| 777 | Whenever Fossil is told to modify the local checkout in some |
| 778 | destructive way ([/help?cmd=rm|fossil rm], [/help?cmd=update|fossil |
| 779 | update], [/help?cmd=revert|fossil revert], etc.) Fossil remembers the |
| 780 | prior state and is able to return the local check-out directory to |
| 781 | its prior state with a simple "fossil undo" command. You |
| 782 | [#history|cannot undo a commit], since writes to the actual |
| 783 | repository — as opposed to the local check-out directory — are more |
| 784 | or less permanent, on purpose, but as long as the change is simply |
| 785 | staged locally, Fossil makes undo |
| 786 | [https://git-scm.com/book/en/v2/Git-Basics-Undoing-Things|easier than |
| 787 | in Git]. |
| 788 | |
| 789 | |
| 790 | <h3 id="missing-in-fossil">3.2 Features found in Git but missing from Fossil</h3> |
| 791 | |
| 792 | * <b>Rebase</b> |
| 793 | |
| 794 | Because of its emphasis on recording history exactly as it happened, |
| 795 | rather than as we would have liked it to happen, |
| 796 | [./rebaseharm.md|Fossil deliberately omits the "rebase" command]. |
| 797 | For those rare |
| 798 | occasions where something like rebase is actually needed, the same |
| 799 | topology can be achieved using cherrypick merges. |
| 800 | |
| 801 | * <b>Push or pull a single branch</b> |
| 802 | |
| 803 | The [/help?cmd=push|fossil push], [/help?cmd=pull|fossil pull], and |
| 804 | [/help?cmd=sync|fossil sync] commands do not provide the capability to |
| 805 | push or pull individual branches. Pushing and pulling in Fossil is |
| 806 | all or nothing. This is in keeping with Fossil's emphasis on maintaining |
| 807 | a complete record and on sharing everything between all developers. |
| 808 | |
| 809 | <hr/> |
| 810 | |
| 811 | <h3>Asides and Digressions</h3> |
| 812 | |
| 813 | <i><small><ol> |
| 814 |
| --- www/fossil-v-git.wiki | |
| +++ www/fossil-v-git.wiki | |
| @@ -73,10 +73,31 @@ | |
| 73 | access control system]. |
| 74 | These additional capabilities are available for Git as 3rd-party |
| 75 | add-ons, but with Fossil they are integrated into |
| 76 | the design. One way to describe Fossil is that it is |
| 77 | "[https://github.com/ | GitHub]-in-a-box." |
| 78 | |
| 79 | Fossil can do operations over all local repo clones and check-out |
| 80 | directories with a single command. For example, Fossil lets you say |
| 81 | <tt>fossil all pull</tt> on a laptop prior to taking it off the network |
| 82 | hosting those repos. You can sync up to all of the private repos on your |
| 83 | company network plus those public Internet-hosted repos you use. Whether |
| 84 | going out for a working lunch or on a transoceanic an airplane trip, one |
| 85 | command gets you in sync. This works with several other Fossil |
| 86 | sub-commands, such as <tt>fossil all changes</tt> to get a list of files |
| 87 | that you forgot to commit prior to the end of your working day, across |
| 88 | all repos. |
| 89 | |
| 90 | Whenever Fossil is told to modify the local checkout in some destructive |
| 91 | way ([/help?cmd=rm|fossil rm], [/help?cmd=update|fossil update], |
| 92 | [/help?cmd=revert|fossil revert], etc.) Fossil remembers the prior state |
| 93 | and is able to return the check-out directory to that state with a |
| 94 | <tt>fossil undo</tt> command. You cannot undo a commit in Fossil |
| 95 | ([#history | on purpose!]) but as long as the change remains confined to |
| 96 | the local check-out directory only, Fossil makes undo |
| 97 | [https://git-scm.com/book/en/v2/Git-Basics-Undoing-Things|easier than in |
| 98 | Git]. |
| 99 | |
| 100 | For developers who choose to self-host projects (rather than using a |
| 101 | 3rd-party service such as GitHub) Fossil is much easier to set up, since |
| 102 | the stand-alone Fossil executable together with a [./server/any/cgi.md|2-line CGI script] |
| 103 | suffice to instantiate a full-featured developer website. To accomplish |
| @@ -750,64 +771,10 @@ | |
| 771 | moved over to a stronger hash algorithm before someone figures out how |
| 772 | to make use of the weaknesses in the old one. Fossil's developers moved |
| 773 | on this problem quickly and had a widely-deployed solution to it years |
| 774 | ago. |
| 775 | |
| 776 | <hr/> |
| 777 | |
| 778 | <h3>Asides and Digressions</h3> |
| 779 | |
| 780 | <i><small><ol> |
| 781 |