Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Eclipse sync workspaces/perspectives/preferences across computers

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.

like image 314
Naren Avatar asked Jun 05 '09 23:06

Naren


People also ask

How to export perspective in Eclipse?

To save your perspective, select Window > Save Perspective As… from the application menu. A dialog should popup (shown below), prompting you for a perspective name. Enter a name that you'll remember, eg. My Java or Debug Jack.

Can you use Eclipse on multiple computers?

You may install on as many computers as you like. Once activated, you may use Eclipse, keyless, as long as you have an internet connection.

Where does Eclipse store list of workspaces?

eclipse stores all its workspace settings and files in the . metadata folder.


1 Answers

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:

  • How-to: Run Eclipse or Aptana from USB Drive

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

  • How-to: Free Portable Web Development on a USB Drive
  • StackOverflow: Development tools for a USB drive
  • ServerFault: Tools that fit on a USB drive

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.

  • rsync
  • DeltaCopy

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.

  • unison
  • SyncBack

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.

  • Dropbox (One quirk here for users of Instant Rails is that the space in the "My Dropbox" folder name is a show stopper.)
  • SpiderOak
  • Syncplicity
  • Windows Live Sync
like image 105
Pete TerMaat Avatar answered Sep 23 '22 02:09

Pete TerMaat