Live data from Hacker News

Show HN: BitKeeper – Enterprise-ready version control, now open-source

bitkeeper.org

161–170 of 309 posts

Re: Show HN: BitKeeper – Enterprise-ready version control, now open-source

#161
post #72

Earlier quoted context omitted.

It's astonishing to me that Git has won out given how much easier it's been for me to explain Hg to other people than to explain Git. To this day, in our SVN workflow at my company, nontechnical people who have merely seen a Hg diagram on a whiteboard by my desk immediately grasped the idea and the lingo, and ask me questions like "hey, can you branch the code to commit those changes and push them to the testing serv…

Maybe I'm a too long time user of git, but I really fail to see why git as of the last 5 years is any harder to explain than hg. Personally I think the branching in hg is pretty much broken; alone the fact that it's pretty much impossible to get rid of branches is horrible.

I think that the hate that gets lumped on mercurial's branches, though understandable, is a bit unfair

Disclaimer, it's been years since I used hg as my primary DVCS. So some of my thoughts here might be out of date, or have a misrecollection.

> branching in hg is pretty much broken*

It really isn't. It's absolutely not suited for the task that many people want to use it for, but it's totally fitting with the intended use case and the "history is immutable" philosophy of mercurial.

Using mercurial branches for anything resembling feature branching is a bad idea. But mercurial branches are perfect for things like ongoing lines of development. So, for a project like PostgreSQL, you'd have a "master" (default) branch for the head of development and then once a release goes into maintenance mode you create a new branch for "postgres-9.4" and any fixes that need to be applied to that release will be made to the maintenance branch.

Following hg's "immutable history" policy the fact that the commit was performed on a maintenance branch is tracked forever. And it should be because the purpose of your source control is to track those kinds of things: "This is the branch we used for maintenance releases of version X.Y.Z, it is now closed since we no longer support that version"

The issues with mercurial's branches are:

- For a long time they were the only concept in hg that had a simple name and looked like "multiple lines of development". Even though hg supported multiple heads and multiple lightweight clones, neither of those had commands or features with a clear and simple name, so they people turned to "branches" expecting them to do what they wanted even when they were a bad fit.

- "branch" is very general name that is often used (quite rightly) to refer to a bunch of slightly different ways of working with multiple concurrent versions. In general use it might refer simply having 2 developers who both produce independent changes from the same parent. Or to intentionally having multiple short lived lines of development based around feature. Or splitting of development right before a release so that the "release branch" is stable. Etc. Yet the feature in hg that is called "branch" is useful for only some of those things. It would have been better to call it a "development line" or something like that.

- It took far too long for hg to get a builtin way to refer to named heads (bookmarks). The model assumed that each repository (clone) would only ever want to have 1 head on each branch (development line) and that producing multiple heads was a problem that ought to be resolved as soon as possible. There's a lot of history behind that approach (almost every CVS and SVN team I ever worked with did that), but DVCS tools made it easier to move away from that, yet official hg support lagged.

So even today, the "branch" concept in hg is only useful for a small number of cases, and the "bookmarks" concept is what most people want, but they're separate things with names that don't align with expectations.

Re: Show HN: BitKeeper – Enterprise-ready version control, now open-source

#162
post #24

Earlier quoted context omitted.

I don't think it's fair to call people douches because they are committed to their moral principals. Especially so here, where the benefit to humanity over the alternative is so clearly obvious.

It is when they attempt to force their moral code on others. Is the benefit clearly obvious? If you actually adhere 100% to Stallman's code I'm not so sure.

Tridge made no attempt to force his code on others.

In fact, it was the reverse - he felt like he was being locked out of kernel development because he didn't want to align his moral code with those who used BK.

So, he tried to find a way to hold true to his code without forcing the rest of the kernel team to give up BK.

Re: Show HN: BitKeeper – Enterprise-ready version control, now open-source

#163

Earlier quoted context omitted.

In short, RCS maintains a clean copy of the head revision, and a set of reverse patches to be applied to recreate older revisions. SCCS maintains a sequence of blocks of lines that were added or deleted at the same time, and any revision can be extracted in the same amount of time by scanning the blocks and retaining those that are pertinent. Really old school revision control systems, like CDC's MODIFY and Cray's cl…

