3

I occasionally work with subcontractors using Visual Studio 2012+ but don't understand how to properly handle change control in this situation, since we're all separate entities and don't work together in the same location.

How can I manage changes in a VS 2012 software project in a cost effective manner, and what type of features should I look for in a good change management solution?

We're looking for long answers that provide some explanation and context. Don't just give a one-line answer; explain why your answer is right, ideally with citations. Answers that don't include explanations may be removed.

  • 1
    Hi John, welcome to Freelancing SE! Questions tend to work out better when they're worded in a way that isn't just polling for a list. I edited to try and get the ball rolling in the direction of the actual problem you're hoping to solve. I'm going to ask in our Freelancing Chat room whether or not folks think these edits make the question fit our scope. Hope this helps. – jmort253 Sep 17 '13 at 19:45
  • Hi John, after these edits, we're going to give this question a shot. For folks answering, please be sure to provide more than just a sentence or two. Good Stack Exchange answers ideally should be supported by facts, references, explanations, which generally takes about a paragraph. – jmort253 Sep 18 '13 at 4:36
  • You can use visualstudio.com as resource for project management and source control. They support Git aswell. – Pavel Voronin Sep 18 '13 at 18:31
5

To give a brief overview of source control system, there are 2 basic types of source control system - distributed and centralised. The key difference between these is that centralised systems hold the source code in one central place, whereas with distributed systems developers have their own local repository to push changes to before committing them to one (or many) centrally hosted repositories.

The distributed systems provide benefits around frequency of commits and impact on others using the repository. You are encouraged to commit more regularly as you are not affecting others with your changes until they are pushed to the central repository. This makes it easier for the source code merging tools to reconcile the changes over time. Examples of distributed systems include Git and Mercurial.

I would always recommend using distributed source control over centralised due to the merging experience that both provide. Microsoft have modelled the merging behaviour of TFS 2012 on Git as they have themselves realised the superiority Git has in this regard. If you wish to go down the distributed route, and given that you have a distributed team then I would definitely recommend it, then there are a couple of VS extensions that you can install to help with this: Visual Studio tools for Git and Git Source Control provider.

You can then use one of the cloud hosting providers to act as your central repository host. The 2 main players are Github and Bitbucket, the main difference between the 2 being cost for non-open source projects. Bitbucket is free for small teams (up to 5 users I believe and unlimited repositories) and can host private closed source repositories whereas Github is only free if your source code is open source. If you wish to host private repositories on Github you will need a paid plan.

The basic workflow for a distributed source control repository is (I'm not including any Continuous Integration steps here, this is just for source code management):

  • Developer pulls code from central repository to local repository on their local machine.
  • Developer makes required changes, commits regularly to local repository
  • When developer has enough functionality to push centrally, they pull any changes from the central repository and merge with their local
  • Developer pushes changes from local repository to central repository

You can also go a step further if your project is a Microsoft .Net website (you didn't mention specifics in your question but this is useful for anyone developing .Net websites) and use either AppHarbor or Azure Websites to host the website, because both allow for continuous deployment hooks directly into Bitbucket or Github, meaning that you can push your changes to Bitbucket and have AppHarbor/Azure automatically deploy the website after a minute or 2.

The workflow then becomes:

  • Developer pulls code from central repository to local repository on their local machine.
  • Developer makes required changes, commits regularly to local repository
  • When developer has enough functionality to push centrally, they pull any changes from the central repository and merge with their local
  • Developer pushes changes from local repository to central repository
  • AppHarbor/Azure detects that changes have happened within the repository and deploys the website
1

Microsoft is offering a new Team Foundation Server Express for 5 developers or less (free). Could also provide a place for project tracking. Alos, have you tried Github?

  • Wasn't aware of TFS Express. I'll have to check it out. Do you know is it cloud based or will I need to come up with a server? – John S Sep 17 '13 at 17:29
  • I've just started looking at it - it is indeed cloud based, so you simply sign up and everything is hosted for you by MS – levelnis Sep 18 '13 at 12:28
1

TF is what all large companies use. They also attach to it a good bug tracking software so that you can make commits for each task you're working on.

I personally don't use TF since IMHO there is a better free solution. Try Assembla which is basically all you need in one place for free (unfortunately 1 project only). You simply create SVN there, set up tasks, and so on.

I found Assembla after trying many, many paid solutions like Unfuddle, Basecamp, etc. Assemla beats them all.

And once you're done with your project, simply export it all, and create a new one. I once asked the support if this is allowed and they said yes. You can import/export as much as free project as you wish.

Bad thing is that they don't have archive feature for paid projects (that's why I am still not their paid customer) like Unfuddle, but we can hope they will implement this one day.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.