Git is an excellent version control system. If we exclude the fact that, it doesn't have an excellent GUI support, it's really good and fast. But the source controls like Clearcase has large support for enterprise customers. Companies are investing huge amount for source control servers and licesense.

Of late most of the large companies like Google are adopting Git over other version control system. But this company has a strong open source group which consistently provide development and support for the tool (They might even have a custom version of Git of their own). At the same time, large companies are not really bothering about adopting open source projects and making them relevant to them.

Is Git really a reliable tool for enterprise environment, especially
on Windows Platform?

The support is in question for Git as it's an
open source product.

Are there any company that provides
solutions and support? How are the server costs compared to other
version controls like Clear-case?

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs.
If this question can be reworded to fit the rules in the help center, please edit the question.

2

I'm not aware that Google have adopted git, my understanding is that they opted for Mercurial. And you'll have to convince me about other large companies too - have you got any examples?
–
BenjolJul 29 '11 at 7:10

3

Has great GUI support. Just choose a good operating system.
–
user1249Jul 29 '11 at 8:04

2

@Benjol - This thread could give you some insights. quora.com/…
–
saratAug 1 '11 at 11:34

1

@sarat, I know Twitter is worth a lot of money, but I wouldn't class it as large or enterprise. //I wasn't aware that code.google.com supported git, it is very new news, and I'm not sure that you could call that adopting git over other version controls. [Originally](code.google.com/p/support/wiki/DVCSAnalysis);, they clearly decided for Mercurial over git
–
BenjolAug 2 '11 at 7:12

9 Answers
9

GitHub is NOT a version control -- it "hosts" the version control system called "Git". Aside from the pun, this is a very important difference -- know it well.

Regarding enterprise use, I can tell you that git is as smart (and convenient, and better) as something like SVN. And, you can choose a suitable version control strategy (workflow) based on the size and scope of the project (and your team). Non-distributed systems can't afford you this flexibility.

Msysgit is not a true Windows citizen. It works great, but is hardly 100% native.
–
Yann RaminJul 29 '11 at 6:38

+1 for point some important aspects about Git. Although @greengit pointed out possible options for using Git under Windows, it is far from being as integrated as, say, SVN.
–
tehnyitJul 29 '11 at 7:38

We use Eclipse which has gotten good git support.
–
user1249Jul 29 '11 at 8:06

I think gitolite (or similar) deserves a mention here. A lot of security people like the local, closed off, and in control option of hosting the repo locally.
–
NicJul 29 '11 at 14:40

2

@YannRamin: Msysgit is definitely a true Windows citizen and is 100% native. It comes with a unix shell that uses slightly different conventions, but that's the shell, not git. You can use Msysgit from cmd.exe or any other windows process just as any other native application. (Cygwin is different, but Msys isn't cygwin)
–
Jan HudecOct 23 '12 at 6:38

Mercurial is cool, is easy, has many user friendly GUIs, and feels more professional. I never understood why Git had such a hype, while other great ones are in the shadow. Mercurial is also supported by google code, bitbucket.org (the equivalent of github), eclipse... I use it since two years and was always happy with it.

Edit February 2014:

In the meantime, Git has taken such a lead that I would advise it over mercurial. Three years ago, Mercurial was IMHO more polished, cleaner, better. However, the hype was on Git's side and the momentum it gained since then makes it the clear winner. It is now the de-facto standard because of its huge community.

Git is a lot more powerful in terms of how you can manipulate the history. A lot of people will opt to merge branches locally then rebase them into a single mainline branch before pushing to the main/public repo; that way the long-term history remains very clean. As far as I could tell last time I used HG, Mercurial doesn't support those types of history edits. In general, git in Windows sucks; the best gui tools (git-cola, gitk) to use it can only be found on Linux.
–
Evan PlaiceOct 23 '12 at 8:31

I'd hardly say Git succeeded due to hype: last time I checked, Mercurial's backend format was delta-based and as prone to corruptionas SVN or CVS. Git's fundamental model, meanwhile, is mostly write-only with atomic changes. It's just a much more technically-sound solution.
–
Stuart P. BentleyFeb 25 '14 at 9:07

@StuartP.Bentley: what do you mean by corruptions?
–
arnaudFeb 28 '14 at 4:48

Suddenly stopping a process in the middle of copying, moving, writing, either on disk or network: in Git, this will only ever create objects that are immediately recognizable as garbage (since the content does not match the hash), and even if you lose something halfway in the middle, you can check what you did get and put things back together from there.
–
Stuart P. BentleyFeb 28 '14 at 8:55

