added:
authorClaus Gittinger <cg@exept.de>
Tue, 30 Oct 2012 02:10:43 +0100
changeset 2939 f7838209baad
parent 2938 3d21bf90f59a
child 2940 a81457cc5d01
added: #compareProject:withRepositoryVersionTaggedAs: #diffSetOfProject:againstRepositoryVersionFrom:orTag: #diffSetOfProject:againstRepositoryVersionTaggedAs: changed: #diffSetOfProject:againstRepositoryVersionFrom:
SourceCodeManagerUtilities.st
--- a/SourceCodeManagerUtilities.st	Mon Oct 29 19:12:00 2012 +0100
+++ b/SourceCodeManagerUtilities.st	Tue Oct 30 02:10:43 2012 +0100
@@ -2023,6 +2023,21 @@
     "Modified: / 12-09-2011 / 11:56:01 / cg"
 !
 
+compareProject:aProject withRepositoryVersionTaggedAs:aSymbolicName
+    |diffSet|
+
+    diffSet := self diffSetOfProject:aProject againstRepositoryVersionTaggedAs:aSymbolicName.
+
+    VersionDiffBrowser 
+        openOnDiffSet:diffSet 
+        labelA:'Repository ("',aSymbolicName,'")' 
+        labelB:'Image' 
+        title:('Differences of %1' bindWith:aProject)
+        ignoreExtensions:false.
+
+    "Modified: / 12-09-2011 / 11:56:01 / cg"
+!
+
 compareProjectWithRepository:aProject
     ^ self compareProject:aProject withRepositoryVersionFrom:nil
 !
@@ -2397,6 +2412,16 @@
 !
 
 diffSetOfProject:aProject againstRepositoryVersionFrom:aDateOrNilForNewest
+    ^ self
+        diffSetOfProject:aProject 
+        againstRepositoryVersionFrom:aDateOrNilForNewest
+        orTag:nil
+!
+
+diffSetOfProject:aProject againstRepositoryVersionFrom:aDateOrNilForNewest orTag:aTagOrNil
+    "return a diffset agains either the newest (head), or the version at a particular date,
+     or a particular tagged version."
+
     |classesInImage filesInImage module directory perProjectInfo 
      classesNotInRepository filesNotInImage classesDeletedInRepository
      classesModifiedInImage classesNotReallyModified classesReallyModified classesModifiedInRepository 
@@ -2409,7 +2434,12 @@
     module := aProject asPackageId module.
     directory := aProject asPackageId directory.
 
-    perProjectInfo := SourceCodeManager revisionsInModule:module directory:directory fromDate:aDateOrNilForNewest.
+self halt.
+    (aDateOrNilForNewest isNil and:[ aTagOrNil notNil ]) ifTrue:[
+        perProjectInfo := SourceCodeManager revisionsInModule:module directory:directory taggedAs:aTagOrNil.
+    ] ifFalse:[
+        perProjectInfo := SourceCodeManager revisionsInModule:module directory:directory fromDate:aDateOrNilForNewest.
+    ].
     perProjectInfo := perProjectInfo ? #().
     perProjectInfo := perProjectInfo select:[:info | info key asFilename hasSuffix:'st'].
     perProjectInfo := Dictionary withAssociations:perProjectInfo.
@@ -2459,7 +2489,7 @@
 
     diffSet := extensionDiffs copy.
 
-    aDateOrNilForNewest isNil ifTrue:[
+    (aDateOrNilForNewest isNil and:[aTagOrNil isNil]) ifTrue:[
         "/ we could do the same as above for each class.
         "/ however - as we do have change-info and revision info, we can avoid checking out
         "/ for all classes which are not changed and which have the same version info.
@@ -2590,7 +2620,7 @@
             doCleanup := false.
             box := Dialog
                 forRequestText:(resources 
-                                    stringWithCRs:'The following classes from %1 are equal to the repository version.\\Remove entries from the changeSet ?'
+                                    stringWithCRs:'The following classes from %1 are equal to the repository version.\\Remove entries from the changeSet?'
                                     with:aProject allBold) 
                 editViewClass:ListView
                 lines:10 columns:20 
@@ -2622,6 +2652,13 @@
     "Modified: / 01-11-2010 / 21:02:52 / cg"
 !
 
+diffSetOfProject:aProject againstRepositoryVersionTaggedAs:symbolicName
+    ^ self
+        diffSetOfProject:aProject 
+        againstRepositoryVersionFrom:nil
+        orTag:symbolicName
+!
+
 ensureCorrectVersionMethodsInClass:aClass usingManager:aManager
     |theMetaclass src newSrc versionMethodName oldVersionMethodName|
 
@@ -3759,9 +3796,9 @@
 !SourceCodeManagerUtilities class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic3/SourceCodeManagerUtilities.st,v 1.256 2012-09-26 16:33:42 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/SourceCodeManagerUtilities.st,v 1.257 2012-10-30 01:10:43 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic3/SourceCodeManagerUtilities.st,v 1.256 2012-09-26 16:33:42 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/SourceCodeManagerUtilities.st,v 1.257 2012-10-30 01:10:43 cg Exp $'
 ! !