This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.
Summary: | Support multiple instances of NetBeans with "shared configuration" | ||
---|---|---|---|
Product: | ide | Reporter: | NukemBy |
Component: | UI | Assignee: | issues@ide <issues> |
Status: | NEW --- | ||
Severity: | normal | CC: | allanNB |
Priority: | P1 | ||
Version: | Dev | ||
Hardware: | PC | ||
OS: | All | ||
Issue Type: | ENHANCEMENT | Exception Reporter: | |
Attachments: | Linux workaround - Ain't it a thing of beauty :) |
Description
NukemBy
2016-05-17 11:03:44 UTC
excellent idea OP :) I too have 1..4 projects open in different Netbeans instances and it is a complete nightmare Created attachment 162885 [details]
Linux workaround - Ain't it a thing of beauty :)
attachment for my comment, inspiration for the actual feature
I tried @NukemBy@netbeans.org suggestion of using symbolic links, but they do not work in Linux (Ubuntu Mate 16.04 LTS), because the lockfiles need to be different Here's a workaround for Linux that works: ------------------------------------------ as user: # preparing a blank master (with parents modules, config, plugins) for cloning: cd ~/.netbeans cp -rapl 8.2 last-working-stable.blank cd last-working-stable/ rm -rf update_tracking/ && mkdir update_tracking/ rm -rf config/ && mkdir config/ rm -rf modules/ && mkdir modules/ rm build.properties ln -s ~/.netbeans/8.2/build.properties ~/.netbeans/last-working-stable.blank/build.properties rm -f .lastModified lock I'm leaving .metadata as just copied and not linked to the parent, this seems to be used only at installation [CITATION NEEDED] # create a symlink to parent so I dont have to redo all of this when the version changes: ln -s 8.2 last-working-stable # creating multiples: as user: cp -rapl ~/.netbeans/last-working-stable.blank ~/.netbeans/last-working-stable.clone.1 cp -rapl ~/.netbeans/last-working-stable.blank ~/.netbeans/last-working-stable.clone.2 cp -rapl ~/.netbeans/last-working-stable.blank ~/.netbeans/last-working-stable.clone.3 cp -rapl ~/.netbeans/last-working-stable.blank ~/.netbeans/last-working-stable.clone.4 cp -rapl ~/.netbeans/last-working-stable.blank ~/.netbeans/last-working-stable.clone.5 cp -rapl ~/.netbeans/last-working-stable.blank ~/.netbeans/last-working-stable.clone.6 cp -rapl ~/.netbeans/last-working-stable.blank ~/.netbeans/last-working-stable.clone.7 cp -rapl ~/.netbeans/last-working-stable.blank ~/.netbeans/last-working-stable.clone.8 cp -rapl ~/.netbeans/last-working-stable.blank ~/.netbeans/last-working-stable.clone.9 as root: # you can test this out with: mount --bind /home/allan/.netbeans/last-working-stable/update_tracking /home/allan/.netbeans/last-working-stable.clone.1/update_tracking mount --bind /home/allan/.netbeans/last-working-stable/config /home/allan/.netbeans/last-working-stable.clone.1/config mount --bind /home/allan/.netbeans/last-working-stable/modules /home/allan/.netbeans/last-working-stable.clone.1/modules # to make it permanent, add this to fstab: /home/allan/.netbeans/last-working-stable/update_tracking /home/allan/.netbeans/last-working-stable.clone.1/update_tracking none bind /home/allan/.netbeans/last-working-stable/config /home/allan/.netbeans/last-working-stable.clone.1/config none bind /home/allan/.netbeans/last-working-stable/modules /home/allan/.netbeans/last-working-stable.clone.1/modules none bind /home/allan/.netbeans/last-working-stable/update_tracking /home/allan/.netbeans/last-working-stable.clone.2/update_tracking none bind /home/allan/.netbeans/last-working-stable/config /home/allan/.netbeans/last-working-stable.clone.2/config none bind /home/allan/.netbeans/last-working-stable/modules /home/allan/.netbeans/last-working-stable.clone.2/modules none bind /home/allan/.netbeans/last-working-stable/update_tracking /home/allan/.netbeans/last-working-stable.clone.3/update_tracking none bind /home/allan/.netbeans/last-working-stable/config /home/allan/.netbeans/last-working-stable.clone.3/config none bind /home/allan/.netbeans/last-working-stable/modules /home/allan/.netbeans/last-working-stable.clone.3/modules none bind /home/allan/.netbeans/last-working-stable/update_tracking /home/allan/.netbeans/last-working-stable.clone.4/update_tracking none bind /home/allan/.netbeans/last-working-stable/config /home/allan/.netbeans/last-working-stable.clone.4/config none bind /home/allan/.netbeans/last-working-stable/modules /home/allan/.netbeans/last-working-stable.clone.4/modules none bind /home/allan/.netbeans/last-working-stable/update_tracking /home/allan/.netbeans/last-working-stable.clone.5/update_tracking none bind /home/allan/.netbeans/last-working-stable/config /home/allan/.netbeans/last-working-stable.clone.5/config none bind /home/allan/.netbeans/last-working-stable/modules /home/allan/.netbeans/last-working-stable.clone.5/modules none bind /home/allan/.netbeans/last-working-stable/update_tracking /home/allan/.netbeans/last-working-stable.clone.6/update_tracking none bind /home/allan/.netbeans/last-working-stable/config /home/allan/.netbeans/last-working-stable.clone.6/config none bind /home/allan/.netbeans/last-working-stable/modules /home/allan/.netbeans/last-working-stable.clone.6/modules none bind /home/allan/.netbeans/last-working-stable/update_tracking /home/allan/.netbeans/last-working-stable.clone.7/update_tracking none bind /home/allan/.netbeans/last-working-stable/config /home/allan/.netbeans/last-working-stable.clone.7/config none bind /home/allan/.netbeans/last-working-stable/modules /home/allan/.netbeans/last-working-stable.clone.7/modules none bind /home/allan/.netbeans/last-working-stable/update_tracking /home/allan/.netbeans/last-working-stable.clone.8/update_tracking none bind /home/allan/.netbeans/last-working-stable/config /home/allan/.netbeans/last-working-stable.clone.8/config none bind /home/allan/.netbeans/last-working-stable/modules /home/allan/.netbeans/last-working-stable.clone.8/modules none bind /home/allan/.netbeans/last-working-stable/update_tracking /home/allan/.netbeans/last-working-stable.clone.9/update_tracking none bind /home/allan/.netbeans/last-working-stable/config /home/allan/.netbeans/last-working-stable.clone.9/config none bind /home/allan/.netbeans/last-working-stable/modules /home/allan/.netbeans/last-working-stable.clone.9/modules none bind to mount all in this session: mount check if everything was mounted properly: l last-working-stable.clone.*/config/ run it with (fontsize optional): /opt/netbeans/netbeans-last-working-stable/bin/netbeans --fontsize 25 --userdir /home/allan/.netbeans/last-working-stable.clone.1 /opt/netbeans/netbeans-last-working-stable/bin/netbeans --fontsize 25 --userdir /home/allan/.netbeans/last-working-stable.clone.2 etc.. # if running a clone brings another clone to focus, then close all Netbeans clones and delete these: rm -f last-working-stable.*/.lastModified last-working-stable.*/lock or rm -f last-working-stable.7/.lastModified last-working-stable.7/lock ------------------------------------ See attached image for results. Note that I have not tested this beyond a few minutes, but everything seems to work as expected. Maybe someone could add this to the Wiki entry? |