Reputation: 14022
We have a very large software package that we've written across 3 developers, one in another country.
Now that the project is getting bigger and bigger and we now have 3 developers, it's getting harder and harder to merge. What we currently do is have a central project folder that we all merge into manually using Beyond Compare. This works quite good, but is very slow and a bit of a choring process since we have over 15 modules and hundreds of files to merge.
What we really need is a good plugin for Visual Studio. We need to be able to do manual commits for each line/block we've changed.
Can anyone suggest any good VS plugins or software that can help us?
Upvotes: 0
Views: 2575
Reputation: 11
I wholeheartedly suggest using git. It's source control made for the explicit purpose of distributed development, and by that I mean diverging branches with easy merging. It'll suit you perfectly, having a collaborator in another country. And it supports committing selected parts of files.
However. If you want it to be a smooth experience on Windows, I would recommend the following.
Download SmartGit (preferbly version 3.0+). It's really the best client for git on Windows.
Set up a private (no public access) account on GitHub (cheap) or BitBucket (free).
Initialize a git repository in the directory of your current code base. Make sure to setup your .gitignore (the file that tells git what to ignore, i.e not track) to ignore all locally created files, for example visual studio files and binaries created as part of the normal build process, etc. You want the list of modified files in SmartGit to be completly empty after a compile. Otherwize git won't make much sence to you as you proceed. It works best when truly tracking only the files that are of importance.
Now, for the initial commit. In git, you "stage" everything that you want to include in a commit. It's possible to stage any modified files or parts of modified files and commit them. You can divide your changes into multiple commits.
Want to share it with the others, choose "push", to push changes to GitHub/BitBucket. Want to see what the others have done, choose "pull" to pull changes to your computer.
If there are any conflicts, the conflicting files are marked in SmartGit and you can resolve it on your local computer by double clicking the files and get a three-way-merge view. Git is usually really good at resolving those conflicts automagically, but if it's needed it's quite with SmartGit.
If you're using GitHub, you can use their inline-commenting function to discuss/review your code. You can easily create branches to have pushed changes go into maybe a review branch, before deciding to put it into you're main line.
Upvotes: 1
Reputation: 1576
Give SVN (Subversion) a try you can go http://www.visualsvn.com/ and download it's client and server, very easy to use.
Upvotes: 2
Reputation: 9930
Potentially you may be able to do this with a combination of http://ankhsvn.open.collab.net/ or http://www.visualsvn.com/ and if it's an option (depending on the projects delegation control) an externally hosted SVN server to help lower latency concerns.
Upvotes: 1
Reputation: 24177
It seems like you just need a genuine source control system. Team Foundation Server is the integrated solution from Microsoft. If you want something lighter weight / open source, then there are other options such as VisualHG (a Mercurial plug-in) or Git Source Control Provider (for Git, naturally).
Upvotes: 2