Microsoft Embraces Git For Development Tools
alphadogg writes "Once vehemently opposed to open-source software, Microsoft has warmed to the development model over the years and will now take the unusual step of incorporating an open-source program developed by Linus Torvalds into its own development tools. Microsoft is integrating the widely used Git, a distributed revision control and source code management system, into its Visual Studio IDE and Team Foundation Server, two of the company's main tools for enterprise developers."
Step 1: Embrace. Step 2: Extend. Step 3: Replace. Step 4: Discontinue.
"Have you ever thought about just turning off the TV, sitting down with your kids, and hitting them?"
can't beat 'em, join 'em
said the same thing aboue apple with OS X
except MS's terms are ironicly far more reasonable
But what really happened?
I bet Visual Source Safe ate the *real* Windows 8 and what was released was hastily put together over an ubercrunch weekend.
Mod me down, my New Earth Global Warmingist friends!
"Do more Microsoft GIT+" tomorrow.
Microsoft INVENTS Git For Development Tools. Community rejoices!
It's a pity there's no Open Source version of Perforce (yes, yes not everyone needs DVCS). They really panicked with the 2012 version though. I believe Google also use Perforce.
This. It's a sad day where if I were forced to give up my Linux's and BSD's I'd feel more comfortable moving to Windows opposed to OSX.
:)
Ironically I am posting this from an Macbook Pro running Debian
I don't think that is why Apple based OSX on various open BSDs. Apple is and always has been a hardware company. They don't make money on software by itself like Microsoft does. They sell laptops that would sell for $800 with Windows on them for $2000 because they are the only laptops that run OSX without all sorts of hacking. (Yes, there are other reasons, but 95% or more of the reason they keep selling those laptops for that price is due to OSX.) When Apple embarked on OSX, they were circling the drain. They knew they needed a complete OS rewrite; they needed an OS that did preemptive multitasking. (Even Windows did preemptive multitasking then.) Apple was never in competition with software companies.
They did the smartest thing they could have done, which was to put an Apple-style interface on a free, high quality implementation of an operating system that was more than powerful enough to hang with the industry leaders, well understood by geeks, and which contained, essentially, the reference implementation of the protocols that the internet runs on.
At that point, lots of people, especially geeks, (geeks had recently become cool,) wanted to buy a laptop that ran "UNIX" and that had fully supported hardware that "just worked".
My boss is going to turn purple. He hates git & anything devised by Torvalds.
Any derived work of something, like git, which is GPLed, must be GPLed. That means that if you fork, the main branch, the main branch is free to use your extensions. This makes it difficult for replacement to work.
Furthermore, if you try discontinue step, others are free to fork and continue. So discontinue does not work.
The GPL completely breaks the "Embrace. Step 2: Extend. Step 3: Replace. Step 4: Discontinue." process. Which is why it is hated.
Is a younger generation of developers influencing Microsoft? The last few rounds of college grads on the management fast track at MS have had time to play with git in high school, college, and even perhaps as a personal tool at work. Maybe their personal preferences are affecting the Microsoft feature set.
TortoiseGit has existed for years...
Microsoft _bought_ One Tree Software in 1994 who originally created SourceSafe.
http://en.wikipedia.org/wiki/Microsoft_Visual_SourceSafe
Zombies were cool. Then they got so overexposed that Homeland Security started making videos about the zombie apocalypse. Zombies are now as uncool as Von Dutch.
If MS is using git, it's obviously time to switch to something that is way newer, way cooler, and doesn't actually work.
Find free books.
I'm still waiting for my formal apology from them. Such a turd they unleashed on the world - they quit using it internally on any sort of scale because it sucked, but continued selling it and a few places are still infested with it. Including legacy code at my shop.
Funny you're uncomfortable moving to OSX, since it is (essentially) a BSD. Though I suppose that means if you were forced to give up BSDs, you'd therefore be forced to give up OSX...
I have developed a truly marvelous proof of this comment, which this signature is too narrow to contain.
They did the smartest thing they could have done, which was to put an Apple-style interface on a free, high quality implementation of an operating system that was more than powerful enough to hang with the industry leaders, well understood by geeks, and which contained, essentially, the reference implementation of the protocols that the internet runs on.
Were you around in 2001? I don't think "high quality" is a term anyone would use to describe those first versions of OS X. It was slow, user interface sluggish, riddled with kernel panics. Apple actually had to offer a free upgrade to 10.1 - which was still slow and sluggish but somewhat more stable. OS X eventually grew into a high quality OS, but those first versions were certainly not. Until Tiger it was kind of a joke, really.
Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
Sounds like they are going to use it internally. That still doesn't mean that you will be able to report bugs to MS developers.
Not likely. They already have TFS (or rather TFVS) which is pretty powerful. TFS is centralized and not based on a distributed model like Git. But each model has core advantages over the other.
Being centralized it is easier to create overview and centralize building, integrate with project management, testing, bug reporting etc. with TFS. But TFS is also focused on creating a single product and doesn't lend itself as easily to forking projects like Git does. TFS does branching and merging very, very well, but the central repository has to know about the branches, i.e. it is not so easy to create local ad-hoc branches.
Git is based on a decentralized model which is very, very good when you have a fluent number of products branching off from a repository. Git doesn't automatically expect a branch to be merged at some point, indeed the repository does not *know* about branches, it only knows about change/patch sets. However, the distributed model also means that there is no one central repository and you cannot use the repository to track *ongoing* work (who's working on what).
In some cases Git is better. In other cases the TFS model is better. If you have a distributed development model go with Git. If you have a very centralized development model go with TFVS.
Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
TortoiseGit has to be the most painful experience I've had for simple workflows... google and the command line were easier.
As to the why... Github is the new hotness for FLOSS projects. 'nough said... Though about half my dev time is now using NodeJS in Webstorm...
Michael J. Ryan - tracker1.info
MS is now feeling threatened by the way other large companies (eg Apple, Google etc) are now 'cooler' and can now influence the software development ecosystem via their mobile platforms.
Open Source no longer really seems as much of a threat to them, and there's no point fighting it any more. And with Apple and Google increasingly becoming less open and losing some respect with the open source community, MS probably feels that they need all the help they can get to help keep them relevant or influential outside enterprise IT.
You should take a look at SmartGit and TortoiseGit.
Hivemind harvest in progress..
There's also EGit for Eclipse. I use it and generally it works really well. It's a pure Java implementation (it uses JGit which also powers other tools) but its only a subset of Git which sometimes leads to trouble if you try and be too fancy with it.
Source Safe was easily one of the most evil source control systems I ever had the misfortune of using. Having to walk around to someone's desk to ask if they're done with a file is not my idea of a good system. Even worse when the file is locked and the person is on holiday.
I think the best thing about a decentralized model is the guys who run release engineering can run their own clone and pull when it suits them. And developers can work on branches, merge locally and test everything correctly to their own satisfaction before pushing. When everything is centralized it is not uncommon to see some email telling people a particular branch is locked for a merge, or for a build and it can go on for hours or days.
GIT is the best SCM software I've personally used.
Have you used other DVCS? I've use Darcs (wonderful but a little flaky) and Mercurial and touched on Bzr. I've used git far more now since so many other things use it, but I don't see all that much difference between Hg and Git. Do you have an opinion on such matters?
SJW n. One who posts facts.
Some Slashdot readers are like a certain type of abused spouse who keeps finding someone to abuse them, and actually believing that he won't do it again. Fool me once - shame on you, fool me twice - shame on me, get fooled for 30 years running - you're deliberately choosing to be an idiot.
they already had Git support.. so what's new?
git init How hard is that?
Sometimes pretty difficult. My fiance told me there was no way I was going to git init.
Basically they've rolled out Git support for the latest TFS Service release that means a full patch for TFS2012 & VS2012 should be out in 4 - 6 weeks.
Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.
Yes, but this also means using Eclipse which also means crying yourself to sleep each night.
You mean, you wait to cry until after it has finished starting up in the morning and applying its updates?
"Little does he know, but there is no 'I' in 'Idiot'!"
You're kind of ignoring the elephant in the room, which is that Apple didn't write MacOS X from the ground up. Most of it is NeXT with a different GUI, and which in the beginning had an integrated old-school Mac API grafted on ("Carbon", which has mostly been deprecated in favor of the NeXT's traditional API). NeXT chose BSD because it was done by Avie Tenavian, whose CMU work on the Mach kernel (which used BSD) became the core of NeXT's OS. They chose BSD because Linux didn't exist yet and everything else was locked down pretty tightly. So you're talking about an OS with roots in the mid to late 80's and decisions inherited from that time. It's probably on a short list for being among the longest-surviving continuously maintained OS in common usage today, predating NT, Linux, Solaris, and many others.
E pluribus unum
Within certain contexts, they really do. Most of the frameworks in the .NET stack are open source now, they run codeplex which is a relatively thriving open source community, the licensing for the Windows store is actually really OSS friendly, mono is at least nominally sanctioned. They're not likely to Linux or LibreOffice any time soon, but in recent years if it's in their best interest or at the very least doesn't harm their bottom line, they're relatively pro open source. The days of "Free Software is Communism and must be destroyed" are long over at Microsoft, at least publicly(I don't work for them, so I have no idea how they behave behind closed doors).
Realistically they're substantially more open source friendly than Apple(apple utilize open source software and release exactly what they have to legally and not a drop more as far as I can tell). The core of their attitude is probably on par with Google(they'll open source pretty much anything they don't make money off of, but nothing that they do). Obviously Google's contributions to OSS are far greater, but the nature of the attitude is about the same.
For all that folks criticize current management and for all that it has a major problem with releasing unfinished ideas, the Microsoft of the 90's is, at least from all outward appearances, long gone.
Note that's not to say they aren't greedy, or that they like competition any more than they ever did, but it's not like it was.
Git has to be, hands down, the buggiest nightmare I've ever dealt with.
Care to elaborate?
Counter intuitive? Yes, it most definitely is at times. Buggy? Not in my experience, it actually works quite reliably.
Maybe you just don't understand git. Or you're a troll.
Dangerous, sexy, turing complete: Femme Bots
I've used Perforce which is by far the biggest pile of all. SVN was okay but has some strange issues that are just bone headed. CVS wasn't bad but again has it's own little issues. GIT just seems to work and work like I want it to, with no extra's that don't add to the software. GIT is exactly what it is says it is, it's a SCM that works. So far out of the ones I've used it's the only to really stick to that.
I have taken a cursory look at Git but never really developed with it. I understand most of its fundamental characteristics however.
Personally (and professionally), I chose fossil for my development needs. It's small, fast, correct (so far Git is the same), easy, and integrated with a bug tracker and a wiki (all which cannot be said of Git). The author is no lame duck either, he's the guy who created SQLite.
If you're about to start doing decentralized development, check it out. It's worth your time.
JigJag
"The hallmark of humanity is the ability to move beyond sensory inputs" - Mary Helen Immordino-Yang
How is it painful. You right click and choose from the context menu. It's extremely easy to do almost anything the CLI does.
Cold and snowy, with occasional flurries of flying pigs.
I think the best thing about a decentralized model is the guys who run release engineering can run their own clone and pull when it suits them. And developers can work on branches, merge locally and test everything correctly to their own satisfaction before pushing. When everything is centralized it is not uncommon to see some email telling people a particular branch is locked for a merge, or for a build and it can go on for hours or days.
But in TFS you can automate all that. TFS can build by label, by changeset or simply by point-in-time. Developers can pull specific versions out locally, also without branching. Only incompetent build engineers would ask developers to refrain from checking in. Really. Even as a developer I can request such a build.
Reading slashdot one-liner: (irm http://rss.slashdot.org/Slashdot/slashdot).rdf.item | fl title,desc*
Good point. I almost forgot about Next. Even if Apple made that decision because it was the path of least resistance, I can still say that I think it was probably the best decision they could have made. The fact that the BSDs are the oldest OSs in common usage today isn't a coincidence.
You're kind of ignoring the elephant in the room, which is that Apple didn't write MacOS X from the ground up.
An equally important elephant in the room is that Apple had been trying to write its own modern OS, with features like preemptive multitasking and memory protection, from the ground up, and it failed. Once Copland crashed and burned, Apple had wasted so much time that it had no choice but to acquire an OS -- or at least the foundations of an OS -- from some other source. NeXT ended up being it.
Breakfast served all day!
So I work at a Fairly Large Company (TM) and we recently downgraded from SVN to TFS. For years, I used the Git-SVN bridge which worked quite well.
The TFS/Git project, I'm sorry to say, so far DOA for an enterprise user like me. Git-SVN would take a many hours to migrate a large repository...but it worked. MS's Git integration has fallen far short. While checking out shallow copies works, deep copies crash on checkout (it runs out of memory, which really shouldn't happen). Even trying to get the latest version (i.e. git rebase in TFS parlance), it manages to flood my 16 GB system and die down in authentication. ...but I really think this is a good direction. I hat^H^H^H love TFS but being able to use Git is really useful. The lack of locks on all the files are particularly useful when doing large-scale edits with scripts/a good IDE and local branching is killer so I'd really like Git to succeed here.
I'd be curious as to what experience others have had with it in The Real World, rather than the chair-throwing annuls of MS HQ.
-- Political fascism requires a Fuhrer.
I've had trouble with pushes containing multiple commits that include changes to the same binary file, but I'm running an unofficial port of Git that is probably a bit out of date even if there isn't an actual issue in the port itself.
There's no place I could be, since I've found Serenity...
The main reason developers wanted TFS where I worked were 2:
* locking files, the most dumb (VSS) way, so other developers wouldn't change files someone else was already changing...
* the "shelf", i.e. to be able to backup current code to the server without it going into the main development branch...
In other words, they wanted TFS because of its support for lame developers, not because of the cool features...
"Video bona proboque; deteriora sequor." -- Ovid
Were you around in 2001? I don't think "high quality" is a term anyone would use to describe those first versions of OS X. It was slow, user interface sluggish, riddled with kernel panics.
I remember all operating systems to behave this way in 2001. Linux and Windows were pretty much the same experience for me.
These days I think all three of them are quick and stable.
I went to eat some animal crackers and the box said, "Do not eat if seal is broken." I opened the box and sure enough..
Now if only they abandoned all other crappy software they are using as a part of development process. And by that I mean, the content of their sources.
Contrary to the popular belief, there indeed is no God.
there are more GNU and GNU related projects in OS X than neXt remnants.
remember that every time you connect with networkmanager, type something in on bash on the command line, etc...
eye.
linux was not suitable for desktop use until kernel 2.6 era, when all the baked in drivers started appearing, and we started seeing open source factory support for things like wifi, and even then it wasn't until around ~2.6.30 that things started getting good enough to work universally on most computers around the board.
the nvidia 310.xx and later drivers are fast, stable, and solid. they used to not be, and nouveau is now feature complete for rendering. it used to not be.
Windows 95, 98, and ME where all inherently unstable, windows NT builds like 2000 where rock solid, and many people used them instead of the consumer focused products for this reason. unfortunately, 2000 still had a Hardware Accssability List, that prevented many third party drivers, and wasn't constructed for graphics intensive consumer desktop usage.
XP was the first Windows OS, that by design, didn't suck misrably, and it wasn't until service pack 2, in 2004, that it wasn't slow, buggy, or an otherwise total pile of garbage. Ironicly, this is around the same time that linux gets usable as a mainstream desktop OS.
Windows has its glitches and so does linux, but it seems with windows, they are all total OS problems, and with linux its generally high level interface problems. Vista crashed and burned, but 7 seems to be as rock solid as XP SP2, with modernizations, and newer hardware support.
Windows 8 on the other hand seems to be a trainwreck, with a crappy UI that no one likes, but we seem to have the same problem in the linux/FOSS world with GNOME. fortunately, there are other UIs than GNOME.
I guess you could run KDE on windows 8, and save yourself a fuckton of headaches.