Hemant
Hemant

Reputation: 4616

Suggestions on optimizing the EGit on Eclipse

I am using EGit on fairly large and complex set of Java projects (more than a million line of code) and a decade worth of history.
Here I am facing serious performance issues with EGit, as even small one line change in the Java file causes EGit to re-index for couple of minutes which is slowing the entire system. Indeed, even git command line is bit slow as "git status" takes around a minute from command line, but I can live with this performance issue, & EGit commit dialog slowness issue (link). As I can use git command line to commit, and update, but I don't want to tradeoff my Eclipse performance as that does affect productivity.

The following is what I have tried by doing Googling and asking people around:

  1. Added all classes folder in the exclude file. Indeed tried putting the classes folderin .gitignore as well for time being.
  2. Gave Egit enough time to finish indexing by keeping the machine ON for a day.
  3. Git staging, history and all other Eclipses views are closed in the Eclipse workbench while doing development.
  4. Did "git gc" - It made difference on the command line performance, but hardly any difference for EGit.
  5. Unchecked Label decorator for Git. Preferences -> General -> Appearance -> Label Decorations.
  6. Removed the cygwin from path, as read somewhere in the forum that JGit might be using cygwin for path conversion.
  7. Increased window cache from 10 to 70m in Eclipse (Preferences -> Team -> Git -> window cache).

PS: Git repository is pointing to svn remote repository. Also, I am git newbie so might have made some mistake in setup, so please feel free to point out anything.

Here is my system information, I don't have much fancy hardware specs, but some RAM to spare (8GB).

Upvotes: 6

Views: 5209

Answers (2)

Brett Sutton
Brett Sutton

Reputation: 31

This is probably not quite your problem but this page comes up on google with respect to egit performance. Once source of performance problems is untracked (indexed?) files. Make certain that you don't have large numbers of untracked files in the local directory tree as this seriously impacts egit performance. I removed a director with 10K + files and commit performance went from taking 1+ minute to open the commit dialog to taking a couple of seconds.

Upvotes: 3

VonC
VonC

Reputation: 1325137

That is the problem between CVCS (Centralized VCS) and DVCS (Distributed) VCS:

  • One SVN repo can contains GB worth of data.
  • a Git repo should be kept small, and take advantage of submodules in order to represents, through multiple Git repos.

I suspect lots of repos might perform better than one giant Git repo. Otherwise, synchronization issues start happening, like in bug 323839.

But that means managing the (simplified) synchronization between Git repos and the one SVN repo manually, through an SVN workspace from which you are copying from to yourGit repos, or to which you are copying Git repos new evolutions back to the SVN workspace to commit in.

Upvotes: 0

Related Questions