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)

21 points

I support reconsidering Git VCS hegemony. Darcs & Pijul too for DVCS.

permalink
report
reply
6 points

dont forget about jujutsu

permalink
report
parent
reply
5 points

Since jujutsu is Git-compatible it has very much replaced Git for me and is what I’m using for everything now. Its workflow is so good and miles ahead of Git.

I was trying out Pijul for a while before that and while it has a lot of great ideas and has a lot of potential due to the way its foundations work its interface is way too janky right now and missing features and nothing I’ve reported or the many changes I’ve submitted have been fixed/pulled since March. I’d really like it to be good but alas…

permalink
report
parent
reply
2 points

I ‘forgot’ it on purpose.

The compatibility with Git means it is ultimately shackled to the design decisions fundamental to Git which require hacky workarounds. The maker of Pijul has pointed out some of the fundamental ways it can never handle patches is the manner of Darcs/Pijul, but I am not in the position to pull some of these quotes.

I would rather see revolution over evolution, & the weird ties to Google & hosting the project Microsoft GitHub rub me wrong.

permalink
report
parent
reply
1 point

but they are working on their own vcs. I think git compatibility is not much more than a convenience in the long term.

permalink
report
parent
reply
22 points

Darcs does not require a central server, and works perfectly in offline mode.

Git can be used that way too. Am I missing something?

permalink
report
parent
reply
9 points

no, this is exactly what git does

permalink
report
parent
reply
-6 points
*

So GIT has a ticketting system, a Wiki, Bug-tracker built-into it along with a Version-tracker

It also has a Sync All command (I’m sure Git also has it Somewhere) ??

permalink
report
parent
reply
25 points

No, you are not. People regularly equate Git and GitHub, though.

permalink
report
parent
reply
4 points
*

Am I missing something?

No and, in fact, this was (and still is) a selling point of Git over the alternatives (e.g. Subversion) available at the time that required you to “check out” some code and no one else could check out/modify that code while you had it checked out.

permalink
report
parent
reply
5 points
*

Darcs came out in 2003—Git in 2005. It was novel at the time compared to the alternatives. Darcs started as alternative to CSV & Subversion, not Git. Unlike Git it works on patches, not snapshots which has advantanges in merge conflicts.

permalink
report
parent
reply
2 points
*

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.

permalink
report
parent
reply
-3 points
*

Oh Yeah I like Pijul as well & I fully agree with your point of breaking the Git Hedgemony

BTW, tell me more about Darcs I want to know EDIT: Boy GIT-Fanboys are clearly mad about other VCSs existing😅

permalink
report
parent
reply
4 points

Darcs is sort of like Pijul before Pijul. It is a little slower, but might not even affect you at your project size, but what it has instead is a longer history with more tooling & support—on the CLI, support from package managers, forge options. It ends up being my preferred option just for this reason even if Pijul has better performance, handles binary files, & the identity server is novel.

permalink
report
parent
reply
1 point
*

Is there any good videos on Darcs that I can watch ?

permalink
report
parent
reply
9 points

Spent 5 minutes on the website and couldn’t get a peek at their code… The most fundamental thing, IMO.

permalink
report
reply
3 points

it’s not the most intuitive interface but there you go: https://fossil-scm.org/home/tree?name=src

permalink
report
parent
reply
4 points
*

Wow C, CSS and JS files at the same level. You don’t see this every day

permalink
report
parent
reply
0 points

There are tabs above like a browser

permalink
report
parent
reply
2 points
Deleted by creator
permalink
report
parent
reply
18 points

fossil is made by the sqlite devs, for development of sqlite. this is not some amateur operation.

also, it’s by the sqlite people, so expect the code to be… odd.

permalink
report
parent
reply
4 points

& The code behind Linux isn’t ? People back then did some REAL sorcery with coding

permalink
report
parent
reply
6 points

back then? both codebases are fully modern. its more that sqlite uses a style that differs from the accepted norm quite a bit. that, and they don’t accept contributions.

permalink
report
parent
reply
1 point

Look at the bottom

permalink
report
parent
reply
50 points

What about git needs replacement?

permalink
report
reply
11 points

Seems like a historic artefact to me as well. And one of their mentioned points was “no sync via http” which even for 2006 makes me… hesitant.

And their history section ends in 2007, couldn’t find a feature comparison in their quick start guide.

permalink
report
parent
reply
29 points

Something new is new, and apparently that’s all tha-- SQUIRREL!

permalink
report
parent
reply
3 points
*

Git is far from user friendly but that’s a design consideration from a decentralized architecture. Fossil will have the same considerations. People need to learn how to use Git.

The problem is there’s only one person who really knows how to use it: Linus.

permalink
report
parent
reply
1 point

does he? i was under the impression that linus considers it just as stupid as everybody else and its existence is somewhat unsettlingly like a separate organism that lives in our collective brain activity…

permalink
report
parent
reply
14 points

