24 votes

Have you tried Fossil scm, an alternative to git?

Have any of you tried out fossil as an alternative to git? I have been using it for about a week, and I think I am in love. I have used git for years, since having some sort of source control is absolutely essential in programming. But I never liked git or felt comfortable using it. Within a week of messing with fossil, I feel like I understand it and can use it without a guide or external tools. It also has an issue tracker, forums, and a wiki built in.

Fossil Versus Git

I recommend reading all of that, especially section 2.5. Their description of cathedral style development lines up much more closely to everything I have worked on than git's bazaar style. Another thing I love is the ability to have the same repo open in multiple different folders at the same time. Basically everything about fossil lines up much more closely with what I think a source control program should be, at least for my use.

19 comments

  1. [7]
    spicyq
    Link
    Are you using it for collaborative development or personal projects? I think a lot of gits complexity only applies to the former, and is often necessary there.

    Are you using it for collaborative development or personal projects? I think a lot of gits complexity only applies to the former, and is often necessary there.

    14 votes
    1. [6]
      Weldawadyathink
      Link Parent
      I think you are spot on with why git has so much complexity. I have only been using it for personal projects for now, although I am planning on using it for small team projects in the future. I...

      I think you are spot on with why git has so much complexity. I have only been using it for personal projects for now, although I am planning on using it for small team projects in the future. I don't anticipate any issues working with a team in fossil. After all sqlite and fossil are developed with small teams using fossil just fine.

      Git is really impressive. I don't mean to downplay that at all. I just think git's added complexity isn't necessary for most people. Like the article says, most people don't work on projects like the linux kernel. Also the fact that git requires third party software for many of the features people use is interesting. Without github/gitlab/bitbucket, most people would find git to be severely lacking. Fossil has those features built in.

      9 votes
      1. [5]
        ebonGavia
        Link Parent
        Umm, agree to disagree? I use Git daily (via GitLab) and only invoke it with the native CLI tools and it's fine? Very good, even? I don't think it "requires" any third-party tools to work fine?...

        Also the fact that git requires third party software for many of the features people use is interesting

        Umm, agree to disagree? I use Git daily (via GitLab) and only invoke it with the native CLI tools and it's fine? Very good, even?

        I don't think it "requires" any third-party tools to work fine? Did any of the Git-as-a-Service tools exist when Linux started using it for one of the most consequential software projects in the world?

        Edit: Things like build pipelines are great; is that what you meant? But Git is just SCM. Those ancillary features are something else

        14 votes
        1. [3]
          Johz
          Link Parent
          You need some way of sharing and collaborating on code. Git includes the basics (pushing, pulling from remote locations, creating patches, etc), but it doesn't include any of the "metadata" around...

          You need some way of sharing and collaborating on code. Git includes the basics (pushing, pulling from remote locations, creating patches, etc), but it doesn't include any of the "metadata" around that - code review, discussions, issue tracking, etc.

          That's why you rarely see git being used alone - it's usually used either with a centralised host like GitHub or Gitlab, or via mailing lists.

          In contrast, Fossil has pretty much everything built in - bug tracking, code review, wikis, etc.

          That said, I've not yet used Fossil, and I've never felt a huge need to switch to it. The separation of concerns makes git itself more complex (because it needs to support more use cases), but means that there's usually a consistent interface to a lot of more opinionated code review tools.

          6 votes
          1. [2]
            ewintr
            Link Parent
            Traditionally this was done with mailing lists. Git was designed to integrate with that. It has a command to send your patch as an email, for instance. Today that feels a bit outdated, I agree,...

            Git includes the basics (pushing, pulling from remote locations, creating patches, etc), but it doesn't include any of the "metadata" around that - code review, discussions, issue tracking, etc.

            Traditionally this was done with mailing lists. Git was designed to integrate with that. It has a command to send your patch as an email, for instance.

            Today that feels a bit outdated, I agree, and that is why posts like these that sing praise of Fossil always draw my intention. I have never tried it though. The git commands are hardwired in my fingers by now and there is zero chance that it would be used at my company, so for me there just is not a big incentive to switch.

            5 votes
            1. Johz
              Link Parent
              Sure, but the mailing list is still an external tool, which is the big distinction between Fossil and git: git just handles tracking and syncing code changes, whereas Fossil is a more fully...

              Sure, but the mailing list is still an external tool, which is the big distinction between Fossil and git: git just handles tracking and syncing code changes, whereas Fossil is a more fully fledged project management tool - for better or worse.

              2 votes
        2. soap
          Link Parent
          Depending on what you need, git sorta has build pipelines. Git hooks can run scripts before a commit, push or merge is allowed. I use it for building my website and sending it to the host

          Depending on what you need, git sorta has build pipelines. Git hooks can run scripts before a commit, push or merge is allowed. I use it for building my website and sending it to the host

          3 votes
  2. 0xSim
    Link
    I used it on and off for small personal projects for a few years. It's nice and all, but the lack of real collaboration features makes it dead on arrival to manage anything bigger than trivial toy...

    I used it on and off for small personal projects for a few years. It's nice and all, but the lack of real collaboration features makes it dead on arrival to manage anything bigger than trivial toy projects.

    Sure having an integrated web interface with a forum and a bug tracker - all in a single binary that makes it super easy to self host - is really cool, but what's the point if you can't efficiently work with others? Setting up a self-hosted gitea or forgejo instance with docker isn't really hard, and you get the industry standard with more features than Fossil 🤷‍♂️

    7 votes
  3. teaearlgraycold
    Link
    Personally I think I grokked git after a couple years. Should we have a better tool? Absolutely. But getting everyone to change at this point isn’t a task I’m interested in participating in.

    Personally I think I grokked git after a couple years. Should we have a better tool? Absolutely. But getting everyone to change at this point isn’t a task I’m interested in participating in.

    6 votes
  4. [5]
    unkz
    Link
    From what little I've read, there doesn't seem to be much or any support for CI/CD. How are you handling that?

    From what little I've read, there doesn't seem to be much or any support for CI/CD. How are you handling that?

    4 votes
    1. [4]
      Weldawadyathink
      Link Parent
      To be perfectly honest, I don't use any CI/CD. Everything I have done so far has been small hobby projects. That being said, fossil does have some hook systems. They are nowhere near as complete...

      To be perfectly honest, I don't use any CI/CD. Everything I have done so far has been small hobby projects. That being said, fossil does have some hook systems. They are nowhere near as complete as git's, but there seems to be enough for CI/CD. Documentation here.

      It looks like they only added the hooks in July 2020, so relatively recently.

      3 votes
      1. [3]
        unkz
        Link Parent
        Aha, so I’d basically have to roll my own. That’s probably a dealbreaker for me and probably most commercial operations, I would realistically need something more comparable to GitHub actions.

        Aha, so I’d basically have to roll my own. That’s probably a dealbreaker for me and probably most commercial operations, I would realistically need something more comparable to GitHub actions.

        4 votes
        1. [2]
          creesch
          Link Parent
          Fyi, github actions isn't part of git, it is build around git as an offering of the github product.

          GitHub actions

          Fyi, github actions isn't part of git, it is build around git as an offering of the github product.

          3 votes
          1. unkz
            Link Parent
            Obviously, but fossil is pitching itself as a replacement for the git ecosystem — tickets, forums, wiki, etc.

            Obviously, but fossil is pitching itself as a replacement for the git ecosystem — tickets, forums, wiki, etc.

            4 votes
  5. yonkeltron
    Link
    Personally I have found the development of Pijul to be more compelling for some reason. http://pijul.org/

    Personally I have found the development of Pijul to be more compelling for some reason.

    http://pijul.org/

    4 votes
  6. [2]
    forked_bytes
    Link
    I would consider using it if I was planning to self-host. It's definitely convenient to have the source control, bug tracker, wiki, etc. in a single easy-to-deploy binary. But for open-source...

    I would consider using it if I was planning to self-host. It's definitely convenient to have the source control, bug tracker, wiki, etc. in a single easy-to-deploy binary. But for open-source projects there is just so much momentum behind git and GitHub specifically, you would be giving up a lot of potential contributors. Also I use rebase a lot, changing my workflow would take some getting used to.

    3 votes
    1. [2]
      Comment deleted by author
      Link Parent
      1. kendev
        Link Parent
        I like merge commits, but that's probably just because that is how I was taught to use git when I started as a dev. Basically the "be really careful with rebasing, you can accidentally make an...

        I like merge commits, but that's probably just because that is how I was taught to use git when I started as a dev. Basically the "be really careful with rebasing, you can accidentally make an enormous mistake" warning I got was not easy to shake off

        2 votes
  7. [2]
    NPC
    Link
    I'm deep into Git, but only use it for personal projects, and am always open to trying new things. Main question though, is there a Fossil-based free alternative to GitHub? That's the deal-maker...

    I'm deep into Git, but only use it for personal projects, and am always open to trying new things. Main question though, is there a Fossil-based free alternative to GitHub? That's the deal-maker for me.

    2 votes
    1. soap
      Link Parent
      I think chisel is the only one

      I think chisel is the only one

      3 votes