It's good to see FogCreek being practical and adding in Git support, based on how strong they were pushing for Mercurial before (Joel even had an online training[0]) I wouldn't have guessed they would ever switch to Git, but as Joel said "Religious war: averted." I wish more software would mitigate these debates with solutions like this, but its often not that easy.
This seems like a cool solution, I don't know if any of the other big providers are doing synchronized repos, do other similar solutions exist?
Devil's advocating, but I worry about solutions like this. Abstractions leak, and if abstractions like this get traction they splinter tools' abilities to do useful things. I imagine there are corner cases where git/hg dissonance is high and wonder if this leads to a situation where we all have to care about whether a backend is capable of 'full git' or 'hg-compatible git'.
There are places where this is valuable enough to be worthwhile (say.. ANSI SQL and related high-level-language database agnostic libraries). I'm not convinced source control is one of those places.
For fogcreek, they bet the farm on hg and are presumably seeing an opportunity cost to that decision that this mitigates. This makes loads of sense for them. I'm not convinced it's all that awesome for the rest of us, or for either the hg or git user bases as a whole.
Bitbucket, the Mercurial hosting service, now also offers Git. Xen, the first major project to use Mercurial, just switched to Git last month. Microsoft has added Git to Visual Studio and Team Foundation Server.
Whatever Joel's personal source-control preferences were, he has to sell into a world where there are more Git users than Mercurial users.
It's unfortunate, as I preferred Mercurial, but then, Git also comes with some advantages to mitigate the disadvantages. They really were closely-matched. Which is why it was a religious war -- it boiled down to preferences.
> Plastic SCM [...] developed an importer that supports the fast-import
> format introduced by Git and widely used to migrate from other systems
Most source control systems assume a one-time import because they are so awesome there's no doubt you'll want to keep your code there forever, but the trend is to support at least Git semi-synchronously.
Kiln Harmony is a little bit different than that. We are aiming that you can push a Git repo to Kiln, clone out an Hg repo, push that back to Kiln in an empty repo, and get back exactly the same Git repo you started with. This means that both format types are completely equal--and, more importantly, they're both canonical.
Plastic and Perforce are solving a very important, but fundamentally different, problem: how can I use Git to interface with my proprietary SCM? These problems tend to evolve solutions like git-svn or hgsubversion, where either you're keeping the initial repository around as a base (I believe Plastic does this), or you simply don't even care about it at all (e.g., in Perforce, its repos are assembled from arbitrary slices of the main source tree, so the same commit may have different files entirely from the one your neighbor is using, even though both repos include the same chunks of history).
Those are also valuable tools, and we did consider making what would amount to a Git front-end for Mercurial. But we really wanted both systems to be peers, both canonical, and that mandated a totally different set of design decisions and restrictions.
It's not that what Plastic and Perforce have aren't cool. They're just fundamentally different.
He says Kiln has some advantages over github in the corporate space, while github has features for socialized open source coding:
So, specifically, Kiln gives you corporate things like:
* code reviews
* access control and permissions
* fast code search
* a news feed to follow code you care about
GitHub gives you things that match the sociology of open source projects:
* public home pages
* a social network, with profiles
* fork and pull workflow
But doesn't github actually provide at least two of the four points he mentions for Kiln?
As somebody who uses hosted kiln, finding and reading code on github is so much faster it's not even funny. Every time I go to kiln to look at the blame for a page, I despise it.
The code review tool on kiln is also sub-par compared to the pull-request review tool in github (and boy is it ugly).
It has to somewhat hurt that Microsoft just released and is rapidly improving some quite decent Git support in Visual Studio (and on the server side, Team Foundation Server).
Indeed, right now Team Foundation Service (the hosted version) has Git support, however they have promised upcoming support for Team Foundation Server the self-hosted install.
Also, calling Github a "VW Microbus" and implying they're hippie kumbaya love-ins instead of a huge, well-supported tool with the features he implies they lack… well. It stretches credibility.
Wow, what a terrible comment. I'm surprised to have heard it from you. Witch hunts against companies that use language development as a tool; what a weird thing to see voted to the top of an HN thread.
Saying "I wouldn't trust my xyz to a person who does abc" is not a witchhunt, it's a statement of opinion based on another person's very public and controversial choices.
Am I not allowed to find cross-compiling to PHP, ASP and vbscript technically questionable?
Or be wary that their founder claims that one of their apps has "literally millions" of calculations on a single page?
That just seems like exercising discretion. Just like everyone does when some free service turns draconian and some HNers complain and other HNers say "Well look what they did to their last startup / look what these other free services always end up as, you should have seen the pattern matching on the wall." I believe you've left a few comments to that effect, yourself. Where do you see a difference?
Note that I didn't call their app some kind of ridiculous and insulting car metaphor or deliberately leave off features in order to smear them… if we're going to talk about witchhunts.
You're allowed to call a cross-compiling language questionable, and I'm allowed to call you out for suggesting that the application of basic computer science is a sign of incompetence.
But you can't deny Spolsky's spin can you? That GitHub isn't quite corporate-oriented because "contributions can come from volunteers all over the Internet, many of whom are happy to fork the code for their own needs."
This seems like a cool solution, I don't know if any of the other big providers are doing synchronized repos, do other similar solutions exist?
[0]http://hginit.com/