14 ms·
Fossil Chat
- HeckFeck 6y agoDoes anyone use Fossil? I'm considering it for my personal projects. I like all it offers for the relatively low resource usage. The only use of it I've seen in the wild is Ripcord (https://dev.cancel.fm/issues https://dev.cancel.fm/issues), which is interestingly also relatively low resource usage compared to its competitor.
- arsome 6y agoSQLite is probably the best known user of it https://sqlite.org/src/doc/trunk/README.md https://sqlite.org/src/doc/trunk/README.md https://www.sqlite.org/whynotgit.html https://www.sqlite.org/whynotgit.html
- Tomte 6y agoSQLite obviously. Probably some other projects in the Tcl and SQLite world.
- sigzero 6y agoThe TCT (Tcl Core Team) uses it heavily. They seem to like it a lot.
- exikyut 6y agoAh, due to (who would've thunk) the SQLite connection.
- sigzero 6y agoThat probably had a lot to do with it I am sure.
- bch 6y ago> Ah, due to (who would've thunk) the SQLite connection. The “SQLite connection” is manifold - indeed drh (SQLite author) used to be on the Tcl Core Team, and is an unapologetic user of Tcl. SQLite itself isn’t just “well-supported” in Tcl, it started there. drh calls SQLite “a tcl extension that escaped into the wild”, among other things, and that “...SQLite is still heavily dependent upon TCL and the ongoing support, maintenance, and enhancement of SQLite would not be possible without TCL, and would be seriously inconvenienced without Tk.” [0][1] The ties are interesting and deep. [0] https://sqlite.org/tclsqlite.html https://sqlite.org/tclsqlite.html [1] https://www.tcl.tk/community/tcl2017/assets/talk93/Paper.html https://www.tcl.tk/community/tcl2017/assets/talk93/Paper.htm...
- sgbeal 6y ago> The ties are interesting and deep. Brad! You're alive! In case you hadn't heard: libfossil was recently revived, has been brought up to date with regards to SHA3 hashes, and got both "update" and "revert" APIs within the past week or two. The "last" major day-to-day feature it's missing is merge. We have the merge algo (it's used by update), but not yet the equivalent of the merge command. Your account is still active on the repo (https://fossil.wanderinghorse.net/r/libfossil https://fossil.wanderinghorse.net/r/libfossil).
- bch 6y agoI’ll ping you offline. I’d love to get back to that with you. Also enjoy seeing your comments all over this article :)
- KwanEsq 6y agoSQLite famously does so: https://www.sqlite.org/cgi/src https://www.sqlite.org/cgi/src
- mgreenleaf 6y agoI use it for most of my projects, with git covering the rest of them. I prefer the cli usage, philosophy, single binary / single file repository, and having all the notes/issues transfer across when I push makes it easier to develop and test across windows/linux/bsd. Autosync and other things are well-thought out details too; generally feels well designed. Otherwise, day to day usage isn't much different.
- emodendroket 6y agoIt seems to me like you’d want it to be obviously way superior for some reason to go so far away from the herd.
- mscrnt 6y agoYou’d forsake an improvement for the sake of following the rest of the cattle? Have you used it, yet, to see if it sufficiently meets your way superior standard to break free from the herd?
- emodendroket 6y agoWell yeah because git is, I find, good enough that I don’t have much desire to experiment with other SCM tools. Some people love customizing every part of their tool chain but to me it’s better to stick with something familiar with things like that so I can focus on solving my actual problem.
- mscrnt 6y agoBut have you tried Fossil to see if it does meet your way superior standard? Unless you're working on Linux kernel- or BSD-sized repositories, Fossil is arguably a better fit than Git. You don't need to customise anything out of the box—it's literally a single binary anywhere on your path and you have your version control, bug tracking, wiki, forum, chat, technotes, etc. in-house. Your team won't need to visit but one server—that really streamlines focusing on solving your actual problem.
- emodendroket 6y agoPretty much everyone already uses git and some kind of issue tracker so the question is more if it's so much better to justify learning a new thing, not if it is slightly better in the abstract. It is not immediately obvious to me that bundling all these things into one tool is going to give better results, especially when you have non-developer users in the mix.
- Hendrikto 6y agoFossil looks very interesting, but I completely disagree with their [stance on rebasing](https://fossil-scm.org/home/doc/trunk/www/rebaseharm.md https://fossil-scm.org/home/doc/trunk/www/rebaseharm.md). This is a dealbreaker for me. I do not consider having 10 buggy commits per feature instead of 1 working one an advantage. It just complicates reading history and hinders debugging (e.g. bisect). I get their arguments, I just disagree.
- rubyist5eva 6y agoThis is what private branches are for - when you merge them and sync they show up as a single commit on the mainline branch - not too different from git merge --squash.
- mscrnt 6y agoThat, and it's very easy to hide commits from the timeline too. You can get most if not all the benefits of rebase without losing history—that's a good thing.
- deleted 6y ago[deleted]
- iudqnolq 6y agoThe theory is that you don't see those 10 commits unless you choose to. I think they're right in theory that a Sufficiently Smart^TM scm should be able to work better by not throwing data away, but I haven't tested if it actually works in practice. > The Git documentation acknowledges this fact (in so many words) and justifies it by saying "rebasing makes for a cleaner history." I read that sentence as a tacit admission that the Git history display capabilities are weak and need active assistance from the user to keep things manageable. Surely a better approach is to record the complete ancestry of every check-in but then fix the tool to show a "clean" history in those instances where a simplified display is desirable and edifying, but retain the option to show the real, complete, messy history for cases where detail and accuracy are more important.
- dahart 6y ago
- theamk 6y agoI avoid it because of complete lack of commit amendment tools. It seems like quarter of the time I make a commit I mess up either a commit message or a file list, and have to "git amend". I have no idea how the sqlite devs live without the feature, they must be much more careful programmers than I am.
- mscrnt 6y agoYou could always try "fossil amend" as a commit amendment tool for starters.
- rkeene2 6y agoThere has pretty much always been a way to amend commits -- the difference is in Fossil this amendment is done by writing a new journal entry (artifact) noting which commit is being amended and how, rather than modifying the commit directly. Generally, the compiled version (base+resultant set of amendments) is displayed to the user, but the entries which modified the commit are also available to be seen.
- everybodyknows 6y ago>modifying the commit directly. Git preserves a record of the origial commit, plus amendments leading up to the final - git-reflog. The reflog is however subject to periodic pruning by default - see git-gc.
- rkeene2 6y agoFossil preserves the journal of activities forever, and across clones.
- sgbeal 6y ago> I avoid it because of complete lack of commit amendment tools. That's downright wrong: https://fossil-scm.org/home/help/amend https://fossil-scm.org/home/help/amend
- rcarmo 6y agoI used it for quite some time, still have archived repos on it because they’re a single file and very easy to move around. Mostly moved to gitea on a home NAS for the GitHub sync capability (makes it easy to have a local copy of dependencies, etc.) But I do miss the straightforwardness (and sometimes bluntness) of fossil sometimes. Much easier to deal with for personal projects.
- chillfox 6y agoI use it for any personal projects that are large enough that I want a few pages of documentation and a ticket system to keep track of planned features. The ticket system can be configured quite a bit, so I usually set it up like a todo list with: “to do, doing, done”.
- rkeene2 6y agoI use Fossil and run a Fossil hosting service called ChiselApp [0]. I've used Fossil for all kinds of projects big (commercial Linux distributions, with installer ISO as the result of the CI/CD pipeline stored as Fossil Unversioned content artifacts) to small (a single file demo), but primarily with only a small number of developers. [0] https://chiselapp.com/ https://chiselapp.com/
- AnonHP 6y agoCould you please put up a post on the ChiselApp website about your motivations for running a free service, how you manage it, etc.? It’s always interesting to see these free services without a commercial angle, and makes me wonder why they’re there, how they sustain themselves, what restrictions they impose on users, and related matters.
- rkeene2 6y agoI run it because I use Fossil a lot and want a low-friction way to create new repos. It doesn't cost me anything to run since I already had extra CPU, RAM, and Disk capacity on my personal server.
- petre 6y agoYes, we use it. It's awesome. Thank you again D. Richard Hipp.
- silasdb 6y agoI decided to give it a try on a new project and, although it seemed strange at first (coming from years using git), I fell in love with it and I'm converting all my own projects to fossil. It does everything other SCMs do. It also can do everything git does, but in a saner way. Also, the self-hosting capabilities in a few MB binary are astonishing and you just don't pay for what you don't use. In my own repositories, I don't use chat nor wiki pages, but I do use forum, the ticket system and technotes. The community and developers are very nice to answer questions too, and are open for suggestions. There is room for even further improvement and it is more a matter of someone showing up willing to develop the specific feature of the project.
- sgbeal 6y ago> Does anyone use Fossil? Almost literally every day since Christmas break of 2007. > I like all it offers for the relatively low resource usage. And setting it up to run over CGI (e.g. over a $5/month shared hoster) takes about 90 seconds and requires no additional apps. That was the initial Killer Feature for me, and is still critical for me. i host dozens of repositories over CGI on an inexpensive shared hoster (https://fossil.wanderinghorse.net https://fossil.wanderinghorse.net), and couldn't do that with any other SCM.
- zzo38computer 6y agoI use Fossil for my own projects. However, I do not use the forum feature, chat feature, etc. They don't belong there in my opinion, nor do I like the implementation much; I use external software. There are a few other things I dislike about the design of Fossil; it doesn't have very good low level access, for one thing (there are other concerns too, although rebase isn't one of them). I have started to make my own implementation, which I intend to support the Fossil protocol and deconstruction format. Someone else perhaps had a similar idea, so were writing libfossil; however, they seem to consider the protocol implementation a lower priority, while I consider it important (however, they consider it important to use the same database schema, while I don't, and can freely rewrite it). As it turns out, both of us had independently used the term "deck" or Fossil structural artifacts.
- sgbeal 6y ago> Someone else perhaps had a similar idea, so were writing libfossil; however, they seem to consider the protocol implementation a lower priority, That's me (https://fossil.wanderinghorse.net/r/libfossil https://fossil.wanderinghorse.net/r/libfossil). The protocol is irrelevant to the implementation of the underlying core algorithms and data format. The sync protocol is a completely separate layer which can be reimplemented any number of ways without affecting the underlying data model. Without the core data model and algos implemented, the sync protocol is useless because it has nothing to sync. Ergo: first implement the data model, then the sync. > (however, they consider it important to use the same database schema, while I don't, and can freely rewrite it) That's a really interesting topic, actually. The core data model is 100% independent of any given schema (or storage model, for that matter), so anyone implementing a compatible (at the data model level) tool is free to use whatever storage or schema they want. The fact is, though, that libfossil could never have gotten as far as it has without re-using much of what Richard has already designed, and that includes the schema and core SCM-relevant algorithms. As a long-time fossil contributor, it's important to me that the libfossil tools be as compatible as feasible with fossil, and that means using the same schema (for better or worse). That said: i would very much like to see the core data model implemented on top of another schema, just to see it done. Alas, i don't have the energy to create, from scratch, such a beast, nor to maintain it, so my path is one of lower resistance: re-use what's already been designed and which works well within the fossil project. i'd love to see what you have when you're ready to post it, though. (i recall you(?) posting about this in the fossil forum before - feel free to announce your project there when you're ready.) > As it turns out, both of us had independently used the term "deck" or Fossil structural artifacts. What else would one call a "container of cards"? :)
- mscrnt 6y ago> Does anyone use Fossil? Daily, across a half dozen odd repos, and it greatly simplified my life since switching from Git. My primary wish is to have the forum compatible with email. And the next would be a partial commit option akin to 'git commit -p' although I think this is missed more than it was ever used. At first, I thought the chat was an odd addition but it's being used daily on all repos, and has really improved team cohesion and productivity. The ability to view documentation changes in the browser while still in the local checkout but not yet committed has also proved quite valuable. Having the repository contained in one file is handy, and frequenting one server for all dev related work is a huge bonus. It's unbelievably easy to setup, and the command line syntax and help is highly intuitive and simple, making transition a breeze and continued use a joy. It's a great piece of software for any team working on your typically-sized repo.
- danpalmer 6y ago> Fossil chat is not intended as a replacement or competitor for <list of chat platforms> So what is it for? If it's another inbox to check that's a bit of a productivity drain. I could understand if it was explicitly designed to compete with other chat platforms. This would seem to fit with Fossil's mission well.
- mgreenleaf 6y agoI think the idea is so that core developers have a quick way to chat with one another over design ideas w/o needing to register or setup other infrastructure, then move the best over to the permanent forum record or wiki. Then the core members don't need to have a dedicated channel somewhere else. If they did, then that would be another inbox to check; instead they can check the fossil chat when they are on the project site looking over commits or documentation. So it is just another source of information on the main "fossil channel" instead of another channel to check. Viewing it in that way, it is reducing the number of channels by simply inlining it.
- jayd16 6y ago>Then the core members don't need to have a dedicated channel somewhere else. But isn't that "a replacement"?
- mscrnt 6y agoNot a replacement inasmuch as it's not a standalone chat client to be used by disparate users for various reasons. It's a chat client for developers of a given project to convene discussion about work going on in that repository at that point in time. So where Discord, for example, is for anyone to setup a server to discuss anything; Fossil chat is for devs working on projects that already use Fossil to convene discussions pertaining to that repository. You won't setup a Fossil instance just to use as a chat client—because it's not intended as a replacement or competitor for <list of chat platforms>—but if your project already uses Fossil, now you can keep your dev-related chat in-house.
- Thursday032521 6y ago
- kevincox 6y agoAll I can think is that it seems a bit early for April Fool's jokes. It isn't clear what makes bundling a chat program into your SCM beneficial. The only benefit I can see is linking to other things in the SCM like wikis and issues, but since these are available on the web anyways you can just use regular URLs in any old chat app. The other possible benefit would be keeping chat with you for local searching and keeping it with the history of the repo, however this is designed to be ephemeral so throwing that possible benefit away. (I guess you are supposed to use Forums for that https://www.fossil-scm.org/home/doc/trunk/www/forum.wiki https://www.fossil-scm.org/home/doc/trunk/www/forum.wiki) I'm not a Fossil user, so maybe I just don't understand, but I see little to no value in this feature.
- mgreenleaf 6y agoIf you already have a chat infrastructure set up with all the bells and whistles, then you probably don't need this; it is a different kind of workflow. But one workflow for it would be open source projects that prefer not to have to maintain additional infrastructure and just want to inline ephemeral communication w/o having to keep it forever; then they make a design decision and have everything that is finalised moved over and documented in the wiki.
- billfruit 6y agoLack of a direct messaging/email feature is one of the major lacuna of Git hub. In that light may be having some sort of integrated channel is a good thing.
- deleted 6y ago[deleted]
- sgbeal 6y ago> It isn't clear what makes bundling a chat program into your SCM beneficial. ... you can just use regular URLs in any old chat app. You just answered your own question: trying to get any given group of people to use the same 3rd-party chat platform, especially one hosted by Big Megacorp (and aren't they all nowadays?), is like herding cats. Every developer on a fossil project already has an account they can use, not hosted by Big Megacorp, which they can chat over (provided the project admin permits it - they are not required to give devs chat access). i admit that i had several reservations when Richard proposed /chat on the fossil mailing list, but i'm a 100% convert, and now use it 24/7 on two projects and get tremendous value from it. (Disclaimer: i wrote the /chat front-end, so am inherently biased, but i'm biased towards it because it's useful, low/zero-maintenance, and low-friction, not because i've invested many hours into its development.)
- julianlam 6y agoSo they built their own chat room feature? I feel that's a bit short-sighted, but I'll admit I'm only a random opinionated passer-by. You can certainly do it, but you'll run quickly into issues and be buried in feature requests because like it or not, a chat room isn't just "a couple messages being passed back and forth" Hand rolling your own communication tool is a great way to become so busy you don't have time for your actual work.
- barkingcat 6y agoIn the context of fossil-scm, it does make sense. The idea of fossil is that it's 1 embedded database (sqlite) that contains the entirety of your development activities. scm, wiki, defect tracking, a little bit of project management, and now chat room. The entire idea of fossil is that you shouldn't need to use another website or another tool for anything related to tracking your development. It's the "I am stranded on a tropical island, what do I use for hacking on a project if I can't have github or irc or slack or any other tools out there." In the context of fossil, chat is just a couple messages being passed around with no account taken at all for any other concerns. It's not a "chat" tool, it's a chat tool for the fossil-scm. Especially if you look at the Ephemeral feature - they delete chat messages after a certain configurable time - so they don't even have to worry about keeping messages.
- mscrnt 6y agoIt's only for devs with commit bits—not random users. So not likely to be buried in feature requests and much more likely to be just a couple messages being passed back and forth between developers of the project. I feel it streamlines the process and improves cohesion a great deal; more of a long-sighted deal—but I'm only a random opinionated passer-by.
- supportlocal4h 6y agoHeh. Building an scm is a great way to become so busy you don't have time for your actual work. Building a db is another great way. If I could be so unproductive...
- sgbeal 6y ago
- candiddevmike 6y agoHow is the security with Fossil? I'm always leery of hosting (niche) web facing services written in C.
- pmarin 6y agoWhat web server do you use?
- candiddevmike 6y agoCaddy, though I have used NGINX and HAProxy in the past. I get your point, but those projects have corporate backing and a lot of scrutiny. A niche C project seems less likely to have that.
- pmarin 6y agoDo you know the author of Fossil is the same person who wrote sqlite?
- exikyut 6y agoSQLite3 is the only project I have ever seen that casually makes (non-normative, non-legally-binding) confident reference to its suitability for use in medical devices.
- iudqnolq 6y agoI just saw today it's "aviation certified", which I assumed was the same but turned out to be literally true.
- zie 6y agoMy understanding is, if you pay for a support contract, they are happy to make it legally binding. It's literally the most used database in the world, but a giant margin. Every Android and iOS device and every mac and linux machine use SQLite. I haven't ever bothered to check Windows, but I bet they use it too.
- 6y ago
- deleted 6y ago[deleted]
- halfmatthalfcat 6y agoWhere are the screenshots?? How infuriating is it to go to a project's homepage that has a UI and not see any goddamn screenshots. This is absolutely table stakes if you want me to use your product. edit: Oh haha, the website is literally Fossil. Ok but I wanna see what the chat UI and other stuff looks like.
- orf 6y agomdel, ltime, mtime. Why do people insist on oft unreadable short column names?
- oblio 6y agoBecause they're cdevs.
- orf 6y agoI think you mean cdvs, the e is clearly overkill, takes up more bytes on disk, increases compile times and eats up valuable screen real estate! The last one is especially bad, because it will make the code that uses it harder to read.
- onychomys 6y agoSurely we should instead use cdv, in case there's only one of them in a row. And boom, 25% space savings from that little change!
- orf 6y agoThis is a 25% decrease in storage and a 25% increase in raw typing throughput. Truly increadible.
- oblio 6y ago> I think you mean cdvs, the e is clearly overkill, takes up more bytes on disk, increases compile times and eats up valuable screen real estate! Also one more extra letter to type for people who can type 100+ words per minute and over an entire day probably only need to type 2 words per minute on average (the rest of the time spent thinking, debugging, reading documentation, being in meetings, etc) :-)
- orthecreedence 6y agoyr cmmnt's ndlssly vrbs.
- 6y ago
- satya71 6y agoReminds me of Unix talk and write. They were so simple when sharing little bits of information with people already logged into the system.
- wyoung2 6y agoThe biggest difference was that write(1) was 1:1, whereas this lets any number of people participate. It's got a bit of formatting control as well, though not full Markdown, alas.
- alberth 6y agoHas anyone seen a demo? I tried to created an account to see it live at https://www.fossil-scm.org/home/chat https://www.fossil-scm.org/home/chat but it appears they have /chat locked down to authorized accounts. (Regardless of what others might be saying in this thread, I think this functionality is great. It reinforces the centralization of your dev related work. Plus, presumably they are using SQLite on the backend - so /chat might result in now additional functionality being added to SQLite that might also be beneficiary e.g. removing blocking on writes, etc)
- exikyut 6y agoSee my comment over at https://news.ycombinator.com/item?id=26579872 https://news.ycombinator.com/item?id=26579872
- wyoung2 6y agoYes, chat messages are stored in a table in the SQLite DB backing the repository you're chatting about, which allows you to close the browser window when you need some peace to concentrate on work, then revisit the chat room later and see what's been going on while you were away. As for the dream of making SQLite faster or better, I doubt it. Fossil works best for small teams with projects sized reasonably for those teams, and chat privilege isn't generally given out to the masses. There's only one chat room per repo. Therefore, there simply isn't enough I/O involved to drive much in the way of SQLite changes. Fossil proper has resulted in SQLite improvements, though, such as the recursive CTE feature added in 3.34.0. That directly supported a feature for tracing the history of files through renames across repository history using a single efficient (though complicated) SQL query: https://fossil-scm.org/forum/forumpost/5631123d66 https://fossil-scm.org/forum/forumpost/5631123d66
- exikyut 6y agoHI! What it looks like: https://imgur.com/a/PaHExsp https://imgur.com/a/PaHExsp Here's Fossil 2.15 running on EC2: http://54.79.202.57/register http://54.79.202.57/register - this link will allow you to create a new account. Alternatively, the "chat" user (password "chat") can be used if you don't want to make an account. [It used to have the ability to create additional users (with admin privs), with the result that the fossil instance rapidly began spouting SQL errors and I had to reset it, twice. That was fun...] The instance is completely ephemeral. If this comment is more than a week or so old, expect the above IP to be dead (I'll be cycling the VM). And yes - note that it's going over HTTP, not HTTPS :P (that would have taken an extra, uhh, while) -- If you're using 'chat': once you've opened the above link, go to "login", login, then locate the new "chat" tab. You can optionally go to Admin > Users and make yourself a new account (the "Add" link is a little hard to see, it's to the far left immediately under the tab bar; also be sure to select "Chatroom" from the far right in the permissions list).
- butterisgood 6y agoNot able to login a chat:chat
- exikyut 6y agoFIXED Realizes people can change the password woops <insert cartoon punching fight cloud here> argh OK. Because Fossil is awesome you can disallow people from changing their own passwords, while also making it possible to create further accounts that can change their own passwords. Nice! [EDIT: A few misconceptions here. No, you can't do the above; if a user couldn't change their password but could create new admin accounts, said new admin account could just change the initial user pw.]
- nattaylor 6y agoSome seems to have changed the password already :/ Too bad it isn't allowed for logged-in anonymous users to chat (though that would be confusing!)
- 6y ago
- swiley 6y agogit: version control over messaging fossil: messaging over version control
- jnwatson 6y agoAnother instance of Zawinski's Law: "Every program attempts to expand until it can read mail".
- whereistimbo 6y agoI'm looking forward to email client in Fossil, preferably on the next April 1st!
- bachmeier 6y agoWell actually... Fossil supports CGI extensions and Thunderbird saves your messages in an sqlite database. I plan to read my email from within Fossil repos. Why? Because I routinely download email messages and commit them to the repo. This will give me a web interface to read messages and, if I want, copy them into the tickets database. I can then query all the email messages related to a project using SQL. I realize your message was not serious, but it's a real use case.
- rkeene2 6y agoI think this is great. I will upgrade ChiselApp.com to use Fossil 2.15 as soon as it's released. A bit off-topic, but the thing I miss most when I use Fossil (versus GitHub.com) is the ability to do code reviews and leave in-line comments on code. Also, pull requests [0] would be awesome for some of my more public projects. [0] https://fossil-scm.org/forum/forumpost/01d77b7259ea0b00b7065e9a166009d4c98060a7007963ffcdda59aae223b446 https://fossil-scm.org/forum/forumpost/01d77b7259ea0b00b7065...
- chillfox 6y agoInteresting, I could see using fossil for public projects if the pull requests gets implemented. Currently I only use it for private projects. So my top wish list feature would be basic CI.
- rkeene2 6y agoI started Fossil CI [0] for this, but I have not finished it up. [0] https://chiselapp.com/user/rkeene/repository/fossil-ci/index https://chiselapp.com/user/rkeene/repository/fossil-ci/index
- pumpkinhead 6y agoThanks again for your work. I very much appreciate chisel.
- jayd16 6y agoAs others have said, the fact that this isn't geared as a replacement implies that its an additional distraction on top of established chat. Perhaps a better iteration would be as a consistent proxy to other chat hosts? As in, once configured, this chat feature would mirror to IRC, Slack, Discord, Telegram, Google Hangouts, etc. Fossil users could have barebones but consistent access to team chats without the multiple inboxes problem? Or they could use the established chat host directly and never look at this chat again.
- minusf 6y agowhat fossil is sadly missing at the moment is a vim plugin a la fugitive.