Forums before death by AOL, social media and spammers... "We can't have nice things"
|    comp.misc    |    General topics about computers not cover    |    21,759 messages    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
|    Message 21,570 of 21,759    |
|    Ben Collver to All    |
|    From Git To Fossil SCM (1/4)    |
|    19 Nov 25 17:11:27    |
      From: bencollver@tilde.pink              From Git to Fossil by Lucio Albenga       ===================================              Published on 2025-11-12              People at Git has started to work on a proposal to make the Rust [1]       programming language mandatory. I don't like Rust and, above all, I       don't like its community of little extremist characters who are trying       to make everyone swallow their crap by rewriting projects that have       been working for decades, doing social media brigading, and other nice       little gems worthy of any tiny group with totalitarian delusions.       That's why when I see that a project aims to "force" the use of or       the switch from C to Rust, to the extent of my possibilities, I flee       from it as if I were pursued by the Balrog of the Lord of the Rings       with his whip.              I'm old enough to have used (or tested) many version control systems:       RCS (Revision Control System), CVS (Concurrent Version System), SVN       (Subversion), HG (Mercurial), BZR (Bazaar), and the aforementioned       Git, which means I have no problem in switching again, so I started       to think about a Git substitute for my personal projects.              The options were to go back to one of the already known or look at       something else, and I remembered Fossil. I started looking over the       source code and reading the official documentation [2] to learn its       features, its dependencies, how to install and configure it, etc.,       and I noticed it had many things I like:              * It's made in C (although it uses some js and tcl for its web        functionality) and is a small and efficient program that consumes        few hardware resources.              * It's simpler to use and it feels more natural (at least for        someone who knows other systems such as Subversion) because it        does not contain overkill functionalities such as the staging        area, which may be useful in large and complex projects such as        the Linux kernel, but for me they have no practical use.              * It allows you to self-host a server on your own quickly and        easily because it is already prepared for it. In fact it has a        web server and a web interface with version control views, wiki,        tickets, etc. On the other hand, with Git you have to use an        external software such as GitLab, Gitea or Forgejo, and each one        of them is at least one extra software dependency.              * Commit messages don't use email addresses, they use user names so        if you have a public repository you don't have to be worried        about spam and you don't need a specific email address for this        use only.              * It's interoperable with Git in the sense that if there is a need        to change a repository back to Git you can do it and it also        supports two-way synchronization between a Fossil repository and        a Git [3] one (this is the functionality used by Fossil and        Sqlite projects to manage their GitHub mirrors).              Taking all this into account, I decided to install Fossil and switch       my projects from Git. Below you'll see how to do it.              Installing Fossil       =================              The first step is to install Fossil and it's quite likely that the       package manager of your operating system already has it available:              +-------------------------------------------------------------------+       | sudo apt install fossil # Devuan GNU+Linux |       | pkg install fossil # FreeBSD |       +-------------------------------------------------------------------+              Once your package manager ends the installation you can check its       availability with the following command:              +-------------------------------------------------------------------+       | fossil version |       +-------------------------------------------------------------------+              The command above should return something like the following:              +-------------------------------------------------------------------+       | This is fossil version 2.21 [3c53b6364e] 2023-02-26 19:24:24 UTC |       +-------------------------------------------------------------------+              Importing Git repositories       ==========================              Fossil's documentation [4] has the following example to export a Git       repository and import it as a Fossil repository:              +-------------------------------------------------------------------+       | cd repository_name |       | git fast-export --all | fossil import --git repository.fossil |       +-------------------------------------------------------------------+              I did it differently because I wanted to adjust some things to have       the imported repositories "right". As I have several repositories I       created two different folders, one, git-exported, to store the       exported repositories and another one, fossils, to store the new       Fossil repositories:              +-------------------------------------------------------------------+       | mkdir ~/git-exported |       | mkdir ~/fossils |       +-------------------------------------------------------------------+              Now you can geit into each Git repository folder and export it:              +-------------------------------------------------------------------+       | cd repository |       | git fast-export --all > ~/git-exported/repository.export |       +-------------------------------------------------------------------+              Once you have exported all your Git repositories you should go inside       the ~/fossils folder and import them one by one with the command:              +-------------------------------------------------------------------+       | fossil import --git \ |       | --rename-master trunk \ |       | --attribute "your@mail.com your_username" \ |       | repository_name.fossil ~/git-exported/repository.export |       +-------------------------------------------------------------------+              The '--rename-master trunk' option renames your Git master branch as       trunk in your new Fossil repository. Fossil, like other version       control systems such as Subversion, uses trunk as the name of the       master branch. If you are among the unfortunate ones who have their       master branch named as "main" this option is not for you and you       should check Fossil's documentation if you want to rename it.              The '--attribute "your@mail.com your_username"' option changes the       email address "your@mail.com" from Git commits to "your_username" in       the imported Fossil commits. In Fossil the default username is the       same as the one you're currently using in you operating system.       Obviously the given email address should exist in one or more commit       messages.              If you want to change more than one email address you can do it using       several '--attribute' options:              +-------------------------------------------------------------------+              [continued in next message]              --- SoupGate-Win32 v1.05        * Origin: you cannot sedate... all the things you hate (1:229/2)    |
[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]
(c) 1994, bbs@darkrealms.ca