I would like to introduce you lovely OpenSource Lovers to a GIT-Alternative called FOSSIL that I also stumbled upon.<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
& It's also <u>self-hostable</u> & the best part it's all in ONE STANDALONE FILE!!! 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
Well here's a difference between Git vs Fossil & they even have a hosting service called CHISEL
Just check it out & use it for fun in your spare time even with the flaws it has (& Try out Darcs & Pijul as well)
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
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.
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.
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.
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...
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.
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.