News for hackers. Stuff that matters.
Re:Fossil: A decentralized version control, bug tracking, an... by qwertyuiop924 on Sunday October 09, 2016 @05:39PM (#12673644)
Fossil is really cool. It never really caught on, which is kind of a shame.

OTOH, it's competing with git, a very well-designed piece of software with ungodly marketing (and a terrible UI, and it was so well designed because McVoy's various projects had already made many of the mistakes that Git didn't, although it avoided some of Git's mistakes, so Linus had something to work off of. But that's not the point).

Re:Fossil: A decentralized version control, bug tracking, an... by pampa on Sunday October 09, 2016 @07:01PM (#12674042)
People keep talking about git's terrible UI. I dont get it, anybody who had used subversion or cvs before could grasp the basics in like 5 minutes and have much better user experience.
Re:Fossil: A decentralized version control, bug tracking, an... by em3rgent0rdr on Sunday October 09, 2016 @07:26PM (#12674130)
Just because A is better than B doesn't mean that A is good.
Re:Fossil: A decentralized version control, bug tracking, an... by pampa on Sunday October 09, 2016 @07:49PM (#12674205)
Back in the day using CVS, and subversion later was a constant struggle. Before switching to git i used darcs for several years and tried mercurial. Git was clearly better than any of them.

So, how can you tell that git is no good, if it is the best of the tools available?

Re:Fossil: A decentralized version control, bug tracking, an... by hvidgaard on Monday October 10, 2016 @03:03AM (#12675535)
I've used git and mercurial extensively, but only with git have we regularly had the need to summon The Expert. With git I have to tell new users "don't use a flag or setting if you think you know what it does, look it up". That has not been needed for mercurial.

One particular good feature is the concept of a commit phase. It makes is crystal clear when rewriting history is allowed, and more importantly, when it isn't.

Re:Fossil: A decentralized version control, bug tracking, an... by em3rgent0rdr on Sunday October 09, 2016 @10:40PM (#12674700)
"how can you tell that git is no good, if it is the best of the tools available?"

Because the UI is complicated & confusing for new users, making it easy to dig yourself a hole.

Re:Fossil: A decentralized version control, bug tracking, an... by icebraining on Monday October 10, 2016 @10:00AM (#12677115)
It's also inconsistent; "git branch -d" vs "git submodule remove" vs "git tag --delete".
Re:Fossil: A decentralized version control, bug tracking, an... by MustardTiger on Sunday October 09, 2016 @10:50PM (#12674732)
It isn't the best, you just like it best. Lots of people do not agree. I also used darcs and mercurial. I still do use darcs, and have essentially stopped participating in most open source projects because I find git so unpleasant to try to use.
Re:Fossil: A decentralized version control, bug tracking, an... by jack9 on Sunday October 09, 2016 @08:41PM (#12674375)
> subversion later was a constant struggle

The only struggle about svn is branching (copy the whole thing) and merging was more frequent. There were many CVS systems, which I worked on, where there was no way to track who made what change in a day.

Re:Fossil: A decentralized version control, bug tracking, an... by lucideer on Sunday October 09, 2016 @08:47PM (#12674400)
You switched from using "was" in your first paragraph to "is" in your second. There are certainly more competitors to Git today than there were then.
Re:Fossil: A decentralized version control, bug tracking, an... by isxek on Monday October 10, 2016 @12:08AM (#12674982)
Are there really more? Some similar projects like Monotone and Bazaar are no longer being actively/regularly developed IIRC, and the number of hosting services for something as well-known as Mercurial has been dwindling.
Re:Fossil: A decentralized version control, bug tracking, an... by merijnv on Monday October 10, 2016 @04:48AM (#12675892)
Because, I'm guessing, a lot of people using Mercurial (like me) are just using GitHub. Mercurial has had a functional bidirectional git-mercurial bridge extension for over half a decade and I've never ran into issues with it.

The result is that I happily keep using Mercurial locally even when collaborating with people using Git. I don't see the need to have Mercurial specific hosting. (Well, until Bitbucket finally starts working with obsolence markers so I can use Changeset Evolution).

Re:Fossil: A decentralized version control, bug tracking, an... by bch on Monday October 10, 2016 @01:15AM (#12675188)
To say nothing of the fact that comparing git to svn or cvs is disingenuous; it should be compared against its peers, the fleet of candidates in the distributed source control management (DSCM) space.
Re:Fossil: A decentralized version control, bug tracking, an... by feld on Monday October 10, 2016 @10:12AM (#12677174)
Re:Fossil: A decentralized version control, bug tracking, an... by plq on Sunday October 09, 2016 @06:05PM (#12673788)
IIRC people DID give fossil a chance but it turned out it could eat your data. So adoption stopped abruptly. Losing data is very difficult for someone who knows how to use git reflog.
Re:Fossil: A decentralized version control, bug tracking, an... by dalke on Sunday October 09, 2016 @06:49PM (#12674003)
I know about https://www.mail-archive.com/[email protected]... where a bug in Fossil in trying to figure out what check-in to update to, followed by a user attempt to recover, ended up deleting edited/uncommitted files. Details in http://www.mail-archive.com/[email protected]... .

Would that have been fixed via reflog?

What other failures have there been?

To note, many heard about Fossil because of Zed Shaw, who was bitten by the bug, and wrote about leaving Fossil because of the data loss. I wonder, therefore, if your recollection is echoes of that one report.

Fossil users pipe up in HN comments, like https://news.ycombinator.com/item?id=12665875 from a day ago, https://news.ycombinator.com/item?id=12655740 from 3 days ago, and https://news.ycombinator.com/item?id=12622773 from a week ago, so there are active users.

Re:Fossil: A decentralized version control, bug tracking, an... by wyoung2 on Monday October 10, 2016 @06:37PM (#12680311)
> bug in Fossil in trying to figure out what check-in to update to, followed by a user attempt to recover, ended up deleting edited/uncommitted files

Yes, uncommitted changes were lost, which is bad, but not at all what someone would think when you say "Fossil lost data."

Also, that particular problem was fixed more than five years ago.

> What other failures have there been?

I've been using Fossil for my main work repositories for over two years now, and have been monitoring the mailing list for about a year prior to that, and the only things even close to that that I can think of involve crazy user actions that confused Fossil into doing something odd, typically in the UI display only, which are now prevented at the code level.

Example: It is possible to fork the trunk by working offline — its autosync feature prevents it from happening when working online, connected to the repo you cloned from — but Fossil now demands that you heal the fork after turning autosync back on, so that you don't end up with multiple active "trunk" tips. After the trunk fork is healed, one branch becomes the "real" trunk, and the other looks like an unnamed branch that's now merged.

I'm not aware of any case of committed work being lost by Fossil. In every case where someone has managed to confuse Fossil, it's always been essentially a cosmetic issue, with all of the information necessary to get the repository back to a sane state available in the SQLite DB file.

I have personally never run into such a problem. The closest I've ever come to data loss with Fossil was purely due to ignorance.

(Briefly, Fossil UI was showing me one thing when I thought it was showing me something else, and since I didn't see what I expected to see, I thought it had lost data. This was purely a newbie misunderstanding.)

Compare git:

  https://xkcd.com/1597/
It's funny because it's truthy.
Re:Fossil: A decentralized version control, bug tracking, an... by dalke on Tuesday October 11, 2016 @08:43AM (#12683802)
I essentially agree, which is why I conjectured that plq was recalling incorrectly, based perhaps on second- or third-hand accounts of Shaw's problem.

My hope was that plq would clarify either with a pointer or something else more than "IIRC".

The only thing I disagree with your assessment is that "ignorance" and "newbie misunderstanding" can sometimes be due to bad design, which is a design bug vs. an implementation bug. In the Shaw case, there was a bug in the code which widened the gap between the user model and how the code actually worked, and that gap did cause data loss, just not in committed data.

Also not in a way that could be handled in git with reflog, as plq suggested.

This is a more expansive definition of "bug" than software developers, who are often more focused on the implementation than the user interaction model and as XKCD points out are very good at memorizing arcane commands, typically use.

Hipp wrote that he might have done the same thing as Shaw, which means that specific case wasn't "purely a newbie misunderstanding."

I think that was a humble and magnanimous statement which cut off some of the blame-the-user flamewar that can all too often happen in developer-driven project. As I recall, Shaw noticed this, and thanked Hipp for the way he responded. I've tried to bear it in mind since then.

Re:Fossil: A decentralized version control, bug tracking, an... by todd8 on Sunday October 09, 2016 @06:38PM (#12673961)
This page, http://www.fossil-scm.org/fossil-v-git/wiki?name=Fossil+vers..., on the fossil-dcm.org site makes the following claim [emphasis mine]:

> Fossil uses a transactional database for local storage, meaning that the repository is protected from corruption even if a crash or power failure occurs in the middle of a commit. Extensive self-checks protect the repository from corruption from bugs. No work has ever been lost due to a software bug in Fossil.

I've never heard that Fossil could eat your data. I don't use it now, but I've tried it for a few personal projects and liked it.

Re:Fossil: A decentralized version control, bug tracking, an... by 9mit3t2m9h9a on Monday October 10, 2016 @04:50AM (#12675898)
1. Losing uncommitted changes by making two mistakes in a row after non-intuitive behaviour by the VCS is not unheard of in Git.

2. Git is strictly worse than both Fossil and Monotone (two SQLite-based DVCSes I have used) w.r.t. losing _committed_ changes: it doesn't do any sync calls by default, and while their documentation confidently says that fsync is just a waste of time, POSIX guarantees are not enough for safety (ext3 guarantees are enough, btrfs are not — writes to two different files are not guaranteed to be ordered by default, and I have lost commits because of a power failure, and I haven't checked what guarantees ext4 provides there).

Re:Fossil: A decentralized version control, bug tracking, an... by alphapapa on Monday October 10, 2016 @02:06AM (#12675346)
https://www.mail-archive.com/[email protected]...

> To be clear: Fossil should not have malfunctioned. Yet even so, no work was lost as a result of the malfunction. The safety mechanisms built into Fossil did their job and uncommitted changes were preserved. The work was lost when Zed panicked and started entering a bunch of additional commands, in an attempt to recover, without stopping to think through what was happening. In fairness to Zed, I might well have done the same thing.

Re:Fossil: A decentralized version control, bug tracking, an... by minusf on Sunday October 09, 2016 @06:47PM (#12673999)
[citation needed] ?

no software is perfect, but fossil uses sqlite under the hood and is developed by the author of sqlite. a fairly strong data integrity guarantee in my book.

Re:Fossil: A decentralized version control, bug tracking, an... by nomadbyte on Monday October 10, 2016 @01:35AM (#12675257)
Indeed, a Fossil repo is actually a SQLite db, one you may as well open and tinker with (at your own risk :). By the same token, it's just as easy to back these repos up, as much as copying the db-file. Or automatically push to a remote. Cron job -- done!

Of course, mishaps happen, bugs too. Blaming SCM is easy, blaming no-backup habits, well, that's personal.

Fossil does get progressively more potent, I can attest to this on my user experience at least from v1.19 to v1.35. Many convenience features are added, yet core remains stable.

Re:Fossil: A decentralized version control, bug tracking, an... by yitchelle on Sunday October 09, 2016 @05:58PM (#12673745)
> with ungodly marketing

Was the the marketing of git basically due to the fact that Linus created it?

Re:Fossil: A decentralized version control, bug tracking, an... by adambrenecki on Sunday October 09, 2016 @07:10PM (#12674073)
I think it had more to do with GitHub than anything else. In GitHub's early days, they put a lot of effort into marketing Git (e.g. the now defunct "Git Is Better Than X" website), because they needed people to use it in order to use GitHub.
Re:Fossil: A decentralized version control, bug tracking, an... by antod on Monday October 10, 2016 @08:27PM (#12680995)
I reckon it was a combination of Github and Rails being early adopters at the peak growth of their hype cycle. In the early days of Github it seemed like most of the projects there were Ruby based (Rails users overflowing).
Re:Fossil: A decentralized version control, bug tracking, an... by JoshTriplett on Sunday October 09, 2016 @06:06PM (#12673796)
Developer word-of-mouth in general, combined with the massive network effects of a version control system. Once you use a VCS because software you work on uses it, if you want to start your own project, you tend to use what you know.
Re:Fossil: A decentralized version control, bug tracking, an... by wangchow on Sunday October 09, 2016 @06:25PM (#12673902)
Git was designed for the Linux kernel source which everyone using android or another Linux distro is interested in. That helps a lot because if it can handle that project surely it can handle any other codebase.
Re:Fossil: A decentralized version control, bug tracking, an... by solipsism on Sunday October 09, 2016 @06:57PM (#12674033)
Not any other codebase. Codebases with huge and often-changing binaries (e.g. images or 3d models), for example, were troublesome for git, at least historically. The Linux kernel isn't big in all ways.