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)
What about git needs replacement?
Something new is new, and apparently that’s all tha-- SQUIRREL!
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.
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.
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
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
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.
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.
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…
deleted by creator
Isn’t that by design? I believe the intention was to offload that capability to an existing solution, usually ssh.
Yeah & for that we have to deal withe Dependency hell Look at the size of Fossil & compare
What? Since when has ssh been a negative? Regardless of VC if you work on remote machines you need SSH, fullstop. I won’t take you seriously if you think otherwise sorry.
Why do you NEED a new tool like SSH when you can just tinker/upgrade the old & battle-tested one ??
1995 is new to you? SSH is useful for way more thing than version control, you should be using it when interacting with remote servers in one way or another.
You must be trolling. I can’t believe you just said that SSH is NOT the battle tested one. I just looked it up, git released in 2005 and fossil in 2006, it’s the newer tool! So, to your comment, literally no U.
I was talking about HTTPS & Compared to it SSH is new & I guess calling someone a troll is a knee-jerk reaction these days inorder to avoid scrutiny
Not sure what that means. Never once heard of git being a problem or large in size. Further, it’s extremely widely supported.
Do you live in a world where storage is expensive or rare? Because I more or less forgot the meaning of deleting files.
Also git does support the git protocol as a server if you really need it.
The last time I checked Just because storage is cheap (it’s not where I live) doesn’t give you the excuse to create/use unomptimized garbage<br> All GIT does is versioning (which is Fine), Fossil comparitively has more features that GIT should have but doesn’t (like a “Sync all” repos)
Are you sure you’re not getting butt hurt by valid critiques?
What are these “Valid Critiques” ? You don’t mean “Why should I try out Fossil when I’m used to Git”
I must be missing whan you mean by remote/server since pull, fetch, push… All interact with remote copies of the repo.
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)
You can use Forgejo for Git, which takes Minutes to set up
Fossil takes seconds, so what’s your point ? Forgejo is not Git though, it’s more like an extension
I really don’t need github in a box sir. I can use the command line just fine and if I need more my code editor interacts with git I show me a fine interface just fine. Spinning up a local web server to see how the vc is going seems like bloat. The Linux mantra is for each tool to be centralised around one task and fossil seems to be overreaching. It looks like they decided on the name appropriately, some old thing not relevant anymore the no one has heard about in a long time, a fossil.
Addendum: You know that most lemmy clients, even the webview, don’t render the HTML tags, right?
That’s cuz most devs are incompetent & unskilled code-monkeys, First of all it’s the UNIX philosophy not Linux & Who decided on what mantra to use ?
Oh right you apparently
Fossil can track what you did, Git cannot & as for your Editor what does it do with Git anyway ?
Fossil is more like a Jira replacement, and its built by one person with a severe case of NIH. Not necessarily a bad thing but I lived through it with Ubuntu, not really a fan of this philosophy.
“NIH”?
I think “Not Invented Here”. Meaning he wants to build everything himself from scratch despite there being alternatives he can use instead.
E.g.: Building your own httprequest library rather than using the existing one which is good enough.
That makes sense, thank you.
With that attitude maybe we shouldn’t invent at all Why not go all the way
“To make an apple pie from scratch, first you must invent the universe.”
this is a very childish way to react, you ok?
If not learning new stuff is adultish, then I rather be a child
I think you’re reacting to the wrong person as I didn’t make the NIH claim, but merely explained its meaning. :)
No worries man; Also according to the creator of Fossil he WANTS Git to have the features that Fossil has. He WANTS people to fork his creation, if they like to. & Fossil uses SQLite to store data
Not Invented Here, the urge to rebuild the wheel because someone else did it.
I’ve worked with NIH VCS. Never again lol, I’ll stick to git until something else becomes so universally recognized that people en masse start jumping ship.
Because of Ubuntu we get to have “Just works distros” & Fossil has features Git doesn’t
Darcs does not require a central server, and works perfectly in offline mode.
Git can be used that way too. Am I missing something?
No, you are not. People regularly equate Git and GitHub, though.
no, this is exactly what git does
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) ??
Why should git have a mediocre ticketing system instead of getting out of the way of dedicated ticketing systems?
Small personal projects just need a text file with a Todo list, large organisations might need something super heavy weight like Jira. If your VCS has a ticketing system it’s going to be dead weight for a large chunk of users, because there’s no one-size fits all solution.
Why shouldn’t git have one ? Why not avoid the bloat & Fossil was specifically made for get this small-medium size teams which can be scaled to bigger ones
I don’t think you understand what the word bloat means.
git add todo.md
Now do that without the markdown file
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.
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.
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.
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.
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.
dont forget about jujutsu
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…
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.
but they are working on their own vcs. I think git compatibility is not much more than a convenience in the long term.
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😅
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.
Is there any good videos on Darcs that I can watch ?
Probably the most notable modern video https://www.youtube.com/watch?v=2XQz-x6wAWk
Thanks
- open-source
- Ticketing
- Cathedral-style coding isn’t very Open-Source, if you believe the man who wrote the book and coined the term.
- it’s okay to post your own words instead of drunkenly jamming HTML into Markdown.
Cathedral-style coding isn’t very Open-Source
Cathedral vs bazaar is about development process, nothing to do with source code availability.
This - cathedral style development absolutely is a valid way to create free software and I don’t believe Eric S. Raymond (the guy who, I believe, coined the term) claimed otherwise, only that the bazaar model was “better.” Maintaining a bazaar style project is work, and it’s work that easily leads to burnout. We should normalize the idea that you don’t need to commit to being an “open source maintainer” to release a free software project; it should be enough to just release the source code (with or without binaries).
Make that Source Code With Binaries
I like Markdown so I’m gonna use it
Spent 5 minutes on the website and couldn’t get a peek at their code… The most fundamental thing, IMO.
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.
& The code behind Linux isn’t ? People back then did some REAL sorcery with coding
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.
Yeah it’s the cathedral-style, Opensource but closed contributions as in no PRs
Which is not really open now is it.
I would say its still open source. There is no requirement to be able to contribute modifications back. It is more about the availability of the code and what you can do with it.
PRs didn’t exist when open source was conceived.
You’ll actually have to talk to the devs to be included in the project This VCS favours a more horizontal organization where the devs know each other (so A <u>high-trust environment</u>)
Please don’t pretend as if OpenSource Devs don’t constantly complain about pesky PRs😅
Please don’t pretend as if OpenSource Devs don’t constantly complain about pesky PRs😅
<i>I</i>'ve <u>seen</u> much <b><u>more</u> complaints</b> about <a href=“https://0.0.0.0/random_img.tiff”>people</a> constantly <marquee>demanding</marquee> their specific <h1>annoyances</h1> to be fixed without ever <i>submitting <u>a single <b>line of code</b></u></i>. <i>Maintainers</i> are pretty much <b>universally</b> welcoming to code <h2>contributions</h2> <br><br><br><br><br><br>
I soooo hope this does something funky with someone’s Lemmy client
it’s not the most intuitive interface but there you go: https://fossil-scm.org/home/tree?name=src
Wow C, CSS and JS files at the same level. You don’t see this every day
There are tabs above like a browser
It’s in the code tab: https://fossil-scm.org/home/dir?ci=trunk
Look at the bottom
Learned fossil in college and I intensely disliked it
Why ? As in the intense dislike ?
Didn’t like mixing issue tracking with vcs. I also didn’t like any VCS hahaha, I was just writing shit in literally notepad
Oh ‽ well that I can relate to
This thread might be the fastest I’ve ever seen discussion devolve from “that could be interesting” to just incomprehensible screaming.
Yeah wtf it’s like there’s like a wolverine loose in the comments section
These people don’t even bother checking out the site & some can’t be bothered to scroll to the bottom of the site & can’t even read
They only recently were made aware of this tool & within a few seconds they literally go “Muh Bloated” etc…
It’s no wonder
This seems really cool!! And I love to see alternatives to git. But @MITM0@lemmy.world, you need to cool it on the replies. You’re making the Fossil community look hostile by association.
I’m not a part of the fossil community, also when none of the people here bother to properly check out the website & call it Ancient or see the why behind the tool & it’s development philosphy Yeah that pisses me off (So yeah I’ll “cool it” but it makes the GIT-community look like hostile hive)
Why don’t you tell me some more about what you like about Fossil… I’m assuming you’ve used other version control systems - how would you compare the feeling of actually using it in a collaborative workflow? How did you even come across Fossil in the first place?
This is my first time hearing about it, so would love to hear more straight from an actual user.
I imagine the creator envisioned something like a package wiki/docs mixed with direct access to the source code.
It can be carried around in your pocket & has the features of Github but open source Wiki, bug-tracker, ticketting, Forumn & even a chat for devs to use You can self-host it & it even runs on the most crappy internet Best part, it can track what you did in the past & stores in SQLite DB & can import & export to Git
Also I came across it via this blog
I like it even with the obvious flaws it has, plus it can be improved anyways
Tho we also got mercurial right?
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.
Same, really love the idea of backing history with a proper database, and the immutability. git rebasing was a mistake.
I get why it exists, but yeah it’s more trouble than it’s worth in most cases.
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.
How do you cleanly base your local changes against a new upstream version? Merges?
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.
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…
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 🤔
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.
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.
But you use Github
Look, no one is going to use this crap. Coming back a week later to try and have some weird gotcha moment will never change that
Looks like a lot of people are using it go to Chisel & see it for yourself & the whole point behind it is to use a different style of FOSS development.<br> Same applies to Darcs & Pijul
You should know better by now that this how Libre-Software works, you walk off the beaten path
I don’t know what you’re basing this “you should know better” on but I can safely say that anyone who is intimately familiar with any craft knows that when you choose an alternative ecosystem to live in from everyone else, there are tradeoffs and that you’re swimming upstream.
You may not care that others coming onto a project are frustrated or confused and have to learn something new that may not even provide any discernible value to them, but those individuals care. That’s clearly a concern for almost all project leaders. I mean, that is the only reason people used SVN for like 5-10 years after everyone knew it sucked compared to other things–
They really dreaded teaching dozens of devs a new thing, in addition to the work required to move things over. Hell, we switched from bit bucket to GitHub in my shop, the closest you can get to a drop in replacement job and that was painful because we had hundreds of repos to move.
Ps. If you had a listing of Git repos on a single page, it would need pagination to avoid crashing you browser/system. It would likely be millions of repos so I am not sure how that list you linked to is supposed to prove anything.
Seems pretty cool! I have to try it out. Thanks for sharing.