I would like to introduce you lovely OpenSource Lovers to a GIT-Alternative called FOSSIL that I also stumbled upon because of this Blog.<br> It’s basically opensource Github-in-a-box which means it’s an SCM with:

  • Bug-tracker
  • Ticketting-system
  • Forum
  • Wiki-system
  • even a Chat-functionality
  • Has built-in GUI
  • Also has a Web-Server
  • Self-Hostable like Gitea/Forgejo

& the best part it’s all in ONE STANDALONE FILE!!! which is extremely lightweight which you can copy to your $PATH & works even in crappy internet. how cool is that!!

However this tool supports a completely different style of development in FOSS called the “Cathedral-Style” whereas GIT suports a “Bazaar-Style”<br> The person behind Fossil is the creator of SQLite, <u>Dr.Richard Hipp</u> & they even made other projects to support Fossil like a PIC-Like language called PikChr<br> Well just in case; here’s a list of difference between Git vs Fossil<br> & guess what!! they even have a hosting service called CHISEL

Listen; Just check it out & use it for fun in your spare time even with the flaws it has (& Try out Darcs & Pijul as well)

  • uis@lemm.ee
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    21 days ago

    Git uses mergetools, which do whatever you make them to. Patches can be created from snapshots, but snapshots are not guaranteed to be creatable from patches - you might not have original state.

    EDIT: it uses merge drivers.

    • toastal@lemmy.ml
      link
      fedilink
      arrow-up
      2
      ·
      21 days ago

      Patch Theory operates under the premise that patches commute & order should not matter until there is a conflict. Git will throw fits if you pull in a patch at the wrong order giving you a different snapshot.

      • uis@lemm.ee
        link
        fedilink
        arrow-up
        1
        ·
        21 days ago

        Specific merge tool can throw fits. Git doesn’t care about specifics of how merge operation is done, it just tells to merge driver to merge three files(A, B and common ancestor) and stops if driver reports an error.

        Also to correct myself: merge driver, not mergetool.