You need to log in before you can comment on or make changes to this bug.
Product Version = NetBeans IDE Dev (Build 200710231200) Operating System = Linux version 2.6.20-16-generic running on i386 Java; VM; Vendor = 1.6.0_02; Java HotSpot(TM) Server VM 1.6.0_02-b05; Sun Microsystems Inc. I invoked delete action on a build folder of nb module project stored in mercurial repository. IDE progress list was filled by 'Removing...' tasks, ide stopped responding and cpu usage got to 100%. By threaddump I found out something was doing by mercurial caches.
Created an attachment (id=51556) [details] threaddump
Can you add -J-Dorg.netbeans.modules.mercurial.level=100 to netbeans_default_options in etc/netbeans.conf and send us the message log for when you reproduce the problem.
Created an attachment (id=51566) [details] message log
I cannot figure out what you did from the message log. Can you describe a test case, starting from creating or cloning a repository, to reproduce the problem and attach a message log when you execute the test case.
To reproduce: 1. clone the test4u sources 2. open subproject test4u2/test4u-nb in ide 3. run command Install/Reload in Target Platform on Test4u Plugin 4. wait the another ide is started 5. close the another ide 6. go to Files view 7. remove Test4u Plugin/build The attached message log is generated by these steps. I cannot generate any other log.
I have cloned test4u from http://test4u.czech:8080/test4u2 I see a directory test4u/test4u-nb but it is not recognized as a Netbeans project
You probably do not have installed appropriate plugin I guess 'Netbeans Plugin Development'.
I do have "NetBeans Plugin Development" installed
I am still not able to reproduce this but I have looked more closely at the output. The command hg remove is being called for each directory whose deletion we have been notified of and then hg status is being called. I have counted 616 calls to hg remove. Need to think about how we can reduce the number of these calls.
Another thing is it is not necessary to call hg remove in this case. All files are in ignored folder. So some preprocessing working with ignored files patterns would be welcomed too.
The code which handles file deletion was broken. It was not my intention to call hg remove on a directory at all. I have a patch to fix this
Created an attachment (id=51651) [details] initial patch
I have applied the initial patch and will now investigate what improvements are needed when deleting a large directory. I will use test4u/test4u-lib as my testcase; it contains 95 java files to be deleted and should result in 95 calls to hg remove. IDE:------------------------------------------------- IDE: [10/25/07 10:14 AM] Committing started Checking in MercurialInterceptor.java; /shared/data/ccvs/repository/versioncontrol/mercurial/src/org/netbeans/modules/mercurial/MercurialInterceptor.java,v <-- MercurialInterceptor.java new revision: 1.11; previous revision: 1.10 done Checking in Mercurial.java; /shared/data/ccvs/repository/versioncontrol/mercurial/src/org/netbeans/modules/mercurial/Mercurial.java,v <-- Mercurial.java new revision: 1.14; previous revision: 1.13 done IDE: [10/25/07 10:14 AM] Committing finished
Created an attachment (id=51659) [details] additional patch
Created an attachment (id=51705) [details] good patch
This good patch supersedes the previous patch. Now when I delete a directory there is only one call to hg remove and only one call to hg status to update the status in the cache and notify the status window.
Patch committed
verified