I understand the importance of using version control and I am trying to learn as much as possible so I can setup SVN for our company web development projects. Right now we all work from a single dev copy and it is messy at best.
Many of our users work remotely and the dev server is on a slow internet connection. From what I have read it is good practice for users to each run their own SVN repositories locally to track their own changes, and then sync that with the server repositories. What is the best way to accomplish this?
Otherwise, is it better for each user to just have their own working copy of the server repository and only work from that?
Since the server is on a slow connection, is it better for each developer (team of 7 at this time) to have their own working copy on the dev server or locally on their machine?
I am also looking at GIT on Windows, but SVN is very mature and has plugins for Visual Studio we can leverage.
… git evangelist reporting for duty! 😉
As noted by sbi, this sounds like an environment best suited for a distributed VCS (like git).
However as you may have noted, git on Windows is not very mature yet. It’s getting there fast though.In your case it may be interesting to know that integration with Visual Studio is not very nice yet. There is GitExtensions which integrates with VS, but it’s not that brilliant. Alternatively there is TortoiseGit.There are other distributed VCSs that may be interesting, like Mercurial or Bazaar, which may have matured a bit more. Not sure about that though. Haven’t used them in ages.
I would not go down the road to take SVN as a distributed VCS. It is not developed with that use case in mind, so it’s going to be cumbersome to implement properly. Even if VS-Integration is nice. Merging will become troublesome.
On the other hand, VS-Integration is IMHO not as important. It’s better have not-so-good integration than have no version control at all. And I have yet to see the tool that does everything perfectly. So I would recommend looking into truly distributed VCSs. The concept may be frightening/confusing at first, but it’s well worth the trouble.
edit: I said that git is not very mature on Windows. It’s not quite that bad. It is not as mature as it is on Linux, but it is very usable nonetheless!