Microsoft dev tools to add Linux-style source code versioning
Microsoft's developer tools division has taken another step closer to the open source community, with the announcement that both Team Foundation Server and Visual Studio will soon incorporate support for decentralized source code version control using Git. Microsoft Technical Fellow Brian Harry announced the new tools at the …
Meh - i have tortoiseSVN
The way TFS is integrated into VS is a pain, you need to fire up the whole environment to check a file and the 5min freeze when it can't contact the great TFS server in the cloud
The lock/checkout/write protect model of TFS is completely broken, especially when it doesn't auto checkout some config files and you find yourself changing settings in some property box and have them quietly forgotton when you close it.
Re: Meh - i have tortoiseSVN
TFS shell integration - http://visualstudiogallery.msdn.microsoft.com/b1ef7eb2-e084-4cb8-9bc7-06c3bad9148f.
Microsoft using Git!
I do hope Microsoft will abide by the Free/Open Source Software (FOSS) license of Git and not abuse the terms and conditions of use as they so often have done in the past, like with Java.
The Free Software Foundation [FSF] needs to closely monitor every aspect of Git's use and development entension by the Redmond giant to help prevent (almost) inevitable illegal and un-approved use of the DVCS.
The company has never proven to be trust worthy.
Re: Microsoft using Git!
That's self evident and rather paranoid since MS have been pretty good about their open source use for quite some time. If they use git they're probably either going to:
a) Put a wrapper around git.exe, just like TortoiseGit does at the moment. i.e. user clicks buttons, menus and things, Tortoise invokes git and then presents the result in a nice dialog.
b) Do what EGit / JGit does. i.e. create an independent implementation of git which uses the same file formats and protocols, possibly written in .NET or similar which doesn't actually share source with git.
Of the two I'd say a) is probably easiest. EGit / JGit are fairly mature and yet they can still be quite flakey too sometimes.
Re: Microsoft using Git!
"MS have been pretty good about their open source use for quite some time."
Ah, no. They were caught violating the GPL with their hypervisor code. It was only the threat of legal action that got them to behave.
They have attacked LiMux with their half-released, headline-grabbing-but-no-one-is-allowed-to-read-it-fully report from "independent" HP. (What has been released is such a crock that it would be hilarious if the headlines hadn't already done damage)
Embrace, Extend, Extinguish. MS should never be trusted and I think the call to have the FSF monitor them closely is the correct one.
Re: Microsoft using Git!
According to Scott Hanselman, MS have been contributing to the LibGit2 project.
http://www.hanselman.com/blog/GitSupportForVisualStudioGitTFSAndVSPutIntoContext.aspx
Re: The company has never proven to be trust worthy.
No shit!!!!!
I trust them as far as I could throw Ballmer.
Re: Microsoft using Git!
Yet mention "Desperately trying to destroy the most successful Open Source product with software patents" Apple, and half the commenters on here will be praising how wonderful Apple are...
VS2012
As far as I can tell, VS2012 is Windows 8 only. Meh.
Re: VS2012
Excellent - I look forward to a crowd of hip and trendy young attractive devs all working in c++ while rollerblading and playing ultimate frisbee.
Is it just me or do the Windows8 ads all look like a tampon commercial ?
Re: VS2012
@James 47 - there was some bruhaha about the free version forcing one to work on Metro apps. I think MS relented in the end. I suppose you would only want to use VS to make a Metro app, but hey, it's a niche, there are probably several metro devs out there not working for MS!
Re: VS2012
>Is it just me or do the Windows8 ads all look like a tampon commercial ?
:-) :-) :-)
Win 8 commercial in Canadian theatres, featuring an attractive (male) narrator:
"I live in a space between appearance and reality..."
Style, not substance, is very much the message.
Cynicism aside, very good news that MS is supporting Git and starting to be slightly less insular. Let's hope they play fair.
Re: VS2012
Microsoft never plays fair, their history is a litany of knife stabbing, dirty tricks and betrayal, from OS/2, funding of SCO's litigation, to their destruction of Nokia. And Balmer is still in charge. Microsoft are not your friend.
Re: VS2012
The trial version works quite happily under Windows 7.
Re: VS2012
@Eadon - yeah, Microsoft hates linux.
Re: VS2012
"I live in a space between appearance and reality..."
Hoxton?
Re: VS2012
Probably a blip caused by their GPL-violating Hyper-V code finally be considered fit for purpose.
And yes, MS do hate GNU/Linux (and freedom). Hence the continual patent threats, half-released reports and other underhand tactics.
Re: VS2012
Well MS wouldn't want you getting free code for free now would they?
Re: VS2012
"Is it just me or do the Windows8 ads all look like a tampon commercial ?"
You'd have to be a c*nt to use it.
Re: VS2012
I think you'll find that VS2012 works fine on Windows 7 - I should know, I've done it.
Cognitive Dissonance Alert (CDA)...
"Git hasn't been as friendly for Windows developers as on other platforms. By building on Git, we can take all the time we might spend just 'catching up' and spend that effort on something where we can add more distinctive value. Choosing Git just made sense"
I would have thought that a Git repository would be OS agnostic, but how exactly has Git been unfriendly for Windows developers?
Re: Cognitive Dissonance Alert (CDA)...
"Git been unfriendly for Windows developers"
My take on this is that Windows is developer unfriendly, but this can be mistaken as the other way around by those that do not understand Unix / Linux.
People who have only known windows are poor developers in my opinion. The good engineering practices of Art Of Unix Programming is lost on them.
Talking of windows development, what tools should devs use anyway? Their most popular language, VB6 was killed a while ago. Silverlight, hailed as the perfect dev solution, has been ditched. With Windows 8, MS has demoted .NET to a kind of limbo / legacy status, as it pushes a MS-extended HTML 5 flavour style of development. Windows mobile ditto, but each version of Win Pho that comes out is incompatible with the previous version.
If you're a windows dev, prepare to continue to see your skills continue to become obsolete as MS keeps throwing mud at walls to see what sticks. This is another reason why Android has taken off - Java is a life-long skill to have, and you can use it to make Android apps, together with Eclipse. So there are plenty of Android Apps out there.
Re: Cognitive Dissonance Alert (CDA)...
>but how exactly has Git been unfriendly for Windows developers?
Isn't a huge part of Git's underpinnings based on symlinks? I know symlinks didn't exist till Windows 7(Vista?), but even then I am not sure how well they work on Windows 7. Not exactly a high profile feature in it, nowhere like on a 'nix/bsd system and I haven't seen anyone use them.
Has anybody used win7 symbolic links in anger? Good stuff?
Re: Cognitive Dissonance Alert (CDA)...
Java is dieing - everyone is uninstalling it as it is as full of holes as Android....
Re: Cognitive Dissonance Alert (CDA)...
but how exactly has Git been unfriendly for Windows developers?
The GIT I'm currently using on Windows is accessed via the command line in a Bash shell. There's a GIT GUI but it seems a bit crap. I don't know if that's this installation or if it's always that way.
This isn't a big deal, and it's useful to have the extra power of a decent command shell. All the source control systems I've used have sooner or later run out of GUI steam and forced you to use the command line, including even the abominable Visual SourceSafe.
Still, I can see it being an annoyance. For many developers a new source control system is just another ancillary thing to be mastered, often at a time when you're scrabbling to get up to speed with a new corpus of software while trying to remember the names of the 50 people you were introduced to on day one and the weird network paths to various essential resources. Having to do it on the command line is just a bit more work.
Re: Cognitive Dissonance Alert (CDA)...
Git relies on a lot of Unix commands to do some of its peripheral functionality - grep, perl, bash etc. The msysgit distribution for Windows is essentially all these Unix tools compiled against the MSYS / MingW compatibility APIs. Generally it works, but it would probably run into issues with unicode file names, long paths and such like.
Git also makes a bit of a hash of line ending conversion. It has various settings to preserve / convert line endings but in my experience it can completely bollox it up - e.g. it's possible with multiple users who have different line ending settings to confuse git into thinking files have been modified when they have not. The project owner has to craft a .gitattributes file to take this crlf conversion stuff out of user's hands.
Another prominent issue is if you have an NTLM authenticating proxy is that Git will not talk through it. You have to point Git at a shim proxy like ntlmaps which does the authentication for you but looks like a standard httpproxy from the git side.
Eclipse has a plugin called EGit which is a pure Java implementation of Git which may not suffer some of these issues (e.g. it uses IE's proxy settings and works properly through NTLM) but it adds its own since it's not a full implementation of git. I've seen the plugin throw exceptions and cryptic errors when it can't pull, push or merge for some reason.
Re: Cognitive Dissonance Alert (CDA)...
People who have only known windows are poor developers in my opinion. The good engineering practices of Art Of Unix Programming is lost on them.
By way of compensation they avoid the overweening snottiness of Unix enthusiasts. It's an operating system, not a religion.
Also, "practices ... is lost"? This sort of syntax error will cause you endless grief if you propagate it to your Unix commands.
Re: Cognitive Dissonance Alert (CDA)...
@Jean-Luc - Yes, I use links in NTFS all the time, be they symbolic or otherwise. It's useful for many things - such as linking files in a V1 and a V2 profile, so that you can logon to both XP / Post vista workstations and have the same files appear.
I use directory links so that a Windows desktop directory in an roaming profile can be logged on to a Mac OS and Windows and the same desktop files appear.
I believe that filesystem links be they symbolic or hardlinks etc, have been in Windows since NT4 (with POSIX installed) and 2000 natively. But this is just off the top of my head.
Re: Cognitive Dissonance Alert (CDA)...
it's possible with multiple users who have different line ending settings to confuse git into thinking files have been modified when they have not.
That's not confusion - if you've changed the line endings, you *have* changed the file.
It makes sense to give an option to ignore such changes - as git does - but it would certainly be a mistake to enable it by default.
Vic.
Re: Cognitive Dissonance Alert (CDA)...
Symlinks work fine in the version of NTFS shipped with Vista too, so yes, Vista,. The problem is that Microsoft have utterly failed to integrate junction points in any usable way. There are third-party tools to manipulate them, and there's the command-line mklink command, at least on W7, but AFAICT, nothing in explorer that would let a non-geek manipulate them in any sane way, at least with what ships with the OS. So yes, absolutely "not exactly a high profile feature".
Junction points work fine, and can be very useful if you e.g. have a relatively small SSD boot drive and larger spinning disk. You can relocate whatever you like via directory junctions/links (a la symlinks), but it's not simple or obvious for the average user :-(
TFS and VS
The NIGHTMARES of having to use TFS and VS on a project or two come flooding back.
There's no way that you would use these for working with non-Windows / cross platform open source. Or a decent enterprise project come to that.
MS people seem to like their tools but they are stuck in 1998. They are good for some visual basic level work, but not for building modern Enterprise apps or even web apps.
This is not a troll post, though I admit I can come close to trolling sometimes. This opinion, and yours may vary, that's OK, is from personal experience of having worked on every dev environment there is, from win 32 / MFC to .NET to the far better Java ecosystem and other open source stuff, for Enterprise, desktop, web and mobile (Android mostly).
I would avoid MS development tools unless you want to make a purely .NET desktop project with a windows UI or a Metro UI (if you know what I mean).
Re: TFS and VS
"This opinion... is from personal experience of having worked on every dev environment there is, from win 32 / MFC to .NET to the far better Java ecosystem and other open source stuff"
Wow, MFC to .NET, and some Java, which you preferred (easier, wasnt it? None of that hard pointer stuff right?) , and other (?) open source stuff.
Re: TFS and VS
If you want nightmares, try using Visual Source Safe. People would lock a file and go on holiday...
Re: TFS and VS
That seems entirely irrational to me. How could anyone possibly think any of Eadon's posts are even slightly trolling.
Re: TFS and VS
I use Visual Studio to develop my open source/cross platform library lexertl (http://www.benhanson.net/lexertl.html). I just test build with a GCC makefile on Ubuntu to make sure it builds OK there (and run a few simple tests). At work we develop a multi million line product using VC++. I couldn't comment about web apps.
Visual Studio still has the best debugging support in my experience. Having tried the latest version, Code::Blocks would be my choice of IDE on Linux. The worst thing about Visual Studio is the bloat. 2GB used with a project open, with no build taking place. Without a 64 bit OS it would be unusable, which is simply ridiculous.
The worst thing about VC++ is how far behind it is with C++11 support compared to GCC/Clang etc.
explanation for commenter "dgharmon"
To: dgharmon
Very easy to answer your question. Windows developers have traditionally be lost without 10 years of age cild's understanding of a point 'n click GUI application prompting in their development processes.
Even efforts by Microsoft to introduce "superterminal " which according to Microsoft "expert" associates is a terminal whereby one can execute pre-configured batch file processes instead of using a brain-dead GUI, which was unsuccessful.
How in the world then will these Windows developers content with Git?
Re: explanation for commenter "dgharmon"
er... thanks.
Now could somebody explain the "explanation"?
Re: explanation for commenter "dgharmon"
You have a problem deploying a package archive to the staging server.
1) Ask the developer chilling in front of the Windows GUI
"Sure, I hit "build all - package". Then I fire up Putty to transfer the whole copy manually which can be found down in this directory. Depending on the target server, I have to choose different subdirectories though. The password is copy-pasted from this file. It takes about half an hour for the upload. Can't we use a Maven plugin for Eclipse to do all of that?"
2) Ask the developer chilling in front of the KDE GUI
"Sure, I hit "build all - package". I fire up this little Perl script I finagled earlier and pass the target server on the command line. It automatically selects the correct files and rsyncs the whole package to the server in about 10 seconds. Authentication? SSH keys, of course. Plugins? Sod that, I have enough problems as it is"
Re: explanation for commenter "dgharmon"
@Destroy all monsters: Assuming the Windows guy doesn't know how to script and the KDE/Linux guy does.
It can be the other way round, everything you describe from a file transfer point at least, I have scripted on Windows to transfer to Linux/UNIX.
Re: explanation for commenter "dgharmon"
I'd fire Case1 and get somebody who can write a Build script (for desktop/server programs) or press the "Publish" button and fill in a form for web apps.
Re: explanation for commenter "dgharmon"
> It can be the other way round
Of course, but there is some of the "where there is smoke, there is fire" in there. Same as when you see a physics paper written in Word instead of TeX ... not a good sign.
Re: explanation for commenter "dgharmon"
Assuming the Windows guy doesn't know how to script and the KDE/Linux guy does.
It's a pretty safe assumption though. A *nix developer has to know the shell otherwise he won't be able to do much (IDE, what's that? Isn't it a synonym for Vim/Emacs? -- strike the one you hate). On the other hand, on Windows one has to really go out of his way to use a CLI, if only because the original CLI (command.com/cmd.exe) is such a PITA that all IDEs are designed so that you don't need it for most tasks.
You can already get excellent addons for SVN-VS integration which cost money. I suppose git ones may exist too... so sucks for those companies but means MS have to make something as good.
Hrrmph!
""This is not about lock in – It's about providing a good and interoperable Git capability," Harry wrote."
Will believe it when I see it.
Embrace...............................Embraced
Extend ................................Pending
Extinguish............................Pending
Microsoft & Linux - some facts
The commenter "dogged" probably deserved the "Fail" label with statement about Microsoft being contributor to Linux "as if an altruistic gesture". In regard the Linux kernel, and with RedHat KVM virtualization, Microsoft contributed "only" the code that will allow Linux applications and VMs to run in a Microsoft V-sphere Cloud with their virtualization. They have never, repeat never contributed anything to any Free/Open Source Software (FOSS) project that was not to the advantage of Microsoft only, and "to hell" with the other users of FOSS.
Even in their contributions to Blender graphics/animation software and the Apache HTTP projects, Microsoft's "contributions were for these applications working better on Windows only, and not at all for the "general" improvements of the software that benefit all user, especially for UNIX/Linux users.
How draconian and utterly selfish is this of Microsoft , since the company is benefiting from the very hard work of possibly hundreds of developers offering their efforts "without" costs to the projects over many years.
A final example, Microsoft had been, and probably still is using the FreeBSD ip4 and ip6 TCP/IP and OpenBSD Open SSH protocol stacks, without which they would not have any "functioning" network stack at all. Have they contributed "anything" back to FreeBSD or OpenBSD - No!, Nada!. Zilch! Parasites!
The ignorant and stupid people who support Microsoft under any and all circumstances, no matter how illegal, unethical or draconian their actions need their heads examined.
It's evil of MS, because they don't selflessly contribute to competing platforms?
"since the company is benefiting from the very hard work of possibly hundreds of developers"
Sorry, one of the fundamental points of Free and Open Source is that people are free to use it. There are of course those who believe that you should give something back - that's what copyleft licences are for, like the GPL. But if you release under something like BSD, you're saying that you want people to have the freedom to use it *and not give something back*.
Personally this is why I usually release under the GPL. But then you get BSD advocates claiming that the BSD is better because it's "more free" - then they whine and complain when people actually make use of that extra freedom(!) I've seen exactly the same nonsense even when BSD code was included in GPL code - apparently that was selfish too, because the GPL people should have released under BSD.
It's ignorant and stupid to support a company because they don't support Linux? Sorry, no. I like Linux too, but I'm not expecting companies to selflessly support their competition, nor do I care when companies make use of software, that was released under a licence for that very purpose.
They're not the ones trying to destroy Open Source platforms with software patents.
So basically what you're saying is that just because an author chose a licence that legally allows you to be an arse, then it's morally acceptable to be an arse?
Granted, MS has a legal right to plunder BSD code without giving anything in return, but that doesn't make it the right thing to do.
There are of course those who believe that you should give something back - that's what copyleft licences are for, like the GPL
No - copyleft licences do no such thing.
A copyleft licence merely requires that, should you redistribute the code or a derivative of it, you give your downstream users the same rights to source that you got.
If you want to use copylefted code for your own purposes without giving anything back - off you go. That's perfectly permissible as long as you don't redistribute anything.
Vic.
