--- 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'!