contrib/projectpackager has a useful bit of functionality that has long been missing from the standard UI - the ability to export a project as a single ZIP file easily shared via (say) email, and correspondingly the ability to point to a downloaded ZIP and with one action unpack it (somewhere) and open it as a project in the IDE.
1. Automatically exclude build and private dirs (i.e. SharabilityQuery.NOT_SHARABLE).
2. Automatically include nested projects when a parent project is selected.
3. Permit multiple sibling projects to be packed.
4. Check if the (parent) project is the root of a DVCS (Hg, Git) and if so offer to create a history bundle instead (checking for local modifications first). Perhaps even offer to initialize the project as a DVCS.
5. The existing module supports sending the ZIP as an email attachment, though this relies on the user configuring SMTP in their IDE, which is awkward; and the RFC used by Desktop.mail(URI) is not sufficiently powerful to create a message with an attachment.
Note: File > Import/Export Project matches existing menu structure best, though in some ways this functionality better belongs in the Team menu - a lightweight SCM alternative akin to Local History.
Implemented 1-3, and a brief note for 4. Skipping 5.
Integrated into 'main-golden'
User: Jesse Glick <email@example.com>
Log: #205771: File > Import/Export Project > From/To ZIP.
Created attachment 155695 [details]
If user selects a full remote C++ project  and tries to export it to ZIP -- exception occurs (see bug ).
That happens, because FileUtil.toFile(FileObject) returns null for remote fileobjects.
Is it possible to apply a suggested patch? At least where will be no exception for now.
* show an error in the status line instead of throwing NPE