"VCS, tickets, wiki, docs, notes, forum, chat, UI, RBAC"
I don't want my version control system to be a wiki. Or a chat app, or any of that.
"VCS, tickets, wiki, docs, notes, forum, chat, UI, RBAC"
I don't want my version control system to be a wiki. Or a chat app, or any of that.
The point of this, as the article states:
> These additional capabilities are available for Git as 3rd-party add-ons, but with Fossil they are integrated into the design, to the point that it approximates "GitHub-in-a-box.
I’ve not used fossil, but I appreciate this idea.
Sure, it’s not unixy, but maybe a VCS reasonably demands such features, and today, it’s not as though these are crazy advanced or complex features.
Also, GitHub is not something to emulate, it is the lowest common denominator of repo hosting.
What do you mean by this? Having mostly used git and github, I don't really know what I'm missing.
Not sure how that's relevant, but I have ~150 repos locally and less than 10 on github. I also like the unix philosophy of having tools that do one thing and do it well.
Um, yes, I do. Not that it matters anyway, filesystems are not optimized to handle source code to begin with, they deal well with sectors/blocks and do that well.
This whole article is pretty much why fossil was made.
Edit: and yes, of course there are downsides as well. It's up to you to weigh them against each other.
As the git people love parroting of its myriad kitchen sink commands, "if you don't like it you don't have to use it".
I'd rather have a single integrated tool than the shopping list of "just use X and Y and Z" people are prescribing in this thread for getting the so-called git ""ecosystem"" ""working"".
Not that I'll necessarily use all the added features; but the ones I do want being integrated is absolutely relevant to my interests.
A first drawback I can think of is that this would probably require an additional layer for non-tech people. I haven't had the opportunity to use Fossil, so I am clueless regarding the kind of UI they propose, but I wouldn't be surprised that they actually solve this, considering the extensive list of features.
> These additional capabilities are available for Git as 3rd-party add-ons, but with Fossil they are integrated into the design
However, Fossil's documentation[0] has some answers:
Some other distributed bug-tracking systems store tickets as files within the source tree and thereby leverage the syncing and merging capabilities of the versioning system to sync and merge tickets. This approach is rejected in fossil for three reasons:
1. Check-ins in fossil are immutable. So if tickets were part of the check-in, then there would be no way to add new tickets to a check-in as new bugs are discovered.
2. Any project of reasonable size and complexity will generate thousands and thousands of tickets, and we do not want all those ticket files cluttering the source tree.
3. We want tickets to be managed from the web interface and to have a permission system that is distinct from check-in permissions. In other words, we do not want to restrict the creation and editing of tickets to developers with check-in privileges and an installed copy of the fossil executable. Casual passers-by on the internet should be permitted to create tickets.
Point 3. indeed requires additional software;Point 2. could be solved by storing the tickets in a distinct repository.
Regarding point 1., as far as I understand, a check-in is an atomic series of modifications to the repository database, so it seems there is a strong correlation between the tickets and the "commits"? If so, why not, but I'm not sure why this is necessary either.
[0]: https://www.fossil-scm.org/home/doc/trunk/www/bugtheory.wiki
It’s nice to be able to start git repos locally and only push to GitHub when I need to.
I also use gitlab quite a bit and it’s so clean to be able to pull from gitlab and push to GitHub, or vice versa. I don’t need any utilities, I don’t need any special workflows.
Git is sort of like a protocol with gitlab, GitHub, and others built on top.
If GitHub owned git then it would be so tightly coupled and suck.
I don’t think a VCS demands features of chat and the others. And the evidence provided by the millions of users seems to support that.
It’s not that chat and wiki are super complicated, it’s just more stuff. Implementing an alarm clock isn’t complicated either, should VCMs have alarm clocks as well?
Then just don't use those features. There is no performance price for it.
One of the nice things about Fossil having a ticket database is that you can use it as a distributed, version-controlled SQLite database to store anything. You can even use it as a JSON database if you want. And the forum, well, it's lovely to have it there even if you rarely use it. Because sometimes if you're working with someone else it comes in handy - some conversations really should be kept with the code.
https://docs.github.com/en/communities/documenting-your-proj...