Hey guys, was wondering if anyone had any suggestions for improvements to a coding workflow with multiple computer setups. Currently my desk has my desktop and my laptop, and I want to know how I can make my coding life easier by using both devices, I use synergy to share my keyboard and mouse however sharing files and code sharing is a bit of a struggle.
The laptop is needed for college and for traveling.
I switch between windows 10 and Linux depending on the programming language i am building at the time.
This is something I am trying to work on. My approach that I haven't fully developed yet is have a server with VMs on it and code in the vm. Remote desktop to vm and code is an option then. Windows or LInux. Also setup a Gitlab that you push all your stuff to from either VMs to keep everything going.
I don't have a simple answer to this question, but I can tell you how I make it happen. When I work with Xamarin I always use git. If you have any files in your project that are particular to that machine ( like project config files ) you can add it to your .gitignore so you don't cause any conflicts when you pull or push.
I would also recommend git. Dropbox or anything like that could work as well, but sometimes binaries are system specific and you'd propably end up sharing them as well. Besides, learning how to use git doesn't hurt either.
For version control: Git * Bitbucket is great for private repositories. * Github is great for public repositories. * Gitlab is nice if you need to use deployments
For offloading work to other machines: Vagrant/Docker I use both, but I prefer Vagrant. You can setup scripts to automagically share folders to either local or remote VMs, and it really makes life easier.
It really depends on what you are trying to do, but between those two you should be set.
There's always the option to spin up a development focused VM, snapshot it, and run it on all of your machines. Simple, and Works pretty well provided you aren't doing HPC, specialized MCU work, or GPU accelerated stuff.
Git for version control obviously, but this helps if you want a clean, consistent environment that doesn't mess with your base system for other things.