Fixed regression for selective class commit.
authorJan Vrany <jan.vrany@fit.cvut.cz>
Thu, 01 May 2014 10:22:04 +0100
changeset 426 1933163ba3bb
parent 425 4ac00477f669
child 431 5bc7ac796e5e
Fixed regression for selective class commit. After a refactoring to support selective commit dies not work as it called obsoleted method #containersToFileOut. This commits re-implements this method and adds a number of tests to cover this issue.
common/SCMAbstractFileoutLikeTask.st
mercurial/HGStXTests.st
--- a/common/SCMAbstractFileoutLikeTask.st	Sun Apr 27 11:12:27 2014 +0100
+++ b/common/SCMAbstractFileoutLikeTask.st	Thu May 01 10:22:04 2014 +0100
@@ -246,8 +246,6 @@
     "Created: / 21-02-2014 / 23:01:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-
-
 doFileOut
     "Fileouts everything to the working copy"
 
@@ -541,20 +539,6 @@
 
 !SCMAbstractFileoutLikeTask methodsFor:'private'!
 
-classesToFileOut
-
-    self shouldNotImplement.
-    suppressClasses == true ifTrue:[^#()].
-
-    ^ self package classesFiltered:
-	    [:class |
-	    class isLoaded and: [ classes isNil or: [ classes includes: class ] ] ]
-
-    "Created: / 23-03-2009 / 12:08:24 / Jan Vrany <vranyj1@fel.cvut.cz>"
-    "Modified: / 11-06-2009 / 18:17:38 / Jan Vrany <vranyj1@fel.cvut.cz>"
-    "Modified: / 22-02-2014 / 22:51:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
 classesToFileOutFor: package
 
     suppressClasses == true ifTrue:[^#()].
@@ -568,10 +552,18 @@
 !
 
 containersToFileOut
-    self shouldNotImplement
+    ^ OrderedCollection streamContents: [ :s |
+        packages do:[:each | 
+            each isVirtual ifFalse: [ 
+                | containers |
+                containers := (self containersToFileOutFor: each) collect:[ :container | each repositoryRoot , Filename separator , container ].
+                s nextPutAll: containers.
+            ] 
+        ]             
+    ].
 
     "Created: / 14-05-2009 / 11:35:05 / Jan Vrany <vranyj1@fel.cvut.cz>"
-    "Modified: / 22-02-2014 / 22:50:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 01-05-2014 / 10:07:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 containersToFileOutFor: package
@@ -649,9 +641,7 @@
     "Created: / 24-06-2009 / 19:04:48 / Jan Vrany <vranyj1@fel.cvut.cz>"
     "Modified: / 19-08-2009 / 13:54:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
     "Modified: / 03-03-2014 / 09:18:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
- !
+! !
 
 !SCMAbstractFileoutLikeTask methodsFor:'queries'!
 
@@ -676,3 +666,4 @@
 version_SVN
     ^ '§Id::                                                                                                                        §'
 ! !
+
--- a/mercurial/HGStXTests.st	Sun Apr 27 11:12:27 2014 +0100
+++ b/mercurial/HGStXTests.st	Thu May 01 10:22:04 2014 +0100
@@ -1637,6 +1637,73 @@
     self assert: ((cs / 'bc.mak') contents asString includesString: 'MockHGP1Bar') not.
 
     "Created: / 02-04-2014 / 14:30:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_commit_19a
+    "
+        Simple selective commit
+    "
+
+    | repo pm ct |
+
+    repo := self repositoryNamed: 'mocks/hg/p1'.
+    self assert: (Smalltalk loadPackage:'mocks:hg/p1').
+    self dumpRepositoryLog: repo.
+
+    self deny:   ((repo @ 1 / 'MockHGP1Bar.st') contents asString includesString:'zork ^ 1').
+
+    ((Smalltalk at: #MockHGP1Bar) compile:'zork ^ 1' classified:'test') package: (Smalltalk at: #MockHGP1Bar) package.
+    pm := HGPackageWorkingCopy named: 'mocks:hg/p1'.
+    ct := pm commitTask.
+    self assert: ct isCommitingNewHead not.
+    ct message:'test_commit_01'.
+    ct classes: (Array with: (Smalltalk at: #MockHGP1Bar)).
+    ct do.
+    self dumpRepositoryLog: repo.
+
+    "
+        repo workingCopy browse
+    "
+    self assert: ((repo @ 2 / 'MockHGP1Bar.st') contents asString includesString:'zork ^ 1').
+    self assert: (Smalltalk at:#mocks_hg_p1) hgLogicalRevision revno = 2.
+
+    "Created: / 01-05-2014 / 09:14:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_commit_19b
+    "
+        Simple selective commit - modify two classes
+        but commit only one.
+    "
+
+    | repo pm ct |
+
+    repo := self repositoryNamed: 'mocks/hg/p1'.
+    self assert: (Smalltalk loadPackage:'mocks:hg/p1').
+    self dumpRepositoryLog: repo.
+
+    self deny:   ((repo @ 1 / 'MockHGP1Bar.st') contents asString includesString:'zork ^ 1').
+    self deny:   ((repo @ 1 / 'MockHGP1Foo.st') contents asString includesString:'zork ^ 1').
+
+    ((Smalltalk at: #MockHGP1Bar) compile:'zork ^ 1' classified:'test') package: (Smalltalk at: #MockHGP1Bar) package.
+    ((Smalltalk at: #MockHGP1Foo) compile:'zork ^ 1' classified:'test') package: (Smalltalk at: #MockHGP1Foo) package.
+    pm := HGPackageWorkingCopy named: 'mocks:hg/p1'.
+    ct := pm commitTask.
+    self assert: ct isCommitingNewHead not.
+    ct message:'test_commit_01'.
+    ct classes: (Array with: (Smalltalk at: #MockHGP1Bar)).
+    ct do.
+    self dumpRepositoryLog: repo.
+
+    "
+        repo workingCopy browse
+    "
+    self assert: ((repo @ 2 / 'MockHGP1Bar.st') contents asString includesString:'zork ^ 1').
+    self assert: ((repo @ 2 / 'MockHGP1Foo.st') contents asString includesString:'zork ^ 1') not.
+    self assert: ((repo @ 2) changes size = 1).
+    self assert: (Smalltalk at:#mocks_hg_p1) hgLogicalRevision revno = 2.
+
+    "Created: / 01-05-2014 / 09:16:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !HGStXTests methodsFor:'tests - commit - nested'!
@@ -2142,6 +2209,391 @@
 
     "Created: / 26-02-2014 / 22:56:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 05-03-2014 / 21:46:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_commit_nested_06a_1
+    "
+    Nested packages
+      mocks:hg/p2
+      mocks:hg/p2/n1
+      mocks:hg/p2/n2
+
+    1) load all of them
+    2) modify MocksHgP2Foo & (selectively) commit MocksHgP2Foo
+    3) check that n1 & n2 has same logical revision as p1.
+    "
+
+    | repo pmP2 pmP2N1 pmP2N2 ctP2 cs |
+
+    repo := self repositoryNamed: 'mocks/hg/p2'.
+    self assert: (Smalltalk loadPackage:'mocks:hg/p2').
+    self assert: (Smalltalk loadPackage:'mocks:hg/p2/n1').
+    self assert: (Smalltalk loadPackage:'mocks:hg/p2/n2').
+    pmP2   := HGPackageWorkingCopy named: 'mocks:hg/p2'.
+    pmP2N1 := HGPackageWorkingCopy named: 'mocks:hg/p2/n1'.
+    pmP2N2 := HGPackageWorkingCopy named: 'mocks:hg/p2/n2'.
+    self assert: pmP2N1 revision = pmP2N2 revision.
+
+    "=== A modifies & commits =============================== "
+    ((Smalltalk at: #MocksHgP2Foo) compile:'zork ^ 2' classified:'test') package: (Smalltalk at: #MocksHgP2Foo) package.
+
+    ctP2 := pmP2 commitTask.
+    ctP2 classes: (Array with: (Smalltalk at: #MocksHgP2Foo)).
+    ctP2 message:'test_commit_nested_06a 1'.
+    ctP2 do.
+
+    self assert: pmP2 revision = pmP2N1  revision.
+    self assert: pmP2 revision = pmP2N2  revision.
+
+    cs := repo @ 4.
+    self assert: cs changes size == 1.
+    self assert: cs changes anElement path = 'MocksHgP2Foo.st'.
+    
+
+
+    "
+    repo workingCopy browse
+    "
+
+    "Created: / 01-05-2014 / 00:07:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_commit_nested_06a_2
+    "
+    Nested packages
+      mocks:hg/p2
+      mocks:hg/p2/n1
+      mocks:hg/p2/n2
+
+    1) load all of them
+    2) modify MocksHgP2Foo & (selectively) commit MocksHgP2Foo
+    3) check that n1 & n2 has same logical revision as p1.
+    "
+
+    | repo pmP2 pmP2N1 pmP2N2 ctP2 cs |
+
+    repo := self repositoryNamed: 'mocks/hg/p2'.
+    self assert: (Smalltalk loadPackage:'mocks:hg/p2').
+    self assert: (Smalltalk loadPackage:'mocks:hg/p2/n1').
+    self assert: (Smalltalk loadPackage:'mocks:hg/p2/n2').
+    pmP2   := HGPackageWorkingCopy named: 'mocks:hg/p2'.
+    pmP2N1 := HGPackageWorkingCopy named: 'mocks:hg/p2/n1'.
+    pmP2N2 := HGPackageWorkingCopy named: 'mocks:hg/p2/n2'.
+    self assert: pmP2N1 revision = pmP2N2 revision.
+
+    "=== A modifies & commits =============================== "
+    ((Smalltalk at: #MocksHgP2Foo) compile:'zork ^ 2' classified:'test') package: (Smalltalk at: #MocksHgP2Foo) package.
+    ((Smalltalk at: #mocks_hg_p2) compile:'qux ^ 2' classified:'test') package: (Smalltalk at: #mocks_hg_p2) package.
+
+    ctP2 := pmP2 commitTask.
+    ctP2 classes: (Array with: (Smalltalk at: #MocksHgP2Foo)).
+    ctP2 message:'test_commit_nested_06a 1'.
+    ctP2 do.
+
+    self assert: pmP2 revision = pmP2N1  revision.
+    self assert: pmP2 revision = pmP2N2  revision.
+
+    cs := repo @ 4.
+    self assert: cs changes size == 1.
+    self assert: cs changes anElement path = 'MocksHgP2Foo.st'.
+    
+
+
+    "
+    repo workingCopy browse
+    "
+
+    "Created: / 01-05-2014 / 00:10:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 01-05-2014 / 10:02:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_commit_nested_06b_1
+    "
+    Nested packages
+      mocks:hg/p2
+      mocks:hg/p2/n1
+      mocks:hg/p2/n2
+
+    1) load all of them
+    2) modify MocksHgP2Foo & (selectively) commit MocksHgP2Foo
+    3) check that n1 & n2 has same logical revision as p1.
+    "
+
+    | repo pmP2 pmP2N1 pmP2N2 ctP2 cs |
+
+    repo := self repositoryNamed: 'mocks/hg/p2'.
+    self assert: (Smalltalk loadPackage:'mocks:hg/p2').
+    self assert: (Smalltalk loadPackage:'mocks:hg/p2/n1').
+    self assert: (Smalltalk loadPackage:'mocks:hg/p2/n2').
+    pmP2   := HGPackageWorkingCopy named: 'mocks:hg/p2'.
+    pmP2N1 := HGPackageWorkingCopy named: 'mocks:hg/p2/n1'.
+    pmP2N2 := HGPackageWorkingCopy named: 'mocks:hg/p2/n2'.
+    self assert: pmP2N1 revision = pmP2N2 revision.
+
+    "=== A modifies & commits =============================== "
+    ((Smalltalk at: #MocksHgP2N1Foo) compile:'zork ^ 2' classified:'test') package: (Smalltalk at: #MocksHgP2N1Foo) package.
+
+    ctP2 := pmP2 commitTask.
+    ctP2 classes: (Array with: (Smalltalk at: #MocksHgP2N1Foo)).
+    ctP2 message:'test_commit_nested_06a 1'.
+    ctP2 do.
+
+    self assert: pmP2 revision = pmP2N1  revision.
+    self assert: pmP2 revision = pmP2N2  revision.
+
+    cs := repo @ 4.
+    self assert: cs changes size == 1.
+    self assert: cs changes anElement path = 'n1/MocksHgP2N1Foo.st'.
+    
+
+
+    "
+    repo workingCopy browse
+    "
+
+    "Created: / 01-05-2014 / 09:21:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_commit_nested_06b_2
+    "
+    Nested packages
+      mocks:hg/p2
+      mocks:hg/p2/n1
+      mocks:hg/p2/n2
+
+    1) load all of them
+    2) modify MocksHgP2Foo & (selectively) commit MocksHgP2Foo
+    3) check that n1 & n2 has same logical revision as p1.
+    "
+
+    | repo pmP2 pmP2N1 pmP2N2 ctP2 cs |
+
+    repo := self repositoryNamed: 'mocks/hg/p2'.
+    self assert: (Smalltalk loadPackage:'mocks:hg/p2').
+    self assert: (Smalltalk loadPackage:'mocks:hg/p2/n1').
+    self assert: (Smalltalk loadPackage:'mocks:hg/p2/n2').
+    pmP2   := HGPackageWorkingCopy named: 'mocks:hg/p2'.
+    pmP2N1 := HGPackageWorkingCopy named: 'mocks:hg/p2/n1'.
+    pmP2N2 := HGPackageWorkingCopy named: 'mocks:hg/p2/n2'.
+    self assert: pmP2N1 revision = pmP2N2 revision.
+
+    "=== A modifies & commits =============================== "
+    ((Smalltalk at: #MocksHgP2N1Foo) compile:'zork ^ 2' classified:'test') package: (Smalltalk at: #MocksHgP2N1Foo) package.
+    ((Smalltalk at: #mocks_hg_p2) compile:'qux ^ 2' classified:'test') package: (Smalltalk at: #mocks_hg_p2) package.
+
+    ctP2 := pmP2 commitTask.
+    ctP2 classes: (Array with: (Smalltalk at: #MocksHgP2N1Foo)).
+    ctP2 message:'test_commit_nested_06a 1'.
+    ctP2 do.
+
+    self assert: pmP2 revision = pmP2N1  revision.
+    self assert: pmP2 revision = pmP2N2  revision.
+
+    cs := repo @ 4.
+    self assert: cs changes size == 1.
+    self assert: cs changes anElement path = 'n1/MocksHgP2N1Foo.st'.
+    
+
+
+    "
+    repo workingCopy browse
+    "
+
+    "Created: / 01-05-2014 / 09:21:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_commit_nested_06b_3
+    "
+    Nested packages
+      mocks:hg/p2
+      mocks:hg/p2/n1
+      mocks:hg/p2/n2
+
+    1) load all of them
+    2) modify MocksHgP2Foo & (selectively) commit MocksHgP2Foo
+    3) check that n1 & n2 has same logical revision as p1.
+    "
+
+    | repo pmP2 pmP2N1 pmP2N2 ctP2 cs |
+
+    repo := self repositoryNamed: 'mocks/hg/p2'.
+    self assert: (Smalltalk loadPackage:'mocks:hg/p2').
+    self assert: (Smalltalk loadPackage:'mocks:hg/p2/n1').
+    self assert: (Smalltalk loadPackage:'mocks:hg/p2/n2').
+    pmP2   := HGPackageWorkingCopy named: 'mocks:hg/p2'.
+    pmP2N1 := HGPackageWorkingCopy named: 'mocks:hg/p2/n1'.
+    pmP2N2 := HGPackageWorkingCopy named: 'mocks:hg/p2/n2'.
+    self assert: pmP2N1 revision = pmP2N2 revision.
+
+    "=== A modifies & commits =============================== "
+    ((Smalltalk at: #MocksHgP2N1Foo) compile:'zork ^ 2' classified:'test') package: (Smalltalk at: #MocksHgP2N1Foo) package.
+    ((Smalltalk at: #mocks_hg_p2_n1) compile:'qux ^ 2' classified:'test') package: (Smalltalk at: #mocks_hg_p2_n1) package.
+
+    ctP2 := pmP2 commitTask.
+    ctP2 classes: (Array with: (Smalltalk at: #MocksHgP2N1Foo)).
+    ctP2 message:'test_commit_nested_06a 1'.
+    ctP2 do.
+
+    self assert: pmP2 revision = pmP2N1  revision.
+    self assert: pmP2 revision = pmP2N2  revision.
+
+    cs := repo @ 4.
+    self assert: cs changes size == 1.
+    self assert: cs changes anElement path = 'n1/MocksHgP2N1Foo.st'.
+    
+
+
+    "
+    repo workingCopy browse
+    "
+
+    "Created: / 01-05-2014 / 09:22:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_commit_nested_06b_4
+    "
+    Nested packages
+      mocks:hg/p2
+      mocks:hg/p2/n1
+      mocks:hg/p2/n2
+
+    1) load all of them
+    2) modify MocksHgP2Foo & (selectively) commit MocksHgP2Foo
+    3) check that n1 & n2 has same logical revision as p1.
+    "
+
+    | repo pmP2 pmP2N1 pmP2N2 ctP2 cs |
+
+    repo := self repositoryNamed: 'mocks/hg/p2'.
+    self assert: (Smalltalk loadPackage:'mocks:hg/p2').
+    self assert: (Smalltalk loadPackage:'mocks:hg/p2/n1').
+    self assert: (Smalltalk loadPackage:'mocks:hg/p2/n2').
+    pmP2   := HGPackageWorkingCopy named: 'mocks:hg/p2'.
+    pmP2N1 := HGPackageWorkingCopy named: 'mocks:hg/p2/n1'.
+    pmP2N2 := HGPackageWorkingCopy named: 'mocks:hg/p2/n2'.
+    self assert: pmP2N1 revision = pmP2N2 revision.
+
+    "=== A modifies & commits =============================== "
+    ((Smalltalk at: #MocksHgP2N1Foo) compile:'zork ^ 2' classified:'test') package: (Smalltalk at: #MocksHgP2N1Foo) package.
+    ((Smalltalk at: #MocksHgP2N2Foo) compile:'qux ^ 2' classified:'test') package: (Smalltalk at: #MocksHgP2N2Foo) package.
+
+    ctP2 := pmP2 commitTask.
+    ctP2 classes: (Array with: (Smalltalk at: #MocksHgP2N1Foo)).
+    ctP2 message:'test_commit_nested_06a 1'.
+    ctP2 do.
+
+    self assert: pmP2 revision = pmP2N1  revision.
+    self assert: pmP2 revision = pmP2N2  revision.
+
+    cs := repo @ 4.
+    self assert: cs changes size == 1.
+    self assert: cs changes anElement path = 'n1/MocksHgP2N1Foo.st'.
+    
+
+
+    "
+    repo workingCopy browse
+    "
+
+    "Created: / 01-05-2014 / 09:23:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_commit_nested_06c_1
+    "
+    Nested packages
+      mocks:hg/p2
+      mocks:hg/p2/n1
+      mocks:hg/p2/n2
+
+    1) load all of them
+    2) modify MocksHgP2Foo & (selectively) commit MocksHgP2Foo
+    3) check that n1 & n2 has same logical revision as p1.
+    "
+
+    | repo pmP2 pmP2N1 pmP2N2 ctP2 cs |
+
+    repo := self repositoryNamed: 'mocks/hg/p2'.
+    self assert: (Smalltalk loadPackage:'mocks:hg/p2').
+    self assert: (Smalltalk loadPackage:'mocks:hg/p2/n1').
+    self assert: (Smalltalk loadPackage:'mocks:hg/p2/n2').
+    pmP2   := HGPackageWorkingCopy named: 'mocks:hg/p2'.
+    pmP2N1 := HGPackageWorkingCopy named: 'mocks:hg/p2/n1'.
+    pmP2N2 := HGPackageWorkingCopy named: 'mocks:hg/p2/n2'.
+    self assert: pmP2N1 revision = pmP2N2 revision.
+
+    "=== A modifies & commits =============================== "
+    ((Smalltalk at: #MocksHgP2N1Foo) compile:'zork ^ 2' classified:'test') package: (Smalltalk at: #MocksHgP2N1Foo) package.
+    ((Smalltalk at: #MocksHgP2N2Foo) compile:'qux ^ 2' classified:'test') package: (Smalltalk at: #MocksHgP2N2Foo) package.
+
+    ctP2 := pmP2 commitTask.
+    ctP2 classes: (Array with: (Smalltalk at: #MocksHgP2N1Foo) with: (Smalltalk at: #MocksHgP2N2Foo)).
+    ctP2 message:'test_commit_nested_06a 1'.
+    ctP2 do.
+
+    self assert: pmP2 revision = pmP2N1  revision.
+    self assert: pmP2 revision = pmP2N2  revision.
+
+    cs := repo @ 4.
+    self assert: cs changes size == 2.
+    self assert: (cs changes contains: [:e| e path = 'n1/MocksHgP2N1Foo.st' ]).
+    self assert: (cs changes contains: [:e| e path = 'n2/MocksHgP2N2Foo.st' ]).
+    
+
+
+    "
+    repo workingCopy browse
+    "
+
+    "Created: / 01-05-2014 / 09:25:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_commit_nested_06c_2
+    "
+    Nested packages
+      mocks:hg/p2
+      mocks:hg/p2/n1
+      mocks:hg/p2/n2
+
+    1) load all of them
+    2) modify MocksHgP2N1Foo, MocksHgP2N1Foo & (selectively) commit MocksHgP2N1Foo and MocksHgP2N1Foo
+    3) check that n1 & n2 has same logical revision as p1.
+    "
+
+    | repo pmP2 pmP2N1 pmP2N2 ctP2 cs |
+
+    repo := self repositoryNamed: 'mocks/hg/p2'.
+    self assert: (Smalltalk loadPackage:'mocks:hg/p2').
+    self assert: (Smalltalk loadPackage:'mocks:hg/p2/n1').
+    self assert: (Smalltalk loadPackage:'mocks:hg/p2/n2').
+    pmP2   := HGPackageWorkingCopy named: 'mocks:hg/p2'.
+    pmP2N1 := HGPackageWorkingCopy named: 'mocks:hg/p2/n1'.
+    pmP2N2 := HGPackageWorkingCopy named: 'mocks:hg/p2/n2'.
+    self assert: pmP2N1 revision = pmP2N2 revision.
+
+    "=== A modifies & commits =============================== "
+    ((Smalltalk at: #MocksHgP2N1Foo) compile:'zork ^ 2' classified:'test') package: (Smalltalk at: #MocksHgP2N1Foo) package.
+    ((Smalltalk at: #MocksHgP2N2Foo) compile:'qux ^ 2' classified:'test') package: (Smalltalk at: #MocksHgP2N2Foo) package.
+
+    ctP2 := (pmP2N1 , pmP2N2) commitTask.
+    ctP2 classes: (Array with: (Smalltalk at: #MocksHgP2N1Foo) with: (Smalltalk at: #MocksHgP2N2Foo)).
+    ctP2 message:'test_commit_nested_06a 1'.
+    ctP2 do.
+
+    self assert: pmP2 revision = pmP2N1  revision.
+    self assert: pmP2 revision = pmP2N2  revision.
+
+    cs := repo @ 4.
+    self assert: cs changes size == 2.
+    self assert: (cs changes contains: [:e| e path = 'n1/MocksHgP2N1Foo.st' ]).
+    self assert: (cs changes contains: [:e| e path = 'n2/MocksHgP2N2Foo.st' ]).
+    
+
+
+    "
+    repo workingCopy browse
+    "
+
+    "Created: / 01-05-2014 / 09:25:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !HGStXTests methodsFor:'tests - manager API'!