mercurial/HGWorkingCopyFile.st
changeset 138 c66a831e131b
parent 136 2d1512dde043
child 140 feab684bc4dc
--- a/mercurial/HGWorkingCopyFile.st	Wed Dec 05 23:57:40 2012 +0000
+++ b/mercurial/HGWorkingCopyFile.st	Thu Dec 06 01:14:57 2012 +0000
@@ -65,54 +65,34 @@
     path := self pathNameRelative.
 
     revisions isNil ifTrue:[
-        | old new detector savpath |
+        | old p |
         old := HGCommand log
                         workingDirectory: wc pathName;
                         path: path;
                         execute.
-        savpath := path.
+        p := path.
         old := old collect: [:id| 
             | cs f |
 
-            f := (cs := wc repository @ id) / path.
+            f := (cs := wc repository @ id) / p.
+
             cs changes do:[:chg|
                 "/Catch renames...
-                (chg isCopied and:[chg path = path]) ifTrue:[
-                    path := chg source.
+                (chg isCopied and:[chg path = p]) ifTrue:[
+                    p := chg source.
                 ]
             ].
             f.
         ].
-        path := savpath.
-        new := OrderedCollection new.
-        detector := [:changeset|
-            | removed copied |
-            savpath := path.
-            removed := false.
-            changeset changes do:[:chg|
-                "/Catch renames...
-                (chg isCopied and:[chg source = path]) ifTrue:[
-                    path := chg path.
-                ].
-                chg path = path ifTrue:[
-                    chg isRemoved ifTrue:[
-                        removed := true
-                    ] ifFalse:[
-                        new add: changeset / path.
-                    ].
-                ]
-            ].
-            removed ifFalse:[
-                changeset childrenDo: detector.
-            ].
-            path := savpath.
-        ].
-        old first changeset childrenDo:detector.
-        revisions := new reverse , old.
+
+        revisions := old.
     ].
-    ^revisions
+    "/older revisions are cached, newer not since this may change...
+
+    ^((wc changeset / path) newer:true) , revisions
 
     "Created: / 05-12-2012 / 19:09:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 06-12-2012 / 00:28:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 status