Installation History shows full snapshot instead of what changed - #1117
Conversation
Great, thanks for looking at that, I've missed Installation diff so many times. |
There was a problem hiding this comment.
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,
SimpleOptionalTest5installsA1.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
previousIUnull. 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.
Test Results 18 files ±0 18 suites ±0 27m 24s ⏱️ - 2m 4s 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.♻️ This comment has been updated with latest results. |
|
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. |
1bf92ae to
e8411c4
Compare
|
This pull request changes some projects for the first time in this development cycle. 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 patchFurther information are available in Common Build Issues - Missing version increments. |
screen-recording-2026-09-09-at-30823-pm_ilLihrM9.mp4In 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. |
12a859b to
5961d70
Compare
|
@merks could you please re-review this PR when you have some time ? |
|
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
c1286f1 to
bcd3f77
Compare
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:
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