I’m so fuckin tired of hearing x is user unfriendly, it’s not intuitive enough.

Like fuckin yeah. Sometimes you have to actually learn something new to use something new when I first started driving it wasn’t user friendly. I had to learn how to do it

permalink
report
parent
reply
7 points
*

git is exactly as unfriendly as a distributed source control system that doesn’t shy away from power user commands needs to be

… sure it’s difficult to comprehend, but yknow what’s worse? getting into a bullshit situation and having broken garbage repos in every other “user friendly” system on the planet

permalink
report
parent
reply
3 points

Nah, git has a bad command line UX. Which is why the developers are working to make it better, i.e. moving from checkout to switch.

permalink
report
parent
reply
11 points

I remember Linus saying in an interview that he’d only really been involved in git for the first 6 months or so and that the other devs had managed it without him since then. This makes sense - Linus’s creations aren’t successful because he’s the only person who understands them, they’re successful because there are so many other collaborators on them.

permalink
report
parent
reply
-3 points
Deleted by creator
permalink
report
parent
reply
10 points

Isn’t that by design? I believe the intention was to offload that capability to an existing solution, usually ssh.

permalink
report
parent
reply
-8 points

Yeah & for that we have to deal withe Dependency hell Look at the size of Fossil & compare

permalink
report
parent
reply
5 points

I must be missing whan you mean by remote/server since pull, fetch, push… All interact with remote copies of the repo.

permalink
report
parent
reply
0 points

As in it’s literally Github-in-a-box you can spin up a web-server with a command<br> (Imagine a git serve command that launches your GitHub instance)

permalink
report
parent
reply
5 points

I really like the idea of using a relation db to track change history. It removes so much weirdness and quirkiness that git has. You just have regular SQL queries you can use to go through history and ask questions about the state of the repo. I also like that it’s immutable so you don’t have to worry about things like rebasing and other ways you can fuck up history in git. The problems solved by mucking with history largely go away when you can query the db with a rich syntax.

permalink
report
reply
3 points

Same, really love the idea of backing history with a proper database, and the immutability. git rebasing was a mistake.

permalink
report
parent
reply
2 points

I get why it exists, but yeah it’s more trouble than it’s worth in most cases.

permalink
report
parent
reply
3 points

Rebasing is for advanced git users who knows what he’s doing. If one does not know how to use it or not feeling comfortable in general, he can happily take his own code and try to merge it into the latest version instead. No one is judging.

For the rest of the world where projects are open-source, more often than not, not those projects inside a corporation where only the team lead is making decisions, it’s a powerful tool to settle down conflicts sort out history.

One does not need to change the history again, if he’s not comfortable with it. Just use git as if it’s centralised VCS like SVN. No big deal. In fact, in corporations you do. There only needs to be one person who manages the repository.

permalink
report
parent
reply
1 point

How do you cleanly base your local changes against a new upstream version? Merges?

permalink
report
parent
reply
1 point

You merge from them. If you’re working on a PR, they can always squash merge your commits if you have a lot of them. No history rewriting required.

permalink
report
parent
reply
2 points

I love Fossil and use it for all my personal projects! I use syncthing to keep my all my repositories updated across devices and it works great!

I do wish I better understood either self-hosting or that there were more web hosts though, it would make collaboration easier when I feel like sharing. A git(hub) bridge could do it too I guess…

permalink
report
reply
3 points

It’s interesting that OP is here talking about this being better than git because it has its own server, but the only person besides op claiming to use it is syncing with syncthing 🤔

permalink
report
parent
reply
2 points

The binary executable for Fossil is a single file (repos are also single files, sqlite databases). That one executable does all the VCS functions but it also has a built-in web server that will host repos as a little customizable website. That’s how you access the wiki, chat, forums, and ticketing system. You can also configure the repo, view timelines, view code, and all that stuff.

One can set up a proxy and publicly self-host the repo over the internet. That’s what the official fossil site is, a hosted repo of it’s own source code. I didn’t feel like setting up a local web host, an ngnx reverse proxy, figuring out vpn for remote access, etc etc. So i just use synching and only run locally, because it’s easier for me.

That’s another nice thing about fossil, it’s quite flexible and can grow with the needs of the project.

permalink
report
parent
reply
1 point
*

Opinions vary – you’re saying the single-file thing is good, but to me that’s quite a downside honestly. For backup purposes, if nothing else, I would rather my software not need to copy the entire file every time a tiny change to it happens. And all those other server based features, imo, are bloat that I wouldn’t use.

permalink
report
parent
reply

Open Source

!opensource@lemmy.ml

Create post

All about open source! Feel free to ask questions, and share news, and interesting stuff!

Useful Links

Rules

  • Posts must be relevant to the open source ideology
  • No NSFW content
  • No hate speech, bigotry, etc

Related Communities

Community icon from opensource.org, but we are not affiliated with them.

Community stats

  • 3.1K

    Monthly active users

  • 1.9K

    Posts

  • 31K

    Comments