#REFACTORING
authorClaus Gittinger <cg@exept.de>
Wed, 25 Nov 2015 18:54:13 +0100
changeset 3926 b40b391c71b6
parent 3925 f854446868e2
child 3927 d9e330efeb37
#REFACTORING class: SourceCodeManagerUtilities added: #compareProject:withRepositoryVersionFrom:extensionsOnly: #diffSetOfProject:againstRepositoryVersionFrom:extensionsOnly: #diffSetOfProject:againstRepositoryVersionFrom:orTag:extensionsOnly: changed: #compareProject:withRepositoryVersionFrom: #compareProject:withRepositoryVersionTaggedAs: #diffSetOfProject:againstRepositoryVersionFrom: #diffSetOfProject:againstRepositoryVersionFrom:orTag:
SourceCodeManagerUtilities.st
--- a/SourceCodeManagerUtilities.st	Thu Nov 19 17:25:38 2015 +0100
+++ b/SourceCodeManagerUtilities.st	Wed Nov 25 18:54:13 2015 +0100
@@ -448,7 +448,16 @@
 
     self obsoleteMethodWarning: 'Please use instance protocol (SourceCodeManagerUtilities default doSomething)'.
 
-    ^self default compareProject:aProject withRepositoryVersionFrom:aDateOrNilForNewest
+    ^self compareProject:aProject withRepositoryVersionFrom:aDateOrNilForNewest extensionsOnly:false
+!
+
+compareProject:aProject withRepositoryVersionFrom:aDateOrNilForNewest extensionsOnly:extensionsOnly
+
+    <resource: #obsolete>
+
+    self obsoleteMethodWarning: 'Please use instance protocol (SourceCodeManagerUtilities default doSomething)'.
+
+    ^self default compareProject:aProject withRepositoryVersionFrom:aDateOrNilForNewest extensionsOnly:extensionsOnly
 !
 
 compareProjectWithRepository:aProject
@@ -484,7 +493,19 @@
 
     self obsoleteMethodWarning: 'Please use instance protocol (SourceCodeManagerUtilities default doSomething)'.
 
-    ^self default diffSetOfProject:aProject againstRepositoryVersionFrom:aDateOrNilForNewest
+    ^self diffSetOfProject:aProject againstRepositoryVersionFrom:aDateOrNilForNewest extensionsOnly:false
+!
+
+diffSetOfProject:aProject againstRepositoryVersionFrom:aDateOrNilForNewest extensionsOnly:extensionsOnly
+
+    <resource: #obsolete>
+
+    self obsoleteMethodWarning: 'Please use instance protocol (SourceCodeManagerUtilities default doSomething)'.
+
+    ^self default 
+        diffSetOfProject:aProject 
+        againstRepositoryVersionFrom:aDateOrNilForNewest 
+        extensionsOnly:extensionsOnly
 !
 
 ensureCorrectVersionMethodsInClass:aClass usingManager:aManager
@@ -2385,9 +2406,13 @@
 !
 
 compareProject:aProject withRepositoryVersionFrom:aDateOrNilForNewest
+    ^ self compareProject:aProject withRepositoryVersionFrom:aDateOrNilForNewest extensionsOnly:false
+!
+
+compareProject:aProject withRepositoryVersionFrom:aDateOrNilForNewest extensionsOnly:extensionsOnly
     |diffSet|
 
-    diffSet := self diffSetOfProject:aProject againstRepositoryVersionFrom:aDateOrNilForNewest.
+    diffSet := self diffSetOfProject:aProject againstRepositoryVersionFrom:aDateOrNilForNewest extensionsOnly:extensionsOnly.
     VersionDiffBrowser 
         openOnDiffSet:diffSet 
         labelA:'Repository' 
@@ -2406,7 +2431,7 @@
 
     VersionDiffBrowser 
         openOnDiffSet:diffSet 
-        labelA:'Repository ("',aSymbolicName,'")' 
+        labelA:'Repository ("',(aSymbolicName?'newest'),'")' 
         labelB:'Image' 
         title:('Differences of %1' bindWith:aProject)
         ignoreExtensions:true
@@ -2789,16 +2814,34 @@
 !
 
 diffSetOfProject:aProject againstRepositoryVersionFrom:aDateOrNilForNewest
+    ^ self diffSetOfProject:aProject againstRepositoryVersionFrom:aDateOrNilForNewest extensionsOnly:false
+!
+
+diffSetOfProject:aProject againstRepositoryVersionFrom:aDateOrNilForNewest extensionsOnly:extensionsOnly
     ^ self
         diffSetOfProject:aProject 
         againstRepositoryVersionFrom:aDateOrNilForNewest
         orTag:nil
+        extensionsOnly:extensionsOnly
 !
 
 diffSetOfProject:aProject againstRepositoryVersionFrom:aDateOrNilForNewest orTag:aTagOrNil
     "return a diffset against either the newest (head), or the version at a particular date,
      or a the version with a particular tag."
 
+    ^ self
+        diffSetOfProject:aProject 
+        againstRepositoryVersionFrom:aDateOrNilForNewest 
+        orTag:aTagOrNil 
+        extensionsOnly:false
+
+    "Modified: / 01-11-2010 / 21:02:52 / cg"
+!
+
+diffSetOfProject:aProject againstRepositoryVersionFrom:aDateOrNilForNewest orTag:aTagOrNil extensionsOnly:extensionsOnly
+    "return a diffset against either the newest (head), or the version at a particular date,
+     or a the version with a particular tag."
+
     |classesInImage filesInImage module directory perProjectInfo 
      classesNotInRepository filesNotInImage classesDeletedInRepository
      classesModifiedInImage classesNotReallyModified classesReallyModified classesNewerInRepository 
@@ -2881,7 +2924,10 @@
         extensionsInRepository := versionMethodsAndDoitsRejected value:extensionsInRepository.
     ] value.
     extensionDiffs := extensionsInRepository diffSetsAgainst:extensionsInImage.
-
+    extensionsOnly ifTrue:[
+        ^ extensionDiffs
+    ].
+    
     diffSet := extensionDiffs copy.
 
     (aDateOrNilForNewest isNil and:[aTagOrNil isNil]) ifTrue:[