Skip to content

Installation History shows full snapshot instead of what changed - #1117

Open
subyssurendran666 wants to merge 2 commits into
eclipse-equinox:masterfrom
subyssurendran666:installation-history-snapshot-contents_1116
Open

Installation History shows full snapshot instead of what changed#1117
subyssurendran666 wants to merge 2 commits into
eclipse-equinox:masterfrom
subyssurendran666:installation-history-snapshot-contents_1116

Conversation

@subyssurendran666

@subyssurendran666 subyssurendran666 commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

The Installation History page previously showed the full list of everything installed at the time of a selected snapshot. For a mature Eclipse installation with hundreds of plug-ins, this was not very useful — you had to mentally compare two snapshots yourself to figure out what had actually changed.

When you select a snapshot in the history list, the panel now shows only the plug-ins that were installed, updated, or removed in that specific operation, grouped under three collapsible sections. Each updated entry shows both the old and new version side by side, so you can see at a glance exactly what changed.

Before

The bottom panel listed every plug-in present in the selected snapshot — often hundreds of entries with no indication of what was new or different.

After

The bottom panel shows a focused diff of only the user-visible changes introduced by that snapshot:

  • Installed — plug-ins added in this operation
  • Updated — plug-ins whose version changed, with old → new version columns
  • Removed — plug-ins uninstalled in this operation

In light of the discussions in the parent github issue,
the functionality has slightly changed. The bottom pane now shows a diff
instead of the full snapshot contents, and the separate Compare dialog has
been removed in favour of inline two-snapshot comparison via multi-select.

Fix: #1116

@iloveeclipse

Copy link
Copy Markdown
Member

panel now shows only the plug-ins that were installed, updated, or removed in that specific operation, grouped under three collapsible sections.

Great, thanks for looking at that, I've missed Installation diff so many times.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates Installation History to display snapshot-to-snapshot changes instead of complete installation contents.

Changes:

  • Computes installed, updated, and removed installable units.
  • Adds grouped diff models and old/new version columns.
  • Adds localized labels for the new UI.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
RevertProfilePage.java Computes and displays categorized snapshot differences.
IUDetailsLabelProvider.java Displays previous IU versions.
ProvUIMessages.java Declares new localized messages.
HistoryDiffElement.java Models individual changes.
HistoryDiffCategoryElement.java Models change categories.
messages.properties Defines new UI labels.
Suppressed comments (2)

bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/RevertProfilePage.java:424

  • Keying each snapshot by IU ID discards valid co-installed versions of a non-singleton IU. p2 supports profiles containing multiple versions with the same ID (for example, SimpleOptionalTest5 installs A 1.0.0 and 2.0.0 together), so whichever query result is inserted last controls the diff and changes can be omitted or misreported. Preserve all IUs per ID, first match identical versions as unchanged, and then classify unmatched old/new versions.
		Map<String, IInstallableUnit> selectedById = new LinkedHashMap<>();
		selectedProfile.query(new UserVisibleRootQuery(), null)
				.forEach(iu -> selectedById.put(iu.getId(), iu));

