Thanks Ronald and Doug .
After reading your comments i am feeling like I am stuck again with my huge code base on which i wan't to use Eclipse in it's original form.
Bringing my huge code base on my local machine or on my remote server is not the problem. The problem arises when the indexing start, even if i assign 4GB of RAM for eclipse still it throws out of memory while indexing (both on my windows and Linux box). I did try all possible permutation and combinations of allocating memory to eclipse, but no success.
So i thought of doing some weird changes in eclipse.
Main component in eclipse which i want to use is CDT, so my scope was first limited to that.
The two things which i identified is the bottle neck in eclipse for huge code base are
1. Eclipse recursive refresh. Which itself takes long time for a huge code base. And once it completes, it notifies all the resource change listeners. This is when the hell break lose with CDT.
2. CDT indexer which is the most memory intensive, that too when it tries to index the huge code base in one go, it throws out of memory most of the time. And till the time it's running, the eclipse is not usable at all. Even if it does a complete indexing there is no guarantee that the Eclipse will not throw out of memory (My personal feeling is that CDT maintains a lot of information in memory).
So i put my hack in eclipse code.
1. I stopped the INFINITE_DEPTH refresh in eclipse.
2. Created a custom recursive refresh call "On demand" (via command). And allowed the Depth One refresh call on Tree expansion from Explorer.
3. Stopped the recursive refresh calls from CDT components.
4. Plugged in a pre-build index file which i created by running cdt indexer in headless mode on my server via CDT extension point. The pre-build index file size is 4GB.
5. To make call hierarchy and open deceleration usable, i just patched a refresh call for the Bindings found from pre-build index file.
Cool now i can create a C/C++ project without worrying about the code base size. Project gets created in no time. Eclipse don't give out of memory since it doesn't deal with complete source tree. i can refresh only those resources recursively which i want to look into or want to modify in my code base. And still i can utilize most of the functionality of CDT require during coding.
This is quite an ugly approach. But works for me since the Refresh and Indexing happens on demand.
The major drawback is that i have modified the Eclipse Refresh mechanism.
So i was looking into Remote project, but again it has its own problem as mentioned in the mail thread below. Synchronize Project will again bring back the complete source tree indexing (in one go) back to my local machine and for sure Eclipse will give me out of memory.
I have changed the subject of the mail and have put cdt-dev mailing list also in the "To" list if anyone can suggest me something cleaner.
Thanks,
Vishal