Advertisement

VS extension to sync a project between multiple computers?

Started by April 09, 2014 12:28 PM
3 comments, last by DvDmanDT 10 years, 7 months ago

Hi, does anyone know if there's some tool or preferrably some VS extension that allows me to sync my changes across multiple computers? I already have an SCC system, but I'm looking for something more "live" here.

Use case #1: I'm developing a multiplayer game which I'm testing on multiple computers on a network. I have VS open on all these computers so that I can easily debug each client. I find an issue and create some potential fix. At the moment I have to either apply the fix manually on each computer, commit to SCC and update on all other computers, copy the files to all computers or use some shared directory.

Use case #2: I'm working with a developer at a separate location. We want to collaborate on a single issue. At the moment we do micro-commits to the SCC system which may or may not leave the code base in a broken state. It's also very slow/ineffective since we require comments on each commit and since each commit/update takes at least a few seconds to complete. What if I just want some feedback on the method I'm currently implementing?

I keep thinking that there's gotta be a better way to do these things. Some form of light-weight live sync.

I would suggest Git, because it's designed around branching - meaning you can make a lot of small experimental commits, but not actually push them into the master branch (which you want to remain stable). You can also share commits peer to peer without involving the central server at all, if you liked. It's also very fast.

Otherwise, maybe something like dropbox - you can create a shared directory which syncs changes between all users of that shared directory. As soon as you save a file, the other machines that you're sharing with will download the changed file.

Advertisement

Using git or hg would perhaps solve the SCC code state issue but probably not the productivity issue.

Shared directories, including dropbox, tend to mess with locks, .suo files and intellisense databases as well as cause permission errors when it tries to update the bin/obj files etc.

I've found git to be fairly fast, but yeah, you've still got to enter the commands on both ends and wait a few seconds probably. Watching the tech-director at my last job, I saw him typing in just gp, gf, gr, gs, etc into Git bash... he'd set up shortcuts for commands that he used commonly to make it even faster to do those tasks!

Shared directories, including dropbox, tend to mess with locks, .suo files and intellisense databases as well as cause permission errors when it tries to update the bin/obj files etc.

Assuming your source files, your build files (obj/etc) and your IDE files (suo/proj/etc) are in different folders, you could dropbox just the source files between your PCs.

e.g. in cmd, run something like:
cd C:\dropbox
mklink /D /J mySource C:\projects\foo\source

Now Dropbox will see all the contents of C:\projects\foo\source as if it exists at c:\dropbox\mySource, and will be fooled into syncing it.

The Dropbox symlink solution could work, but it kindof requires me to bypass the default VS project layout which is something I'm not _that_ fond of. It would be much better to have a VS plugin which knows what files to actually sync (files part of the solution). What if it could sync every single change, so that you could see each letter being typed on another computer?

Using Git, using copying, dropbox or whatever seems like dirty workaround solutions and hacks. I keep thinking there has to be a better way.

This topic is closed to new replies.

Advertisement