Meanwhile, delta-based formats that keep all their information on changes in a single file, like Mercurial, can have minor accidents (dropping a line that describes a change, for example) that break the file in such a way that, like Humpty Dumpty, it is impossible to put back together again.
–
Stuart P. BentleyFeb 28 '14 at 8:57

I use both Git and Mercurial on Windows, and both are more than usable. I think the GUI tools for Mercurial are better, so if your team is used to visual tools it may be a better fit. I tend to use the commandline though - to me it just makes more sense.

Both, in my experience are bulletproof. You don't need 'support' as such, although I know a lot of enterprises like to have it.

I'm sure there are others, but it's worth having a look at Kiln, which is a hosted mercurial solution.

Please note- regardless of which way you go, DVCS are quite different to traditional VCSs. IMHO, they're superior in almost every way, but it can take some time to get used to.

He asked for companies which provide solutions and support. Github has a specific enterprise git hosting solution for companies. It doesn't answer the first question. It sort of answers the second question. It does answer the third question.
–
c00wJul 29 '11 at 6:11

Wow, when did the price of FI change ? Last I checked, it was something like 200-250$/mo and now it's the double o.O
–
wildpeaksJul 30 '11 at 1:46

git is foreign for Windows developers. It's not a real first class citizen. It does work well, but it's a Linux tool first and foremost. For instance, git's server model pretty much requires SSH logins for security.

Support is a question, and there are companies which can provide, usually accompanied with a hosted solution.

Git is known to not require huge servers - as repositories scale more io capacity and speed is always important, but as most operations happen only on your computer, server requirements are an order of magnitude less than something like Clearcase.

For what its worth, our not quite enterprise company of less than 100 is a huge user of git, on Windows, with Java and C projects.

Git is very different from Clearcase, so the the challenge for you is probably going to be how to smoothly migrate your developers (and other users) to a different way of working with source code and files. Depending on how experienced your users are and how deeply integrated Clearcase is in your enterprise, it may require lots of training and unlearning.

My suggestion initially is that you try out git in a pilot project and see how it works out for your team. Get a secure repository on github and you're all set for the pilot.

Is Git really a reliable tool for enterprise environment, especially for Windows Platform?

We will soon be at a strong yes with this one. Atlassian recently made big steps towards achieving this with the release of Stash 1.3.

The support is a question for Git as it's an open source version control.

There is a strong support network of knowledgeable Git users offering advice for free and various LinkedIn groups (Git Version Control System). A quick Google search can usually help with most requirements. For bigger enterprise companies there are also commercial git support options now available on the market today.

Any companies are there to provide solutions and support? How the server costs comparing to other version controls like Clear-case?

There are a number of companies now offering reliable and dedicated support for Git. Clearvision and #goGit to name one of them.

At my enterprise workplace, I've been working on supporting bringing a team into Mercurial (a similar tool to git) across from ClearCase.

We chose hg in party because its designed around immutability, which is important to our business goals. Also, since it is written in Python, it works very well in Windows. Git has had a reputation for being weaksauce on Windows, and my experience has reflected that. (I gather that tools are better now, I don't use Windows enough anymore to check. :-) ).

The experience has been generally positive, with most of our downsides related to subrepositories and the weird indirections related to them. Another thing is that metadata storage is non-existent in hg; other solutions have to be developed to manage that.

If I was to recommend an enterprise solution for "out of the box" work for Windows developers, I would recommend investigating Kiln and GitHub Firewall.

I know that doesn't directly answer your question. But let me put it this way, if you are used to ClearCase, I expect git to be an order of magnitude easier to train, implement, and administrate.

Git and Mercurial can be used in enterprise environments. To some degree. Some organizations have extra requirements currently not fulfilled by git, things like stricter access control so that i.e. only specific users have (read) access to specific files in the repository or like auditing interfaces that access can be tracked. Some commercial enterprise systems also have deeper integration with IT systems management, like corporate backup solutions.

Git also is not good for ensuring the history is kept - by default it allows forced pushes overwriting the fully history of the project.

... and then there is this responsibility thing. Larger organizations might prefer calling an external vendor when there are issues instead of using their time to debug the issues and rely on community support. Especially if corrupted repositories with confidential information are involved.

These by no means are issues making it unusable in "enterprise environments", but like always different software has different pros and cons which has to be evaluated case by case.