This could probably use a wiki page (or a link to someone else who was documented the current Arduino approach).
Sketchbook is in "Documents/Arduino" (home dir, Mac) on my setup, so I'll call that SB from now on.
- in SB, you put your own sketches, possible structured with sub-directories/-folders
- in SB/libraries you keep the stuff you want to re-use in various projects
- if you want to use the Ports library, name it SB/libraries/Ports
- and if you want to use the RF12 library, name it SB/libraries/RF12, etc
- the examples folder inside any folder in libraries can be reached via the "Examples" submenu of File
- all projects, not just what's in libraries, can be reached via the "Sketchbook" submenu of File
- don't put anything yourself into the Arduino areas, i.e. next to EEPROM etc - you'll get in trouble when updating the Arduino IDE
- to put it differently: only mess with SB and areas below it, never anywhere else
If you see things twice, then you have things in too many places. My suggestion would be to start over and move stuff over (again, only to the SB area). Start slowly and try to get some examples going. Then put all your own projects in SB, next to the libraries folder.
You can edit stuff you placed inside libraries, but if that's not your own project, say an example sketch inside the Ports library you want to tweak, then be aware that updates of the Ports library may overwrite it.
UNLESS you use svn - highly recommended. To get the Ports library in the right place, check out this path:
Make sure that ends up as a folder at SB/libraries/Ports, with a subfolder SB/libraries/Ports/examples, etc.
Same for RF12.
Once you get this right, updating to the latest Ports/RF12/whatever is a matter of doing a svn "update". All changes will be picked up. If you made changes yourself and they do not conflict with new changes in Ports, then your changes will stay intact even if other parts of the source code are updated. If they do conflict, you'll get a warning, but again your changes won't be lost.
I hope this helps. I'd appreciate suggestions on how to improve the info on pages like these on the wiki: http://jeelabs.net/projects/cafe/wiki/Ports
It may all seem like a lot of trouble, but all I can say is that it's worth biting through, IMO. At the end of the road is effortless and safe tracking of all new changes to sources you got from JeeLabs (or anyone else for that matter, since the same benefits can be had with git, cvs, etc).