Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [egit-dev] Branch switching vs Incremental builds

EGit refreshes the workspace after a checkout since JGit changes the files changing due to the checkout
directly on the file system and hence doesn't send Eclipse events usually sent when a file changes content.
Not sure how JDT decides what needs to be rebuilt after a workspace level refresh.

On Mon, Aug 24, 2015 at 12:26 PM, Jesper Skov <jskov@xxxxxxxxxxxx> wrote:

The builder we use is custom made (it invokes an external Gradle wrapper).

 

Our builder does not come into play (it is both disabled, and it is silent in the log – so I am sure about that).

 

The long refresh happens in the JDT compiler after “Git Repository refresh” completes.

The Progress view shows that “Refreshing workspace” is running.

 

 

So it is not related to Gradle.

 

 

 

I agree on the changed files; not many are actually touched on disk (or at least their date remains unchanged).

That’s why I thought it had to be somehow releated to how eGit reports changes to Eclipse.

 

Cheers,
Jesper Skov

 

 

 

 

 

Fra: Alex Blewitt [mailto:alex.blewitt@xxxxxxxxx]
Sendt: 24. august 2015 12:18
Til: Jesper Skov <jskov@xxxxxxxxxxxx>
Cc: egit-dev@xxxxxxxxxxx
Emne: Re: [egit-dev] Branch switching vs Incremental builds

 

Using Gradle is the problem. 

 

When EGit changes branch, only the files that are different are changed. The Gradle builder probably doesn't keep track of which files are new and so plays it safe by recompiling everything.  

 

Alex

Sent from my iPhat 6


On 24 Aug 2015, at 10:35, Jesper Skov <jskov@xxxxxxxxxxxx> wrote:

We have been using eGit for a long time without problems.

 

But recently, a big project was moved from SVN to Git, and it is causing some performance problems with eGit (4.0.0 in Mars, Windows 7).

 

The project has 3600 java files in 25 projects, taking some 5 minutes to compile.

 

 

 

When I switch to a new branch, it looks like all java files are recompiled (individually, or batched, I don't know).

So this takes around 5 minutes.

 

But this recompilation takes place in the context of the old branch.

 

The new branch may have other dependencies, and these are not updated until the Workspace refresh completes, and the project builders are invoked.

We use Gradle for this, so project settings are changed, causing another full build.

 

 

I wonder if the JDT incremental builder can be disabled while eGit makes changes to the workspace?

 

 

Or is something else at play?

If I disable Build Automatically, the branch switch will take the same amount of time.

And files will be processed via org.eclipse.jdt.internal.core.DeltaProcessor.resourceChanged.

 

 

Thanks,
Jesper Skov
Digitale Medarbejdere


T +45 89 89 29 89
Vestergade 8-16 | 8600  Silkeborg
CVR-nr. 17 61 66 17



Jyske Mobilbank med Swipp - send penge nemt og hurtigt 


 

 

_______________________________________________
egit-dev mailing list
egit-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/egit-dev


_______________________________________________
egit-dev mailing list
egit-dev@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/egit-dev


Back to the top