class: SourceCodeManagerUtilitiesForContainerBasedManagers
authorClaus Gittinger <cg@exept.de>
Tue, 02 Apr 2013 22:48:44 +0200
changeset 3196 d91dbd26f40c
parent 3195 5ce601cd8a45
child 3197 e7da5ac31b96
class: SourceCodeManagerUtilitiesForContainerBasedManagers changed: #checkinPackage:classes:extensions:buildSupport:askForMethodsInOtherPackages:
SourceCodeManagerUtilitiesForContainerBasedManagers.st
--- a/SourceCodeManagerUtilitiesForContainerBasedManagers.st	Tue Apr 02 21:41:47 2013 +0200
+++ b/SourceCodeManagerUtilitiesForContainerBasedManagers.st	Tue Apr 02 22:48:44 2013 +0200
@@ -493,7 +493,7 @@
 !
 
 checkinPackage:packageToCheckIn classes:doClasses extensions:doExtensions buildSupport:doBuild askForMethodsInOtherPackages:askForMethodsInOtherPackages
-    |mgr classesToCheckIn methodsToCheckIn
+    |mgr classesToCheckIn methodsToCheckIn methodsInPrjDef
      methodsInOtherPackages looseMethods otherPackages
      msg classesInChangeSet newClasses checkinInfo originalCheckinInfo classesToTag|
 
@@ -567,8 +567,23 @@
 
             checkinInfo validateConsistency ifTrue:[
                 self validateConsistencyOfPackage:packageToCheckIn doClasses:doClasses doExtensions:doExtensions.
-                "/ could have changed/recompiled methods
-                methodsToCheckIn := packageToCheckIn asPackageId projectDefinitionClass extensionMethods
+                "/ could have changed/recompiled methods...
+                "/ mhmh - should we checkin what is specified in the prj-def,
+                "/ or what is actually present in the image (in case user did not repair)???
+                
+                methodsInPrjDef  := packageToCheckIn asPackageId projectDefinitionClass extensionMethods.
+                methodsInPrjDef := methodsInPrjDef reject:[:m | m isNil].
+                methodsInPrjDef asSet ~= methodsToCheckIn asSet ifTrue:[
+                    (Dialog 
+                        confirm:('Set of methods in image is different from what is specified in the project definition.\Check in image methods (%1) or definition methods (%2)?'
+                                        bindWith: methodsToCheckIn size
+                                        with: methodsInPrjDef size)
+                        yesLabel:'Image Methods' 
+                        noLabel:'Definition Methods'
+                    ) ifFalse:[
+                        methodsToCheckIn := methodsInPrjDef.
+                    ].
+                ].
             ].
 
             (self
@@ -733,10 +748,10 @@
 !SourceCodeManagerUtilitiesForContainerBasedManagers class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic3/SourceCodeManagerUtilitiesForContainerBasedManagers.st,v 1.8 2013-03-31 00:27:16 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/SourceCodeManagerUtilitiesForContainerBasedManagers.st,v 1.9 2013-04-02 20:48:44 cg Exp $'
 !
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libbasic3/SourceCodeManagerUtilitiesForContainerBasedManagers.st,v 1.8 2013-03-31 00:27:16 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/SourceCodeManagerUtilitiesForContainerBasedManagers.st,v 1.9 2013-04-02 20:48:44 cg Exp $'
 ! !