common/SCMAbstractCommitTask.st
changeset 471 44664f7f71c5
parent 408 9b24602affa1
child 472 e037e301b4e5
--- a/common/SCMAbstractCommitTask.st	Sat Nov 15 00:12:10 2014 +0000
+++ b/common/SCMAbstractCommitTask.st	Sat Nov 15 17:17:02 2014 +0000
@@ -242,17 +242,57 @@
     self isPackageCommit ifTrue:[
         packages do:[:each |
             each isVirtual ifFalse: [ 
-               (ChangeSet current)
-                   condenseChangesForPackageAfterCommit:each name;
-                   condenseChangesForExtensionsInPackage:each name;
-                   flushChangedClassesCache;
-                   yourself.
+               self doShrinkChangesFor: each.
             ]
         ]
     ].
 
     "Created: / 15-11-2012 / 09:41:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 27-02-2014 / 22:54:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 15-11-2014 / 00:37:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+doShrinkChangesFor: package
+    paths isNil ifTrue:[ 
+        (ChangeSet current)
+           condenseChangesForPackageAfterCommit:package name;
+           condenseChangesForExtensionsInPackage:package name;
+           flushChangedClassesCache;
+            yourself.
+    ] ifFalse:[            
+        | root commitedClasses commitedExtensions |
+
+        "/ paths is list of !!!!!!absolute filenames!!!!!!, so we have to construct full name
+        "/ furtunately, that's easy...
+        root := temporaryWorkingCopyRoot asFilename.
+
+        commitedClasses := Set new.
+        package classes do:[:class | 
+            | container |
+
+            container := (root / (package containerNameForClass: class)) pathName.
+            (paths includes: container) ifTrue:[ 
+                commitedClasses add: class.
+            ].
+        ].
+
+        commitedExtensions := #().
+        (paths includes: ((root / package containerNameForExtensions) pathName)) ifTrue:[ 
+            commitedExtensions := package extensions.
+        ].
+
+        commitedClasses do:[:each |  
+            ChangeSet current condenseChangesForClass: each.    
+        ].
+        commitedExtensions do:[:each |
+            ChangeSet current condenseChangesForClass: each mclass selector: each selector.    
+        ]
+
+
+
+    ].
+
+    "Created: / 15-11-2014 / 00:37:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 15-11-2014 / 01:46:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !SCMAbstractCommitTask methodsFor:'queries'!