31

I'm considering migrating from Subversion to Git at work, and would like to get opinions about the best way to set up Git on Windows, and any problems that might arise from the combination of Visual Studio and Git.

The current setup is TortoiseSVN, with Visual Studio 2008 and AnkhSVN for .NET applications. The replacement would probably be Git Extensions.

Advice on repository layouts would be particularly appreciated. All of our solutions use multiple projects, and we now have a number of custom assemblies that we will need to share between applications. The current layout of our Subversion repositories definitely isn't optimal.

UPDATE: I've now migrated to Git using Git Extensions, and it's working very well. Shared code and assets live in separate repositories and are used as submodules. I found submodules slightly confusing when I started, and this post was very helpful.

JProgrammer
  • 2,680
  • 23
  • 36
Stuart Ellis
  • 1,609
  • 2
  • 14
  • 15

3 Answers3

9

The main Git installer for Windows is msysgit (SO question).
TortoiseGit is also a nice Windows integration (on top of msysgit).

You need to be aware of Git limits, particularly in term of Git repository (do not try to stuff every projects into one repo, unless you are building a "system", i.e. something which can only run with all its parts/components.)

External code dependencies are best represented with submodules.
Same thing for vendor branches.


Note also that, in addition of GitExtension, you now can define Git projects in TFS (Q1 2013):
See "How can I push my existing Git repository to Team Foundation Service": starting VS2012.2, yo have git commands directly from your IDE.

Community
  • 1
  • 1
VonC
  • 1,042,979
  • 435
  • 3,649
  • 4,283
6

We have a solution containing 9 projects & we're using git extensions (having come from the svn stack).

Three of the projects are shared with other solutions and we've used sub modules to reference them.

This just about works but the interface to it is very confusing. Going forward we're thinking of removing the sub modules and just referencing the dlls instead.

Jon Spokes
  • 2,421
  • 2
  • 17
  • 20
0

I'm using msysgit, it's pretty nice =)

For the Git Extensions, I don't like much, since I'm more comfortable with command line commands... But the "File History" feature of Git Extensions is awesome

mkato
  • 382
  • 3
  • 11