bundles/org.eclipse.equinox.p2.ui/src/org/eclipse/equinox/p2/ui/RevertProfilePage.java:460

  • Removed entries pass the old IU as the element's current IU and leave previousIU null. Consequently the Old column is blank while the removed version appears under New, reversing the meaning of the diff columns. Removed rows need to expose this IU as the previous version and suppress it from the New column.
		for (IInstallableUnit iu : previousById.values()) {
			if (!selectedById.containsKey(iu.getId())) {
				removed.add(new HistoryDiffElement(selected, iu, null, ChangeType.REMOVED));
			}

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@github-actions

github-actions Bot commented Aug 27, 2026

Copy link
Copy Markdown

Test Results

   18 files  ±0     18 suites  ±0   27m 24s ⏱️ - 2m 4s
2 203 tests +3  2 200 ✅ +3  3 💤 ±0  0 ❌ ±0 
5 263 runs  +9  5 254 ✅ +9  9 💤 ±0  0 ❌ ±0 

Results for commit 32639ba. ± Comparison against base commit 8200028.

This pull request removes 1 and adds 4 tests. Note that renamed tests count towards both.
org.eclipse.equinox.p2.tests.ui.dialogs.AllTests ‑ testDialogWithCompare
org.eclipse.equinox.p2.tests.ui.dialogs.AllTests ‑ testInstallAndRemoveProducesBothCategories
org.eclipse.equinox.p2.tests.ui.dialogs.AllTests ‑ testSameIdDifferentVersionAppearsOnceAsUpdated
org.eclipse.equinox.p2.tests.ui.dialogs.AllTests ‑ testUnchangedIUDoesNotAppearInDiff
org.eclipse.equinox.p2.tests.ui.dialogs.AllTests ‑ testUpdateMovesIUToUpdatedCategory

♻️ This comment has been updated with latest results.

@merks

merks commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

@iloveeclipse

Does the Compare button do anything you would consider helpful? It seems strangely useless to me, though it should let one compare two versions in some meaningful way and doesn't seem to do that.

I definitely think it's cool to see the changes between versions but I'd really not like to lose the ability to the full set of version.

Maybe there is some way we can have both? Or switch between them. Or maybe the compare button should show the new content? I don't know...

I just don't like to lose something in order to gain something...

I'm never sure where to discuss such thing, on the issue or on the PR.

@subyssurendran666
subyssurendran666 force-pushed the installation-history-snapshot-contents_1116 branch 2 times, most recently from 1bf92ae to e8411c4 Compare August 30, 2026 14:11
@eclipse-equinox-bot

eclipse-equinox-bot commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

This pull request changes some projects for the first time in this development cycle.
Therefore the following files need a version increment:

bundles/org.eclipse.equinox.p2.ui.sdk/META-INF/MANIFEST.MF
bundles/org.eclipse.equinox.p2.ui/META-INF/MANIFEST.MF
features/org.eclipse.equinox.p2.rcp.feature/feature.xml
features/org.eclipse.equinox.p2.sdk/feature.xml
features/org.eclipse.equinox.p2.user.ui/feature.xml

An additional commit containing all the necessary changes was pushed to the top of this PR's branch. To obtain these changes (for example if you want to push more changes) either fetch from your fork or apply the git patch.

Git patch
From 5b9a1c2f6dcf1bcd3d8b19b3344560186f0b1852 Mon Sep 17 00:00:00 2001
From: Eclipse Equinox Bot <equinox-bot@eclipse.org>
Date: Wed, 9 Sep 2026 08:48:02 +0000
Subject: [PATCH] Version bump(s) for 4.42 stream


diff --git a/bundles/org.eclipse.equinox.p2.ui.sdk/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.ui.sdk/META-INF/MANIFEST.MF
index 60bb52b93..8b7026921 100644
--- a/bundles/org.eclipse.equinox.p2.ui.sdk/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.p2.ui.sdk/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: %bundleName
 Bundle-SymbolicName: org.eclipse.equinox.p2.ui.sdk;singleton:=true
-Bundle-Version: 1.4.200.qualifier
+Bundle-Version: 1.4.300.qualifier
 Bundle-Activator: org.eclipse.equinox.internal.p2.ui.sdk.ProvSDKUIActivator
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.equinox.p2.ui/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.ui/META-INF/MANIFEST.MF
index 0e96bd7f4..9330fbc44 100644
--- a/bundles/org.eclipse.equinox.p2.ui/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.p2.ui/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: %bundleName
 Bundle-SymbolicName: org.eclipse.equinox.p2.ui;singleton:=true
-Bundle-Version: 2.9.200.qualifier
+Bundle-Version: 2.9.300.qualifier
 Bundle-Activator: org.eclipse.equinox.internal.p2.ui.ProvUIActivator
 Bundle-Vendor: %providerName
 Bundle-Localization: plugin
diff --git a/features/org.eclipse.equinox.p2.rcp.feature/feature.xml b/features/org.eclipse.equinox.p2.rcp.feature/feature.xml
index 074dab22b..47623b496 100644
--- a/features/org.eclipse.equinox.p2.rcp.feature/feature.xml
+++ b/features/org.eclipse.equinox.p2.rcp.feature/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.equinox.p2.rcp.feature"
       label="%featureName"
-      version="1.4.3300.qualifier"
+      version="1.4.3400.qualifier"
       provider-name="%providerName"
       license-feature="org.eclipse.license"
       license-feature-version="0.0.0">
diff --git a/features/org.eclipse.equinox.p2.sdk/feature.xml b/features/org.eclipse.equinox.p2.sdk/feature.xml
index c92a18762..6322c6c71 100644
--- a/features/org.eclipse.equinox.p2.sdk/feature.xml
+++ b/features/org.eclipse.equinox.p2.sdk/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.equinox.p2.sdk"
       label="%featureName"
-      version="3.11.3300.qualifier"
+      version="3.11.3400.qualifier"
       provider-name="%providerName"
       license-feature="org.eclipse.license"
       license-feature-version="0.0.0">
diff --git a/features/org.eclipse.equinox.p2.user.ui/feature.xml b/features/org.eclipse.equinox.p2.user.ui/feature.xml
index b1b9ae3f6..a667addf8 100644
--- a/features/org.eclipse.equinox.p2.user.ui/feature.xml
+++ b/features/org.eclipse.equinox.p2.user.ui/feature.xml
@@ -2,7 +2,7 @@
 <feature
       id="org.eclipse.equinox.p2.user.ui"
       label="%featureName"
-      version="2.4.3300.qualifier"
+      version="2.4.3400.qualifier"
       provider-name="%providerName"
       license-feature="org.eclipse.license"
       license-feature-version="0.0.0">
-- 
2.55.0

Further information are available in Common Build Issues - Missing version increments.

@subyssurendran666

subyssurendran666 commented Aug 30, 2026

Copy link
Copy Markdown
Contributor Author
screen-recording-2026-09-09-at-30823-pm_ilLihrM9.mp4

In light of the discussions in the parent issue, the functionality has changed slightly: selecting two snapshots now compares them inline, replacing the old Compare button and pop-up dialog.

@subyssurendran666
subyssurendran666 force-pushed the installation-history-snapshot-contents_1116 branch from 12a859b to 5961d70 Compare August 30, 2026 14:39
@subyssurendran666

Copy link
Copy Markdown
Contributor Author

@merks could you please re-review this PR when you have some time ?

@merks

merks commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Yes, though time is hard to come by with RC2 and the release winding down. Please feel free to remind me if you see no activity in the next 10 days. I don't mind!!

Replace the full snapshot contents view with a focused diff that groups
user-visible changes into Installed, Updated, and Removed sections,
showing old and new versions side by side for updated plug-ins.
Selecting exactly two snapshots now compares them directly in the same
pane, replacing the old Compare button and pop-up dialog.

Fix: eclipse-equinox#1116
@subyssurendran666
subyssurendran666 force-pushed the installation-history-snapshot-contents_1116 branch from c1286f1 to bcd3f77 Compare September 9, 2026 08:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Installation History page shows full snapshot contents instead of what changed

5 participants