| CDC's MODIFY and Cray's clone UPDATE, were kind of like SCCS Do you have references? I've heard of these but haven't come across details after much creative searching since they are common words.

See http://www.bitsavers.org/pdf/cdc/cyber/software/ .

Re: Show HN: BitKeeper – Enterprise-ready version control, now open-source

#164
This predates git, in fact if it was open sourced from the start git may never have existed, sigh, how ironic.

If bitkeeper was open sourced it could be a powerhouse nowadays, open source and commercially. Now it is too late and honestly irrelevant.

Re: Show HN: BitKeeper – Enterprise-ready version control, now open-source

#165

Earlier quoted context omitted.

| CDC's MODIFY and Cray's clone UPDATE, were kind of like SCCS Do you have references? I've heard of these but haven't come across details after much creative searching since they are common words.

See http://www.bitsavers.org/pdf/cdc/cyber/software/ .

Thank you! A peek into the (as far as I know) into root node of source control history.

Re: Show HN: BitKeeper – Enterprise-ready version control, now open-source

#166
I think the same points made in Larry's 1993 paper could be made about various Linux distributions:

  Why a gazillion package managers?
  Why not a common filesystem layout?
  Why not a standard desktop?
IMO, Linus should enforce his Linux trademark by forcing every distribution to follow a set of standards. If they don't, they can't call it "Linux". If he got them in a room and said "This is the way it's going to be, or else", they'd do it.

Re: Show HN: BitKeeper – Enterprise-ready version control, now open-source

#167
post #100

Earlier quoted context omitted.

You probably should publish the git importer -- it makes it really hard to try bitkeeper if you have to play with a pretend tree.

Yeah, we're trying to figure out how to do that.

+1 would definitely give it a try with this feature

Re: Show HN: BitKeeper – Enterprise-ready version control, now open-source

#168

Earlier quoted context omitted.

We did a clean room reimplementation of SCCS and added a pile of extensions.

So basically when Tridge "reverse engineered" BK, he basically reimplemented SCCS? https://lwn.net/Articles/132938/

nope, he did a clone and pull. He did rsync or tar but had no awareness of the file format.

Re: Show HN: BitKeeper – Enterprise-ready version control, now open-source

#169

Earlier quoted context omitted.

That is my understanding, yes -- but the NSE and (McVoy-authored) NSElite chapters of the saga pre-date me at Sun. Before my "Fork Yeah!" talk[1][2], from which this is drawn, I confirmed this the best I could, but it was all based only on recollections of the engineers who were there (including Larry). I haven't found anything written down about (for example) NSElite, though I would love to get Larry on the record t…

The NSE was Suns attempt at a grand SCM system and it was miserably slow (single threaded fuse like COW file system implemented in user space). I did performance work back then, sort of a jack of all trades (filesystem, vm system, networking, you name it) so Sun asked me to look at it. I did and recoiled in horror, it wasn't well thought out for performance. My buddies in the kernel group were actually starting to qu…

And progress is held back again due to some empty suits having no idea what they have on their hands -- just protecting turf. Reminds me of how Javascript began.

Re: Show HN: BitKeeper – Enterprise-ready version control, now open-source

#170
post #145

Earlier quoted context omitted.

Bit keeper is a great example of what happens when you do not open source your code. I have cited it that way many times.

Except that we've been around for 18 years and made payroll without fail that entire time. Supported a team of 10-15 people every year. That's something, many many companies in the valley, including many that open sourced everything, have not done as well. You may have done more by open sourcing whatever it is that you have done; if so congrats.

My remark was intended to cite how much farther bit keeper could have gone had it been open source from the start rather than belittle what bit keeper accomplished.

At work, many of my newer colleagues have backgrounds in closed source software development. We are developing software that has no exact analog to existing software, and we hope that it will have a big impact. If it becomes as important as we think it could be, then bit keeper vs git is a fantastic example of why our work should be open source from the start.

Post reply on HN