Eclipse sync workspaces/perspectives/preferences across computers

Naren picture Naren · Jun 6, 2009 · Viewed 23.4k times · Source

I have a project I need to be working on from two different computers, at work and at home. I need to be able to work on the code from both computers, so the issue is two fold;

  1. Sharing the code
  2. Sharing the workspace.

1 is simple enough with svn; but I feel icky committing broken code to svn just so I can access that again from home. I can live with this but is there a better option?

To elaborate more on 2. I have a highly customized eclipse setup on one of the computers where I spent hours adding plugins and tweaking every tiny config options I could access to get it to the point where it is just right. It'll be a pain redoing every single change on the other computer, is there some way to automatically sync that? I know I can export preferences from Eclipse and import them, but I don't want to have to manually do that each time I change something. [Also, I don't think exporting preferences also exports perspectives?]

Both computers run windows.

Answer

Pete TerMaat picture Pete TerMaat · Jun 6, 2009

Portable Development Environment

Not that you'd want to run from a USB flash drive, but you can bundle Eclipse and the JDK all in one directory, as described here, to have a nicely self-contained development environment:

You can toss in a few more tools too if needed:

See PortableApps for additional tools, including one that will put a menu in your system tray giving you quick access to all your portable tools.

Once you've got that set up, then use an option like one of the following to share the directory across workstations:

External Hard Drive

A flash drive would be too slow, but often an external HDD is fine. Of course, you've got to lug it around. And it's no fun when you forget to bring it to work one day--as I did my laptop yesterday. :-) Drive letter changes can be another problem.

Mirroring Tools

A mirroring/backup tool is simple but error-prone. These are one-way tools, in that they copy everything from one workstation to another. The risk is that you make changes at one workstation, forget to run the tool, then change the same file(s) at your other workstation, and run the tool, overwriting your changes.

Synchronization Tools

A step up from a mirroring tool would be a syncronization tool. These detect changes and allow you to make choices about merging. You have to remember to run it manually, or use another tool to schedule it to run at certain times.

Synchronization Services

These are services that automatically sync files between workstations. Most, if not all of them handle conflicts, and allow access to previous versions of files. They are nice because they are set-and-forget. You don't have to remember to run a mirror or sync tool. Also, these eliminate the need to leave one workstation powered up so that you can manually sync to it when you get to the other workstation.