Community
Participate
Working Groups
+++ This bug was initially created as a clone of Bug #306575 +++ One problem with using the CDT team-shared index on a REALLY large source base (like 100000 files) is that when importing a project on a slow file system such as a ClearCase dynamic view, most of the time during import is spent for doing an fstat on each file to find out its timestamp. As a provider of a large source code base, I want to provide this source code along with a pre-computed refresh snapshot, such that people importing my source base can get access to the project much faster. Eclipse Platform M7 is going to provide support for this, and the CDT team-shared index export wizard should leverage it.
Created attachment 166112 [details] patch v1 Attached is a first simple patch providing the feature. I consider this functionally complete, though it could have some polishing (e.g. add a "Variables" button for defining custom Path Variables in the wizard when needed, or changing the way how the TeamPDOMImportOperation#expandLocation() code is called. A first test of the feature on a medium-sized project shows that the feature can cut down project import time (that is, time until productivity) from 1 minute to 5 seconds. Comments welcome.
I think that this feature also implements bug 259280, at least partially.
Created attachment 166189 [details] updated patch Thanks Martin, I have made the following modifications to the patch: * Removed feedback about the export location for the resources snapshot in order to avoid variable expansions during the verification. (This could bring up modal dialogs) * Adjusted the name-computation for the resources snapshot file. * Externalized strings.
Implemented in 7.0 > 20100427.
(In reply to comment #2) > I think that this feature also implements bug 259280, at least partially. This patch certainly implements a big part of the "project migration" feature described in 259280, but there is a very important part that still remains. That is the ability to specify a "trusted" team shared index, which is one that does not require checksum validation of the files referenced in the imported PDOM. Without this, the user scenario of creating a new project for a new ClearCase view based on a ClearCase "reference" view does not gain the desired performance improvement. For the customer I have been working with, the PDOM file size is just over 2 Gb, and recomputing the checksums and index for all 50000+ files it references requires several hours. Our custom implementation for this customer produces a team shared index zip file that does not include the checksums so that the import "trusts" the shared index to be an accurate representation of the files in the imported project. I'd like to invite comments on whether it would be possible to provide this option (or something similar) with this feature as well.
(In reply to comment #5) I have moved the discussion to bug 259280.
*** cdt cvs genie on behalf of mschorn *** Bug 310514: Exporting resource snapshots in addition to cdt index. [*] messages.properties 1.4 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/wizards/indexwizards/messages.properties?root=Tools_Project&r1=1.3&r2=1.4 [*] TeamProjectIndexExportWizardPage.java 1.10 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/wizards/indexwizards/TeamProjectIndexExportWizardPage.java?root=Tools_Project&r1=1.9&r2=1.10 [*] Messages.java 1.3 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/wizards/indexwizards/Messages.java?root=Tools_Project&r1=1.2&r2=1.3 [*] MANIFEST.MF 1.53 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.ui/META-INF/MANIFEST.MF?root=Tools_Project&r1=1.52&r2=1.53 [*] TeamPDOMExportOperation.java 1.10 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/TeamPDOMExportOperation.java?root=Tools_Project&r1=1.9&r2=1.10