Visual Studio integration with free SCM - visual-studio

I am looking for TFS free alternatives to manage source code. I ve worked with CVS and SVN. I know GIT and Mercurial, but I still haven´t worked with them.
I would to use anyone of them integrated with Visual Studio, with the same ease which use TFS (Solution Explorer contextual menu, a dockable source explorer, etc).
Do you know free plugins to do this?

I would highly suggest using Mercurial.
With visual studio, there is a free plugin http://visualhg.codeplex.com/.
In addition, there is a windows shell package you can install called tortiseHG which makes it super easy to deal with Mercurial in windows. http://tortoisehg.bitbucket.io/
There are other plugins that you can use for SVN and GIT.
For GIT, you might use msysGIT, which again has nice shell integration features:
http://code.google.com/p/msysgit/
As well as visual studio extensions
http://code.google.com/p/gitextensions/
For SVN, there is AnkhSVN http://ankhsvn.open.collab.net/
If you havent used alot of SCM's, I would highly recommend trying out Mercurial. Distributed SCM's are quickly becoming the optimal way to deal with source control. It's just the right way to do things.
Here are a couple of resources to get you started if you are interested in Mercurial:
Excellent tutorial by Joel Spolsky:
http://hginit.com/
Thorough coverage of Mercurial features:
http://hgbook.red-bean.com/
Best of Luck.

I use Git Extesions. It has nice windows gui and visual studio plugin. It works with cygwiin and msysgit.

I use Mercurial with TortoiseHg which provides Explorer context menus and status icons and the VisualHG plugin which provides Visual Studio integration and.
The level of integration with Visual Studio is not quite as slick as the level of integration that you get with TFS, nethertheless combined they make a very productive working environment. In fact in certain areas I prefer the integration over the TFS integration - in particular I find the TFS explorer a tad cumbersome as it requires that an instance of VS be running. In contrast the TortoiseHg repository explorer is very lightweight and quick to start.

