Equivalent to GitHub for fossil repositories?

Wasn't sure exactly where to put this. None of the categories of the forum seemed like a good fit. :slight_smile:
I know this is a bit off topic but I was wondering: I know that GitHub is the central place to host git repositories, but what about Fossil ones? I could run my own infrastructure of course, but I'm not sure whether that's a good idea. I moved my code to Fossil primarily because the arguments for it were pretty legitimate ones (and no, I'm not looking for a "best repository/version control system flame war" either). However, the major drawback that I can see is that there aren't many good hosting providers for it, and definitely nothing like GitHub. I'd like to make a call for participation on TWiR, but before I can do that I need a place to put it. :smiley: Thoughts?

1 Like

I don't know much about fossil and nothing about this hosting site I dug up, so I can't endorse it, but it seems to exist: a free fossil hosting service: https://chiselapp.com

I found a random rust project in its project list (exhaustive?): rustop: rustop

1 Like

So I'd moved my project to a locally set up Fossil repo for a while and made quite a number of changes to it. However, the solution above was the same one I'd come across, and it seems very unmaintained (e.g. no MFA, a lot of various other issues with the site I found after a quick Google search, etc.). That, and the fact that I kept having to add new things to ignore-blob since Fossil has no concept of .gitignore (or I suppose .fossilignore). I've moved back to git -- the entire system including the integration to GitHub, Gitlab, etc., is far more refined and easier to use, and a lot more works with Git than Fossil.
It'd be nice if Fossil became a contender for Git, but I don't see that happening for a while. Thanks for the time in looking into that though.

I use fossil for all my active development and use git only for publishing tagged versions. I have both fossil and git checked out into the same directory, use ignore lists to keep them from fighting and have a small tool which helps me keep things in sync when setting up for publishing. The setup has a few minor quirks, but overall it has been surprisingly smooth.

I host my own fossil repos; we want people with commit access to require X509 client certificate authentication, which is probably not trivial to find from any hosting services.

Not really sure what you mean by fossil not having a concept of .gitignore? You can add your ignore-lists to .fossil-settings/ignore-glob, and it works more or less the same as .gitignore.

How do you support things like CI/automated security audits and such like GitHub provides? I moved back to GH primarily because it provided those kinds of functions, and my server is a VPS so I can't run VMs. (I could use containers but that setup would get rather messy.)

Automatically running commands after a commit/push with fossil can be done -- it requires TH1 and Tcl support to be built (not enabled by default). If you build fossil with these features you can add a post-push TH1 handler which runs (and this is from memory, so it's probably wrong) tclInvoke exec /some/path/do_stuff.sh myreponame.

A few months ago I started woking on a custom CI solution for our fossil repos, but I only got as far as creating a proof of concept which runs mdbook automatically to update a book when new commits arrive, and then I had to do $DAYJOB things. But setting something proper up is in the pipeline (just need to find some spare time for it..).

Generally speaking: Github has roughly a gazillion dollars of money behind it, with many full-time engineers working on it. You won't, any time soon at least, find any fossil hosting system which can compete with that. If github works for you, then just use that.

If you really want to use fossil and build your own simple CI, it's certainly possible.

Anyway, this is getting off-topic. It's nice to see other Rust users using fossil, though. :slight_smile:

1 Like

I've been using chiselapp for my fossil projects for several years. Good service, very reliable, no issues at all.

Yeah, I really like it and it seems really good. I just have trouble with the ignore globs -- cargo doesn't create a fossil ignore glob for me automatically like it does git, so if I don't add target/* and such and do fossil add * it adds everything. Which isn't what I want, particularly if I've got build artifacts. (Yeah, I know... I shouldn't use add * on any VCS. But its so easy! :))

@rjc2013 I got kinda worried when I saw it had no form of MFA whatsoever. Not even webauthn. (WebAuthn's API is confusing to me, TBH.) The tickets for it seemed kinda all over the place too -- it just seemed... Antiquated. But maybe that's intentional and/or I'm being too cynical/critical. And there didn't appear from my brief glance that there was little documentation (e.g. I couldn't find any explanation of what exactly I was supposed to enter for the override code).

This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.