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.
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.
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.
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.
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
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.
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.
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.
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
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 🤷♂️
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.
From what little I've read, there doesn't seem to be much or any support for CI/CD. How are you handling that?
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.
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.
Fyi, github actions isn't part of git, it is build around git as an offering of the github product.
Obviously, but fossil is pitching itself as a replacement for the git ecosystem — tickets, forums, wiki, etc.
Personally I have found the development of Pijul to be more compelling for some reason.
http://pijul.org/
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.
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
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.
I think chisel is the only one