Hi, I'm asking this here because You Da Guys.. who are doing lots of development and answering complex questions.

I use many different Libraries you and others write. I also write a lot of sketches. I have a 'main computer' that I'm typing on and where I do most original sketches with some desktop Arduino stuff. But I am doing Home Automation stuff and have a machine in the living room near an Arduino setup that's supposed to be up 24/7 . Then I have a machine on the electronics bench where sometimes I'm testing stuff, using the scope etc. Two WIN7 and one XP.

I got outta control again today, with backlevel libraries etc etc. I just zipped and merged all libraries and most Sketches. I really don't want to do that every day/week.

What do you do to manage this? There must be some elegant and possibly simple way of doing this that I haven't thought of!

If you have three computers, MC, HA, and AO, then one of them (say MC) has the Arduino software and libraries on the C drive. On HA and AO, map the C drive on MC as the D drive (or whatever letter you like). On HA and AO, the Arduino software and sketches will be on the (mapped/mounted) D drive, rather than actually being installed/saved on the actual computer.

I use Subversion for this purpose. Super easy to set up and use on any modern non-windows OS. Also possible on windows but you'll need something like TortoiseSVN.

For example, I have a linux firewall, linux media server, linux on two RasPis, OSX on two MBPs and an imac. One SVN (Subversion) repository on one of the linux servers that holds all my code in a version controlled manner. I can push updates or check out revisions from any of the linux or OSX instances with a quick one-line command.

It might be a foreign concept right now but the learning curve is *very* small and once you start using it you'll wonder how you ever used multiple machines (and/or developers) to work on one project without it. Other options are CVS and git that basically do the same thing. CVS is antiquated and git is probably overkill, although the architecture of git is pretty cool and if yo uwant to stick your stuff on github, it's free and easy to use. You can also keep it private and local though if you want.

at the risk of sounding defensive of my suggestion, I will offer one more piece of advice:

version control is more useful than you might think. Being able to go back and easily see what you changed between a version that worked a week ago and one that is broken today but is 5 revisions removed... super useful. Also, the version control mechanisms allow you to maintain versions of other peoples' code. I thought that might be useful to you since you mentioned that you're using "backlevel libraries".

Last but certainly not least, the control mechanisms I mentioned excel at maintaining code in multiple locations, not just in multiple versions. On windows, a simple right click->update on the folder you need to update (like My Documents\Ardiuino) will retrieve the latest revision from the server. Similarly, if you want to use an older revision, the process is maybe one step longer.

Using mapped network drives or google drive or any shared-location-without-version control is not only inelegant but runs the risk of fubar'ing the whole code repository. Using a version control system gets you all the benefits and simplicity of the other systems but *with* the added protection and organization of version control. I'll stop trying to convince you now... but I hope you give it a try. you will not be disappointed

If you want to have versioning but don't want to do versioning yourself, then I recommend you take a look at File Hampster. FH is configured with the files/directories to be monitored; each time a monitored file is updated FH will preserve a copy of the previous version. It has configuration options to define how long old versions are kept for, to roll up multiple updates that occurred close together, let you save or discard or preserve individual updates, and so on. It doesn't give you all the capabilities of a fully-fledged change control system, but gets you a good way there at zero effort.

I only provide help via the forum - please do not contact me for private consultancy.