--- a/MCRepositoryBrowser.st Wed Apr 15 06:40:20 2015 +0100
+++ b/MCRepositoryBrowser.st Wed Apr 15 11:26:04 2015 +0100
@@ -1211,23 +1211,44 @@
versionCompareWithImage
- | version snapshot |
+ | version package snapshot snapshotCS packageCS diffset diffCS |
self withWaitCursorDo:[
version := self selectedVersionAsMCVersion.
version isNil ifTrue:[ ^ self ].
snapshot := version snapshot.
- (Tools::ChangeSetBrowser2
- on: (snapshot asChangeSet name:('Diff for: ',version fileName))
- label: version info name)
+ snapshotCS := snapshot asChangeSet.
+ snapshotCS name: version info name.
+ ProjectDefinition allSubclassesDo:[ :def |
+ ((def class compiledMethodAt: #monticelloName) notNil and:[
+ def monticelloName = version package name]) ifTrue:[
+ package := def package.
+ ].
+ ].
+ package := Dialog requestProject:(resources string: 'Package to compare with') initialAnswer:package suggestions: nil.
+ package isNil ifTrue:[ ^ self ].
+ packageCS := ChangeSet forPackage: package.
+ "/ Remove St/X specific method and classes (used for package management)
+ packageCS := packageCS reject:[:chg |
+ chg changeClass theNonMetaclass isProjectDefinition or:[ chg isMethodDefinitionChange and:[ AbstractSourceCodeManager isVersionMethodSelector: chg selector ]]
+ ].
+ diffset := snapshotCS diffSetsAgainst: packageCS.
+ diffCS := ChangeSet new.
+ diffCS addAll: (diffset onlyInReceiver).
+ diffCS addAll: (diffset changed collect:[:pair | pair first ]).
+ diffCS addAll: (diffset onlyInArg collect:[ :chg | chg asAntiChange ]).
+ diffCS name: (resources string: 'Diffs between %1 (MC version) and %2 (in image)' with: version info name with: package).
+ (Tools::ChangeSetBrowser2 on: diffCS)
beOneColumn;
showSame: false;
targetNamespace:targetNamespace;
targetPackage:targetPackage;
- open
+ allowRemove: true;
+ open
].
- "Modified: / 01-11-2014 / 00:04:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 15-04-2015 / 10:50:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+ "Modified: / 15-04-2015 / 10:13:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
!
versionInspect
@@ -1366,6 +1387,11 @@
^ '$Header: /cvs/stx/stx/goodies/monticello/MCRepositoryBrowser.st,v 1.38 2015-02-09 13:57:08 cg Exp $'
!
+version_HG
+
+ ^ '$Changeset: <not expanded> $'
+!
+
version_SVN
^ '$Id: MCRepositoryBrowser.st,v 1.38 2015-02-09 13:57:08 cg Exp $'
! !