Remix.run Logo
kgeist 4 hours ago

>The hardest part about this project was actually just parsing.

How about using sqlite for this? Then you wouldn't need to parse anything, just read/update tables. Fast indexing out of the box, too.

storystarling 2 minutes ago | parent | next [-]

SQLite solves the storage layer but I suspect you run into a pretty big impedance mismatch on the graph traversals. For heavy DAG operations like history rewriting, a custom structure seems way more efficient than trying to model that relationally.

grenran 4 hours ago | parent | prev | next [-]

that would be what https://fossil-scm.org/ is

TonyStr 4 hours ago | parent [-]

Very interesting. Looks like fossil has made some unique design choices that differ from git[0]. Has anyone here used it? I'd love to hear how it compares.

[0] https://fossil-scm.org/home/doc/trunk/www/fossil-v-git.wiki#...

smartmic 3 hours ago | parent | next [-]

I use Fossil extensively, but only for personal projects. There are specific design conditions, such as no rebasing [0], and overall, it is simpler yet more useful to me. However, I think Fossil is better suited for projects governed under the cathedral model than the bazaar model. It's great for self-hosting, and the web UI is excellent not only for version control, but also for managing a software development project. However, if you want a low barrier to integrating contributions, Fossil is not as good as the various Git forges out there. You have to either receive patches or Fossil bundles via email or forum, or onboard/register contributors as developers with quite wide repo permissions.

[0]: https://fossil-scm.org/home/doc/trunk/www/rebaseharm.md

toyg 2 hours ago | parent [-]

Sounds like a more modern cvs/Subversion

jact an hour ago | parent | prev | next [-]

I use Fossil extensively for all my personal projects and find it superior for the general case. As others said it’s more suited for small projects.

I also use Fossil for lots of weird things. I created a forum game using Fossil’s ticket and forum features because it’s so easy to spin up and for my friends to sign in to.

At work we ended up using Fossil in production to manage configuration and deployment in a highly locked down customer environment where its ability to run as a single static binary, talk over HTTP without external dependencies, etc. was essential. It was a poor man’s deployment tool, but it performed admirably.

Fossil even works well as a blogging platform.

embedding-shape 4 hours ago | parent | prev | next [-]

Used it on and off mainly to check it out, but always in a personal/experimental capacity. Never managed to convince any teams to give it a try, mostly because git don't tend to get in the way, so hard to justify to learn something completely new.

I really enjoy how local-first it is, as someone who sometimes work without internet connection. That the data around "work" is part of the SCM as well, not just the code, makes a lot of sense to me at a high-level, and many times I wish git worked the same...

usrbinbash 4 hours ago | parent [-]

I mean, git is just as "local-first" (a git repo is just a directory after all), and the standard git-toolchain includes a server, so...

But yeah, fossil is interesting, and it's a crying shame its not more well known, for the exact reasons you point out.

embedding-shape 3 hours ago | parent [-]

> I mean, git is just as "local-first" (a git repo is just a directory after all), and the standard git-toolchain includes a server, so...

It isn't though, Fossil integrates all the data around the code too in the "repository", so issues, wiki, documentation, notes and so on are all together, not like in git where most commonly you have those things on another platform, or you use something like `git notes` which has maybe 10% of the features of the respective Fossil feature.

It might be useful to scan through the list of features of Fossil and dig into it, because it does a lot more than you seem to think :) https://fossil-scm.org/home/doc/trunk/www/index.wiki

adastra22 5 minutes ago | parent [-]

Those things exist for git too, e.g. git-bug. But the first-class to do it in git is email.

graemep 3 hours ago | parent | prev [-]

I like it but the problem is everyone else already knows git and everything integrates with git.

It is very easy to self host.

Not having staging is awkward at first but works well once you get used to it.

I prefer it for personal projects. In think its better for small teams if people are willing to adjust but have not had enough opportunities to try it.

TonyStr 2 hours ago | parent [-]

Is it possible to commit individual files, or specific lines, without a staging area? I guess this might be against Fossil's ethos, and you're supposed to just commit everything every time?

jact an hour ago | parent | next [-]

You can commit individual files.

justabrowser an hour ago | parent | prev [-]

Fossil user here. Yes, you can commit individual files.

There are certain more advanced things git can do that fossil can't--for example rebasing, which the author refuses to implement. If you want to rename a commit then you also have to go into the sqlite shell and do it manually, and there's no way to delete a bad commit. All of this is stupid, obnoxious asshattery on the part of the author, but otherwise it's very easy to use and bulletproof. (I don't ever use the web UI.)

One way to simulate "staging" is to just checkout the repo into multiple directories and do different things in each one, or even create a temporary work repo to be cleaned up and merged into the main one.

So you do lose some flexibility with fossil, but for normal uses it's quite usable, and the tradeoff is you won't ever accidentally blow your leg off.

EDIT: Since literally every other comment I made after this (like 3 of them) was downvoted and insta-flagged by the brigade of useless fags here, this will be my last post under this account. Fuck this piece of shit forum.

adzm 3 minutes ago | parent [-]

Second time today I've read and agreed with most of your comment only to eyeroll and downvote once seeing your ridiculous and immature edit.

2 hours ago | parent | prev [-]
[deleted]