added:
#compareProject:withRepositoryVersionTaggedAs:
#diffSetOfProject:againstRepositoryVersionFrom:orTag:
#diffSetOfProject:againstRepositoryVersionTaggedAs:
changed: #diffSetOfProject:againstRepositoryVersionFrom:
--- 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 $'
! !