It's quite sad to see that so few projects use it. The idea of having everything in one repo, incl. bugs, is just great. I can create new bugs while offline, update bugs while offline, etc. and then just sync everything once I'm back online.
It also has pretty good support for incrementally importing from and exporting to Git: https://blog.nil.im/?79
> The idea of having everything in one repo, incl. bugs, is just great. I can create new bugs while offline, update bugs while offline, etc. and then just sync everything once I'm back online.
The bug thing I kinda disagree with... or at least I'm skeptical, shall we say. Bugs are solved when the fix has been deployed and verified fixed in production, not when someone commits/pushes/merges a potential fix to the main branch. Sure you can separate the 'bug-X fixed' change to the bug tracker and the code commits, but then what have you gained over just a 'Fixes: X' annotation in the commit msg?
This could be misunderstanding on my part about the intent/process around bug/issue handling in Fossil, so I'd appreciate if you could expand on what you like about and how it works within the larger 'deploy a fix' context.
(I tried Fossil for a bit on a very small scale -- it was pleasant enough, but ultimately Git's network effects win out big time... at least for me.)
This is really nice. How have you been hosting this? How well is fossil able to handle the traffic?
I've read so many articles about the advantages of static site generators and serverless implementations for blogs so that they are able to handle traffic and the insane amount of tooling around each of those concepts. It's so great to see a well crafted piece of software being able to take care of all that so seamlessly.
I'm a big fan of fossil personally and use it for all my projects as well as for all the projects in our organization.
Thank you for posting a link to your site. It's really nice to see a live demonstration of Fossil. I notice that your page is using https - does Fossil do that or do you have something else in between (nginx, etc) that provides the https?
- handles large files effectively (build artifacts, 10-40GiBs each, and other binary dependencies)
- partial checkout of the repo/view
- git style operations (have stage area, can stage parts of a file, can stash changes and reapply later, cherry pick)
- can view the history of an individual file (support file relocation)
- access control on individual files, and partial review of the repository (views are "granted" to developers)
- good tooling
- immutable when it makes sense (e.g. you cannot changed a published commit)
- works offline (if possible)
- large mono repo
I evaluated git annex and git lfs, and finally chosen Perforce, mainly for its large file handling, view for each developer and ACL, but the lack of flexibility makes me don't want to commit, and every time I do a merge, I say to myself, "uuh, this again". The other thing it lacks is the "ease of mind", with git, everything is checksummed, if the content changes, it will be noticed by git, with Perforce, you have to tell it you want to edit it. (Not nit-picking on Perforce, I actually think Perforce is a good software, its server runs flawlessly, and have a good p4v (if you don't mind the friction), I think it just lacks good tooling and git style operations)
I enjoy how well-crafted Fossil seems to be; just like SQLite, which a sibling comment also mentioned. I really want to use Fossil, but it would be way too hard for me to not have the index/staging area of Git. [1] For all the software that claims to be 'opinionated', Fossil really is that.
Yes. I use `git add -p` and `git stash -p` all the time and couldn't work without them. Fossil's equivalents appear to let you specify a subset of files to commit / stash, but not individual thunks inside them. [1] [2]
Not to mention the lack of `rebase -i` to clean up local commits.
Agreed. I'd love to have integrated bug-tracking, and some of the other features, but Fossil is also trying to drive particular opinions about version control that are incompatible with how many people want to work.
It's already hard to move people away from a system that has huge network effects. This makes it much harder.
Where did you see opinions in that document? It's a technical description of the functional differences between Fossil and Git, explained with Git terminology.
I have great fondness for Fossil, used it a couple of times and wish it were possible to keep using it.
I tried to rally some interest on the mailing list behind separating the working parts from the UI chrome into a 'libfossil', which could be integrated into other programs. The verdict was that D. Richard Hipp doesn't really want to, since it's a classic C monolith where the allocation strategy doesn't make that separation easy. Someone started the job, but had to abandon it due to RSI issues.
I still kinda hope someone bites the bullet, because a "libsqlite for versioning" would be a real boon for application developers. Even for fossil's central use case as a code VCS, the monolithic bundling of everything into one program is a mixed bag.
I run ChiselApp.com to support publicly hosted Fossil repositories.
The architecture behind it is pretty simple, since Fossil is doing all the work and I'm just orchestrating it (although I do allow you to execute arbitrary Tcl scripts as part of it, so there is some work that goes into the sandbox).
I'm a big fan of Fossil, but I've sadly not used it in a while for new projects, as when stuff has to go on gitlab or github it is just too inconvenient.
Even though one-way pushes to github/gitlab via --fast-export / --fast-import are relatively painless, going the other way for contributions is still not easy because of rebase issues, etc, at least to my knowledge.
Whoa. Many, many years ago I started idly hacking on a similar project with similar ideas and an identical name. I've always intended to return to it in my Copious Spare Time, which of course means I never did and probably never will.
When I started exploring this I registered the gitbug.org domain - would you be interested in using it for your project?
I wanted to use Fossil but the division between what you do in CLI and what you do in the web UI was too arbitrary. I wanted to edit the wiki in vim, for example. Now I don’t care anymore and just use Git and GitHub
Yeah it's a bit bifurcated. Internally there's a lot of coupling -- HTML embedded directly in the C code and whatnot. This could be resolved if tools could be built on top of fossil, but the CLI code uses `exit` everywhere which makes it impossible to use as a library. I think they made an incomplete attempt at a JSON API, but what you really need is a proper linkable library like libgit2.
About 3 years back I was having a discussion with my CTO and he was mentioning why he likes `hg` instead of `git` and that how he uses hg-git bridge to handle git repositories and all. But still he supported the git as the organization wide adopted SCM tooling. Reason being that when we have to choose a tooling which needs to be used by a lot of people in organization then we also need to consider about the learning curve and adoption of a tool. Git is already a default tooling and so many engineers are already familiar with it that choosing it came natural. Moreover, the SCM use-cases for us were mostly the regular standard one.
Over time, I have started to think in terms of innovation tokens [1]. You cannot choose all the new technologies all the time and you have to measure how many innovation tokens would you like to spend on what.
Hg's developer ergonomics are just way nicer than git. I tried the hg-git bridge at my current job, but the bridge becomes unusably slow for large git repos.
Aside from standard version control uses, I eventually realized that the tickets database is just a regular sqlite database that lets you edit the schema and query any way you like. What's really cool is that it's version controlled. You can put any information you want into the tickets database and then pull changes like any other repo. You can view the timeline to see all the changes you've made to the database over time.
I would "Join the wait list" but it just opens a page with something my browser blocks immediately because it side-loads some frame from google.
A simple HTML form to summit an email really cant be that hard that it needs to be outsourced to google.
Can anyone give a conceptual model breakdown of the data model of fossil vs git and trade offs? I’ve been quite interested in these types of structures. I need to play more with them.
> Fossil also supports bug tracking, wiki, forum, and technotes
That sounds great, but I'm scared of checking these features out because I'm currently looking at the quick start guide[0] and am immediately put off by how awful the CSS is. Formatting running text such that a single line can be ~500 characters wide[1] results in very low readability. There's a difference between ‘themeable’ and ‘configuring a custom theme is mandatory because the default option makes you feel sick’.
In case someone working on Fossil sees this: I just bookmarked the site because the project seems very attractive in most other respects. I hope that when I eventually re-visit that link, I'll be able to go on a significantly deeper dive. A somewhat sane style sheet would certainly help.
I agree this can be annoying when you have really large windows, but personally I don't mind it. I don't think it's hard to resize a window, and I _have_ been frustrated when sites (like the new Reddit) force a narrow window when sometimes you need to see more at once.
I use Fossil myself; it is much less confusing than git. (You can even import/export git if you need to mirror it on Github or if another user prefers to use git instead of Fossil.) However, I do not use the forum feature since I prefer to use NNTP for that instead (although Fossil does provide some of the same benefits, and I might use it if it could be used together with NNTP). I do use the Fossil wiki though. It is indeed good that the bug report system can be used without an internet connection, and also that the repository is just a SQLite database file; there are clear benefits to this.
fossil has much better command line experience than git. I used this in the past for my solo project but abandoned it because virtually everyone uses git these days.
Reading through some of the articles linked in the comments, I'm very hesitant to use something whose creator is so opinionated and vocally against another piece of software. Maybe its just the style of writing, and isn't actually reflected in Fossil's development, but this kind of attitude doesn't inspire confidence.
It's more that "why don't you use Github for sqlite" comes up six times a day, so at a certain point you have to explain why you use your own version control system. A lot of developers today know nothing other than Git and assume anything else is wrong by default.
[+] [-] Midar|5 years ago|reply
It's quite sad to see that so few projects use it. The idea of having everything in one repo, incl. bugs, is just great. I can create new bugs while offline, update bugs while offline, etc. and then just sync everything once I'm back online.
It also has pretty good support for incrementally importing from and exporting to Git: https://blog.nil.im/?79
[+] [-] kzrdude|5 years ago|reply
[+] [-] Quekid5|5 years ago|reply
The bug thing I kinda disagree with... or at least I'm skeptical, shall we say. Bugs are solved when the fix has been deployed and verified fixed in production, not when someone commits/pushes/merges a potential fix to the main branch. Sure you can separate the 'bug-X fixed' change to the bug tracker and the code commits, but then what have you gained over just a 'Fixes: X' annotation in the commit msg?
This could be misunderstanding on my part about the intent/process around bug/issue handling in Fossil, so I'd appreciate if you could expand on what you like about and how it works within the larger 'deploy a fix' context.
(I tried Fossil for a bit on a very small scale -- it was pleasant enough, but ultimately Git's network effects win out big time... at least for me.)
[+] [-] thunderbong|5 years ago|reply
I've read so many articles about the advantages of static site generators and serverless implementations for blogs so that they are able to handle traffic and the insane amount of tooling around each of those concepts. It's so great to see a well crafted piece of software being able to take care of all that so seamlessly.
I'm a big fan of fossil personally and use it for all my projects as well as for all the projects in our organization.
[+] [-] OldHand2018|5 years ago|reply
[+] [-] dkulchenko|5 years ago|reply
[+] [-] 7kmph|5 years ago|reply
- handles large files effectively (build artifacts, 10-40GiBs each, and other binary dependencies)
- partial checkout of the repo/view
- git style operations (have stage area, can stage parts of a file, can stash changes and reapply later, cherry pick)
- can view the history of an individual file (support file relocation)
- access control on individual files, and partial review of the repository (views are "granted" to developers)
- good tooling
- immutable when it makes sense (e.g. you cannot changed a published commit)
- works offline (if possible)
- large mono repo
I evaluated git annex and git lfs, and finally chosen Perforce, mainly for its large file handling, view for each developer and ACL, but the lack of flexibility makes me don't want to commit, and every time I do a merge, I say to myself, "uuh, this again". The other thing it lacks is the "ease of mind", with git, everything is checksummed, if the content changes, it will be noticed by git, with Perforce, you have to tell it you want to edit it. (Not nit-picking on Perforce, I actually think Perforce is a good software, its server runs flawlessly, and have a good p4v (if you don't mind the friction), I think it just lacks good tooling and git style operations)
[+] [-] zegerjan|5 years ago|reply
GitLab will continue to make investments in it for at least the next year as it's a big issue especially for gaming companies.
Full disclosure, currently a GitLab employee.
[+] [-] nix23|5 years ago|reply
http://www.bitkeeper.org/
EDIT: But Perforce is nice too, and free for up to 5 devs.
[+] [-] dilap|5 years ago|reply
i'm curious if the above are compatible with a patch-based VCS. if so, maybe good areas for would-be future VCSs to focus on, to establish a niche...
[+] [-] qznc|5 years ago|reply
[+] [-] kipari|5 years ago|reply
[1]: https://fossil-scm.org/home/doc/trunk/www/gitusers.md
[+] [-] Arnavion|5 years ago|reply
Not to mention the lack of `rebase -i` to clean up local commits.
[1]: https://www.fossil-scm.org/fossil/help?cmd=commit [2]: https://www.fossil-scm.org/fossil/help?cmd=stash
[+] [-] JoshTriplett|5 years ago|reply
It's already hard to move people away from a system that has huge network effects. This makes it much harder.
[+] [-] richie_adler|5 years ago|reply
[+] [-] samatman|5 years ago|reply
I tried to rally some interest on the mailing list behind separating the working parts from the UI chrome into a 'libfossil', which could be integrated into other programs. The verdict was that D. Richard Hipp doesn't really want to, since it's a classic C monolith where the allocation strategy doesn't make that separation easy. Someone started the job, but had to abandon it due to RSI issues.
I still kinda hope someone bites the bullet, because a "libsqlite for versioning" would be a real boon for application developers. Even for fossil's central use case as a code VCS, the monolithic bundling of everything into one program is a mixed bag.
[+] [-] rkeene2|5 years ago|reply
The architecture behind it is pretty simple, since Fossil is doing all the work and I'm just orchestrating it (although I do allow you to execute arbitrary Tcl scripts as part of it, so there is some work that goes into the sandbox).
[+] [-] lactobacillis|5 years ago|reply
[+] [-] dognotdog|5 years ago|reply
Even though one-way pushes to github/gitlab via --fast-export / --fast-import are relatively painless, going the other way for contributions is still not easy because of rebase issues, etc, at least to my knowledge.
[+] [-] michaelmure|5 years ago|reply
[1]: https://github.com/MichaelMure/git-bug
[+] [-] cortesi|5 years ago|reply
When I started exploring this I registered the gitbug.org domain - would you be interested in using it for your project?
[+] [-] marmaduke|5 years ago|reply
[+] [-] bachmeier|5 years ago|reply
https://fossil-scm.org/home/help?cmd=wiki
To edit a page, do an export and then a commit when you're done. It was easy enough to add this as a menu item in Emacs.
fossil wiki export foo.wiki foo.md
fossil wiki commit foo.wiki foo.md
[+] [-] gw|5 years ago|reply
[+] [-] siddharthgoel88|5 years ago|reply
Over time, I have started to think in terms of innovation tokens [1]. You cannot choose all the new technologies all the time and you have to measure how many innovation tokens would you like to spend on what.
[1] : http://boringtechnology.club/
[+] [-] dimator|5 years ago|reply
[+] [-] bachmeier|5 years ago|reply
[+] [-] unknown|5 years ago|reply
[deleted]
[+] [-] BareNakedCoder|5 years ago|reply
[+] [-] noxer|5 years ago|reply
[+] [-] dfischer|5 years ago|reply
[+] [-] cbsks|5 years ago|reply
Fossil Versus Git: https://fossil-scm.org/fossil/doc/trunk/www/fossil-v-git.wik...
Why SQLite Does Not Use Git: https://sqlite.org/whynotgit.html
Hints For Users With Prior Git Experience: https://fossil-scm.org/home/doc/trunk/www/gitusers.md
[+] [-] n3k5|5 years ago|reply
That sounds great, but I'm scared of checking these features out because I'm currently looking at the quick start guide[0] and am immediately put off by how awful the CSS is. Formatting running text such that a single line can be ~500 characters wide[1] results in very low readability. There's a difference between ‘themeable’ and ‘configuring a custom theme is mandatory because the default option makes you feel sick’.
In case someone working on Fossil sees this: I just bookmarked the site because the project seems very attractive in most other respects. I hope that when I eventually re-visit that link, I'll be able to go on a significantly deeper dive. A somewhat sane style sheet would certainly help.
[0] https://www.fossil-scm.org/home/doc/trunk/www/quickstart.wik... [1] https://i.paste.pics/A9RQ8.png
[+] [-] cnst|5 years ago|reply
[+] [-] leafmeal|5 years ago|reply
[+] [-] flohofwoe|5 years ago|reply
[+] [-] z2210558|5 years ago|reply
[+] [-] BareNakedCoder|5 years ago|reply
[+] [-] Jach|5 years ago|reply
Citation needed, especially when the literature doesn't support such a statement. See https://twitter.com/danluu/status/1115707741102727168
[+] [-] zzo38computer|5 years ago|reply
[+] [-] aarchi|5 years ago|reply
[0]: http://darcs.net/ [1]: https://en.wikibooks.org/wiki/Understanding_Darcs/Patch_theo...
[+] [-] lelf|5 years ago|reply
There's a more modern reincarnation of the similar ideas — https://pijul.org. Ready for playing with, not much else.
[+] [-] severak_cz|5 years ago|reply
I even created git wrapper somewhat by fossil command line, but it's not finished - https://github.com/severak/ginger
[+] [-] kayson|5 years ago|reply
[+] [-] bachmeier|5 years ago|reply
[+] [-] wyoung2|5 years ago|reply
[+] [-] unknown|5 years ago|reply
[deleted]
[+] [-] sigzero|5 years ago|reply
[1]: https://gitea.io
[+] [-] ComputerGuru|5 years ago|reply