I used "AnkhSVN" (http://ankhsvn.open.collab.net/) plugin to access SVN. Worked like a charm :)

I haven't done many things with GIT at the moment, but if you are familiar with SVN and are working under Windows you may have found TortoiseSVN yet. I recommend to give TortoiseGIT a try.
In fact I do not see any need for a tight integration into MS Visual Studio. I'm currently working with Access and (shame on me) Visual Basic 6, and there is no Subversion integration at all. Checkin/out, viewing the logs, branching and many other things work quite well under TortoiseSVN.
The last time I used this integration was Visual SourceForge, which by default provides file locks. This made it necessary to get a good integration. As SVN and GIT don't provide locks in the first place, I prefer to use a stand-alone client.

If you are using Tortoise SVN and Visual Studio, I highly recommend VisualSVN Visual Studio plugin. It is not free, but it's well worth the money.

Related

Where to start... controlling access to code files using Visual Studio in multi-developer environment

We are in the midst of transitioning from asp, vbscript, SQL Server 2000, to asp.net mvc, sql server 2008.
When we were using classic asp, we could use Dreamweaver to lock access to a file on the network so that developers and designers wouldn't overwrite each other's changes when saving.
Is there an equivalent feature in Visual Studio 2010? Or, are there other techniques to accomplish this?
There most definitely are techniques to accomplish this.
Based on the upgrade, it sounds like the team is moving forward. Maybe that means business is good, maybe that means the team is growing or will grow, etc. In any event, and even if it's just a single developer, file locking to prevent overwriting each other's changes is no solution at all. Proper source control should always be used.
Visual Studio has support for TFS, naturally, but there are plugins for other (free) systems. SVN is a good one to get started. (Though, personally, I don't like IDE integration of source control. I prefer to see it as a file operation and not a code operation, and therefore prefer the Tortoise revision control clients for their Windows Explorer integration.)
You will almost certainly want to transition to a proper version control system.
Subversion is very popular and works well for most. TortoiseSVN is an extremely useful Explorer extension to make Subversion easy to use. There are also plugins for development environments. VisualSVN (not free) and AnkhSVN both integrate Subversion into Visual Studio.
Git & Mercurial are also very popular. Both are designed with distributed teams more in mind. They work largely the same as Subversion, but each version control system has slightly different "best practices" when it comes to work flow, particularly around branching and merging.
#quakkels: Go for TFS. I deeply hate it, but it will be easier for you.
SVN is for geeks, and GIT is for alpha-geeks (or for wanabes like me).

Cheaper alternative to VS Team Foundation Server

Is there a fairly inexpensive source control product on the market that integrates into Visual Studio 2008+ and that has the power and capabilities of Visual Studio 2008 Team Foundation Server?
I have used Dynamsoft, SourceGear, Subversion and Platic SCM and reckon that neither of these products can come close to Team Foundation Server.
Ideally I would be interested in a product that:
handles conflict resolution well
handles IDE edits, renames and deletes automatically
easy project management within the source control "server" that allows a project administrator to painlessly manipulate the project structure as they see fit.
Subversion with Tortoise SVN
Here is an article by Rick Strahl on setting everything up.
I used svn at my last job, and tfs at my current one. I can't say I really like having to deal with tfs on a day to day basis.
SubVersion and AnkhSVN will integrate directly into Visual Studio.
Visual SVN is a tool to integrate SVN directly with Visual Studio.
(source: visualsvn.com)
It costs $49 per license.
They have a demo so you can see if it what you are looking for.
Actually, I've recently started using Team Foundation at work. Some of it is nice, but our team has spent at least 10 hours in total last week to fix silly TFS problems that never should have occurred in the first place.
While it isn't perfect, I find Subversion superior in many ways when it comes to plain source control. Get TortoiseSVN and shell out 50 bucks for VisualSVN if you want an integrated solution.
Personally I much prefer SourceGear Vault to SVN.
But it's hard to argue with free, and Vault is pretty expensive if you have more than 2 users.
Try visualsvn.
EDIT
Use VisualSvn as server (my bad, should have clarified I meant that), and as for the client, I used AnkhSVN, which got quite good over time.
From what I hear, VisualHg is a good Visual Studio addin for the Mercurial distributed source-control system. You just need to install TortoiseHg and then VisualHg, and you'll be up and running.
Well, you could use SVN in conjunction with bug tracking solutions such as Trac. There is a Trac Visual Studio plugin. There is also Redmine, though I don't know about its VS plugins.
If all you do is to "view, compare, attach changesets to work items and annotate", I guess bug tracking solutions are quite good.
What features of Team Foundation in particular are you interested in?
If you're just interested in Source Code Control, there are many plugins available for various other products. Subversion for instance has several plugins available which give a very similar experience to the Team Foundation plugin. AnkSVN is my personal favorite.
http://help.collab.net/topic/com.collabnet.anksvn.doc/concepts/ankh_whatis.html
We're going with Git but it probably doesn't have the integration with VS2008 you'd want.
Git manual: http://www.kernel.org/pub/software/scm/git/docs/user-manual.html
Mike,
If you are just looking for source control, the answer is yes.
If you are looking for an inexpensive replacement for everything that TFS does (build, test, project management, etc.) the answer is heck, no.

Using Git with Visual Studio [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
As a long-time Visual SourceSafe user (and hater) I was discussing switching to SVN with a colleague; he suggested using Git instead. Since, apparently, it can be used as peer-to-peer without a central server (we are a 3-developer team).
I have not been able to find anything about tools that integrate Git with Visual Studio, though - does such a thing exist?
What are the technologies available for using Git with Visual Studio? And what do I need to know about how they differ before I begin?
In Jan 2013, Microsoft announced that they are adding full Git support into all their ALM products. They have published a plugin for Visual Studio 2012 that adds Git source control integration.
Alternatively, there is a project called Git Extensions that includes add-ins for Visual Studio 2005, 2008, 2010 and 2012, as well as Windows Explorer integration. It's regularly updated and having used it on a couple of projects, I've found it very useful.
Another option is Git Source Control Provider.
I use Git with Visual Studio for my port of Protocol Buffers to C#. I don't use the GUI - I just keep a command line open as well as Visual Studio.
For the most part it's fine - the only problem is when you want to rename a file. Both Git and Visual Studio would rather that they were the one to rename it. I think that renaming it in Visual Studio is the way to go though - just be careful what you do at the Git side afterwards. Although this has been a bit of a pain in the past, I've heard that it actually should be pretty seamless on the Git side, because it can notice that the contents will be mostly the same. (Not entirely the same, usually - you tend to rename a file when you're renaming the class, IME.)
But basically - yes, it works fine. I'm a Git newbie, but I can get it to do everything I need it to. Make sure you have a git ignore file for bin and obj, and *.user.
Git Source Control Provider is new plug-in that integrates Git with Visual Studio.
I've looked into this a bit at work (both with Subversion and Git). Visual Studio actually has a source control integration API to allow you to integrate third-party source control solutions into Visual Studio. However, most folks don't bother with it for a couple of reasons.
The first is that the API pretty much assumes you are using a locked-checkout workflow. There are a lot of hooks in it that are either way expensive to implement, or just flat out make no sense when you are using the more modern edit-merge workflow.
The second (which is related) is that when you are using the edit-merge workflow that both Subversion and Git encourage, you don't really need Visual Studio integration. The main killer thing about SourceSafe's integration with Visual Studio is that you (and the editor) can tell at a glance which files you own, which must be checked out before you can edit, and which you cannot check out even if you want to. Then it can help you do whatever revision-control voodoo you need to do when you want to edit a file. None of that is even part of a typical Git workflow.
When you are using Git (or SVN typically), your revision-control interactions all take place either before your development session, or after it (once you have everything working and tested). At that point it really isn't too much of a pain to use a different tool. You aren't constantly having to switch back and forth.
I find that Git, working on whole trees as it does, benefits less from IDE integration than source control tools that are either file based or follow a checkout-edit-commit pattern. Of course there are instances when it can be nice to click on a button to do some history examination, but I don't miss that very much.
The real must-do is to get your .gitignore file full of the things that shouldn't be in a shared repository. Mine generally contain (amongst other stuff) the following:
*.vcproj.*.user
*.ncb
*.aps
*.suo
but this is heavily C++ biased with little or no use of any class wizard style functionality.
My usage pattern is something like the following.
Code, code, code in Visual Studio.
When happy (sensible intermediate point to commit code, switch to Git, stage changes and review diffs. If anything's obviously wrong switch back to Visual Studio and fix, otherwise commit.
Any merge, branch, rebase or other fancy SCM stuff is easy to do in Git from the command prompt. Visual Studio is normally fairly happy with things changing under it, although it can sometimes need to reload some projects if you've altered the project files significantly.
I find that the usefulness of Git outweighs any minor inconvenience of not having full IDE integration but it is, to some extent, a matter of taste.
Microsoft announced Git for Visual studio 2012 (update 2) recently. I have not played around with it yet, but this video looks promising.
Here is a quick tutorial on how to use Git from Visual Studio 2012.
Also don't miss TortoiseGit...
https://tortoisegit.org/
There's a Visual Studio Tools for Git by Microsoft. It only supports Visual Studio 2012 (update 2) though.
Visual Studio 2013 natively supports Git.
See the official announcement.
The Git support done by Microsoft in Visual Studio is just good enough for basic work (commit/fetch/merge and push). My advice is just to avoid it...
I highly prefer GitExtensions (or in less proportion SourceTree). Because seeing the DAG is for me really important to understand how Git works. And you are a lot more aware of what the other contributors to your project have done!
In Visual Studio, you can't quickly see the diff between files or commit, nor (add to the index) and commit only part of modifications. Browse your history is not good either... All that ending in a painful experience!
And, for example, GitExtensions is bundled with interesting plugins: background fetch, GitFlow,... and now, continuous integration!
For the users of Visual Studio 2015, Git is taking shape if you install the GitHub extension. But an external tool is still better ;-)
TortoiseGit has matured and I recommend it especially if you have used TortoiseSVN.
The newest release of Git Extensions supports Visual Studio 2010 now (along with Visual Studio 2008 and Visual Studio 2005).
I found it to be fairly easy to use with Visual Studio 2008 and the interface seems to be the same in Visual Studio 2010.
The simplest solution that actually works quite well is to add the TortoiseGit commands as external tools.
Solution to adding a Git (TortoiseGit) toolbar to Visual Studio
As mantioned by Jon Rimmer, you can use GitExtensions. GitExtensions does work in Visual Studio 2005 and Visual Studio 2008, it also does work in Visual Studio 2010 if you manually copy and config the .Addin file.
Currently there are 2 options for Git Source Control in Visual Studio (2010 and 12):
Git Source Control Provider
Microsoft Git Provider
I have tried both and have found 1st one to be more mature, and has more features. For instance it plays nicely with both tortoise git and git extensions, and even exposed their features.
Note: Whichever extension you use, make sure that you enable it from Tools -> Options -> Source control -> Plugin Selection for it to work.
As of 2013-02-11, the Microsoft Git plugin for Visual Studio 2012 should work with the Express version as well.

Source control with Visual Studio integration for a small project

I'm begining the development of a personal Web Application project. I'd like to have a source control system for that project.
At work, we user Team Foundation Server and I'm quite happy with that, mostly for the Visual Studio integration.
I'd like to know if there was free source control solutions that had the same kind of integration with VS2008.
I just started using Subversion actually, all I did was go to their website and download the server (took like 10 mins to install and setup). The installer asks you where you want your code repository to be and then it sets up the server completely. The only thing I had to do was put in a password file. I installed ankhsvn (which is an SVN client that integrates into Visual Studio) and it worked perfectly, without a hitch. Exactly how you'd expect. It's very little work overall.
subversion, mercurial
I think you have two options, really:
Subversion. It's easy to setup etc, and free. I like VisualSVN, which is $50, and worth atleast 5x that much, but you can use Ankh (free, OSS) or just use tortose (windows explorer plugin, OSS, free).
Once you have tortoseSVN (VisualSVN needs it too) you can make local repo's, or use a remote one, eg VisualSVNServer (also free), or personally, I have mine hosted with my websites at dreamhost :)
Another option is SourceGear Vault. It's GREAT if you have a windows-based server somewhere (it's SQL 200x + ASP.NET based, including SQL Express Edition I think), and it's free for one user. Very good if you are used to SourceSafe or TFS, and it can work in the SVN/CVS checkout-merge-commit way if you want to (not the default, but easy to change), or just use the check out - lock - check in way like VSS.
You might have heard Eric Sink of SourceGear on the Stack OVerflow podcast the other week - same company.
50 Bucks gets you all the subversion control you could need.
EDIT: And in the long run...50 bucks is as good as free...
I found Subversion very easy to install. AnkhSVN integrates into the Visual Studio IDE nicely and makes sure you don't forget to add new files created in the IDE to SVN. However, AnkhSVN also seems to have it's periodic hiccups.
TortoiseSVN seemed more stable when I used it, plus it has some advanced features (like a nice conflict editor) that Ankh is still lacking. That's why I use both Ankh and SVN for the best of both worlds.
visualsvn + ankhsvn works great for me
I have had good experiences with TortoiseSVN although it does not integrate directly into Visual Studio. It is free and integrates into Windows quite well.
If you want a solution that has more integration I would recommend Vault from SourceGear. It is free for individual users and is easy to setup. It has more features than SVN and direct access from within VS.
Subversion is good, but not that easy to install (since it requires Apatche). Take a look at Vault very simple to install, and works very well with Visual Studio. It's also free for single developer.

Switching form Visual SourceSafe to CVS: what features are lost in Visual Studio?

My company is using Visual SourceSafe (VSS) and Visual Studio 2005 (soon 2008). They want to switch to CVS, but the developers don't want to lose the integration we get with VSS and Visual Studio.
I know there are CVS plugins, but what functionality, if any, is lost with CVS?
If you're going to switch, why not switch to something better? CVS is a long way from state of the art in version control. A more modern system like Subversion or Vault not only offers better features, but it will get you better Visual Studio integration as well.
Screaming at VSS for lost source code, etc. Seriously though, it is a very different model (optimistic locking), so you will probably lose some productivity for the first little while. I would probably look at using TortoiseCVS and "Open Folder In Windows Explorer" right-click or the Visual Studio Explorer plug-in rather than a CVS plug-in if you are using Visual Studio 2008 (all of the CVS plug-ins I have tried have had either serious functionality issues, or serious stability issues).
VSS is really a terrible source control system, and moving to a modern style (optimistic locking) source control system will be a huge boon in the long run. You might want to skip the 1990s all together though and move to Subversion/Git/Mercurial and get into the 2000s.
If you must switch to CVS (Subversion or a distributed VCS would be better) then the script we used to migrate and keep the change history can be found here.
We are very happy with CVS, although we don't use Visual Studio integration as we find TortoiseCVS and SmartCVS much better. However if I was switching now I would look at Git or Mercurial.
My hack is as follows:
I am mainly a Java developer and I use Eclipse/RAD. The support for CVS is great and is very easy to work with.
For the C# work I do I tried to find a CVS plugin for Visual Studio but was unhappy with the one I found. In the end, I decided to use Eclipse to handle the versioning of my C# projects.
The procedure:
Create a simple project in Eclipse
Open VS and save the project into the directory created by Eclipse
Return to Eclipse, press F5 to refresh the project
Share the project (i.e. add to CVS)
Add .sln to the list of externally handled files in the Eclipse settings
VS can now be opened directly from Eclipse by clicking the .sln file, the project can be worked on within VS. Upon exit from VS the project must be refreshed in Eclipse and can be synchronised with CVS
Although I have not yet used the Subversion plugin, I guess that would work in a similar way.
This solution works well for me especially as I spend most my time in Eclipse anyway.
I did try using TortoiseCVS but found it tricky to use. Eclipse is free and the CVS interface is very usable.
Visual Studio has a bad integration inside the IDE for CVS and SVN. Those free ones don't work well. I use Tortoise (outside Visual Studio), and it works fine. If you want something inside Visual Studio, you might check for not free plugin or to use TFS.

Resources