Change Class>>revision to return logical revision instead of binary revision.
authorJan Vrany <jan.vrany@fit.cvut.cz>
Thu, 01 May 2014 18:11:28 +0100
changeset 431 5bc7ac796e5e
parent 426 1933163ba3bb
child 432 bc7e495c5f4e
Change Class>>revision to return logical revision instead of binary revision. The logical revision is always from class's project definition class. This is more reliable (or, say less confusing) then binary revision. Binary revision is a working copy parent revision at the time particular class has been compiled, not necesarily "last changed revision of the file".
common/Make.proto
common/Make.spec
common/SCMAbstractRevisionInfo.st
common/abbrev.stc
common/bc.mak
common/common.rc
common/libInit.cc
common/stx_libscm_common.st
mercurial/HGRevisionInfo.st
mercurial/HGSourceCodeManager.st
mercurial/Make.proto
mercurial/bc.mak
mercurial/mercurial.rc
--- a/common/Make.proto	Thu May 01 10:22:04 2014 +0100
+++ b/common/Make.proto	Thu May 01 18:11:28 2014 +0100
@@ -150,6 +150,7 @@
 $(OUTDIR)SCMAbstractDialog.$(O) SCMAbstractDialog.$(H): SCMAbstractDialog.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libview2/SimpleDialog.$(H) $(STCHDR)
 $(OUTDIR)SCMAbstractPackageModel.$(O) SCMAbstractPackageModel.$(H): SCMAbstractPackageModel.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SCMAbstractPackageWorkingCopyRegistry.$(O) SCMAbstractPackageWorkingCopyRegistry.$(H): SCMAbstractPackageWorkingCopyRegistry.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)SCMAbstractRevisionInfo.$(O) SCMAbstractRevisionInfo.$(H): SCMAbstractRevisionInfo.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SCMAbstractSourceCodeManager.$(O) SCMAbstractSourceCodeManager.$(H): SCMAbstractSourceCodeManager.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic3/AbstractSourceCodeManager.$(H) $(STCHDR)
 $(OUTDIR)SCMAbstractTask.$(O) SCMAbstractTask.$(H): SCMAbstractTask.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)SCMCodeMonitor.$(O) SCMCodeMonitor.$(H): SCMCodeMonitor.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
--- a/common/Make.spec	Thu May 01 10:22:04 2014 +0100
+++ b/common/Make.spec	Thu May 01 18:11:28 2014 +0100
@@ -53,6 +53,7 @@
 	SCMAbstractDialog \
 	SCMAbstractPackageModel \
 	SCMAbstractPackageWorkingCopyRegistry \
+	SCMAbstractRevisionInfo \
 	SCMAbstractSourceCodeManager \
 	SCMAbstractTask \
 	SCMCodeMonitor \
@@ -77,6 +78,7 @@
     $(OUTDIR_SLASH)SCMAbstractDialog.$(O) \
     $(OUTDIR_SLASH)SCMAbstractPackageModel.$(O) \
     $(OUTDIR_SLASH)SCMAbstractPackageWorkingCopyRegistry.$(O) \
+    $(OUTDIR_SLASH)SCMAbstractRevisionInfo.$(O) \
     $(OUTDIR_SLASH)SCMAbstractSourceCodeManager.$(O) \
     $(OUTDIR_SLASH)SCMAbstractTask.$(O) \
     $(OUTDIR_SLASH)SCMCodeMonitor.$(O) \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/common/SCMAbstractRevisionInfo.st	Thu May 01 18:11:28 2014 +0100
@@ -0,0 +1,134 @@
+"
+stx:libscm - a new source code management library for Smalltalk/X
+Copyright (C) 2012-2013 Jan Vrany
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License. 
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+"
+"{ Package: 'stx:libscm/common' }"
+
+Object subclass:#SCMAbstractRevisionInfo
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SCM-Common-StX'
+!
+
+!SCMAbstractRevisionInfo class methodsFor:'documentation'!
+
+copyright
+"
+stx:libscm - a new source code management library for Smalltalk/X
+Copyright (C) 2012-2013 Jan Vrany
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License. 
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+"
+! !
+
+!SCMAbstractRevisionInfo class methodsFor:'testing'!
+
+isAbstract
+    ^ self == SCMAbstractRevisionInfo
+! !
+
+!SCMAbstractRevisionInfo methodsFor:'accessing'!
+
+at:aKey
+    "backward compatible dictionary-like accessing"
+
+    (self respondsTo:aKey) ifTrue:[
+        ^ self perform:aKey
+    ].
+    ^ self errorKeyNotFound:aKey
+
+    "
+     self new at:#binaryRevision
+     self new at:#foo
+    "
+
+    "Modified: / 22-10-2008 / 20:23:31 / cg"
+!
+
+at:aKey ifAbsent:replacement
+    "backward compatible dictionary-like accessing"
+
+    (self respondsTo:aKey) ifTrue:[
+        ^ (self perform:aKey) ? replacement
+    ].
+    ^ replacement
+
+    "
+     self new at:#binaryRevision
+     self new at:#foo ifAbsent:#bar
+    "
+
+    "Created: / 22-10-2008 / 20:19:42 / cg"
+!
+
+at:aKey put:value
+    "backward compatible dictionary-like accessing"
+
+    (self respondsTo:aKey) ifTrue:[
+        self perform:(aKey,':') asSymbol with:value.
+        ^ value "/ sigh
+    ].
+    ^ self errorKeyNotFound:aKey
+
+    "
+     self new at:#binaryRevision put:#bar
+     self new at:#foo put:#bar
+    "
+
+    "Created: / 22-10-2008 / 20:20:54 / cg"
+! !
+
+!SCMAbstractRevisionInfo methodsFor:'enumerating'!
+
+keys
+    ^ self properties
+
+    "Created: / 01-05-2014 / 16:22:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+keysAndValuesDo:aBlock
+    self properties do:[:nm |
+        aBlock value:(nm asSymbol) value:(self perform:nm asSymbol)
+    ].
+
+    "Created: / 22-10-2008 / 20:48:08 / cg"
+    "Modified: / 01-05-2014 / 16:22:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!SCMAbstractRevisionInfo methodsFor:'private'!
+
+properties
+    "Return a list of properties this revision info provides"
+
+    ^ self subclassResponsibility
+
+    "Modified (comment): / 01-05-2014 / 16:22:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/common/abbrev.stc	Thu May 01 10:22:04 2014 +0100
+++ b/common/abbrev.stc	Thu May 01 18:11:28 2014 +0100
@@ -4,6 +4,7 @@
 SCMAbstractDialog SCMAbstractDialog stx:libscm/common 'SCM-Common-StX-Interface' 1
 SCMAbstractPackageModel SCMAbstractPackageModel stx:libscm/common 'SCM-Common-StX' 0
 SCMAbstractPackageWorkingCopyRegistry SCMAbstractPackageWorkingCopyRegistry stx:libscm/common 'SCM-Common-StX' 1
+SCMAbstractRevisionInfo SCMAbstractRevisionInfo stx:libscm/common 'SCM-Common-StX' 0
 SCMAbstractSourceCodeManager SCMAbstractSourceCodeManager stx:libscm/common 'SCM-Common-StX' 2
 SCMAbstractTask SCMAbstractTask stx:libscm/common 'SCM-Common-StX-Tasks' 0
 SCMCodeMonitor SCMCodeMonitor stx:libscm/common 'SCM-Common-StX' 0
--- a/common/bc.mak	Thu May 01 10:22:04 2014 +0100
+++ b/common/bc.mak	Thu May 01 18:11:28 2014 +0100
@@ -79,6 +79,7 @@
 $(OUTDIR)SCMAbstractDialog.$(O) SCMAbstractDialog.$(H): SCMAbstractDialog.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libview2\SimpleDialog.$(H) $(STCHDR)
 $(OUTDIR)SCMAbstractPackageModel.$(O) SCMAbstractPackageModel.$(H): SCMAbstractPackageModel.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SCMAbstractPackageWorkingCopyRegistry.$(O) SCMAbstractPackageWorkingCopyRegistry.$(H): SCMAbstractPackageWorkingCopyRegistry.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)SCMAbstractRevisionInfo.$(O) SCMAbstractRevisionInfo.$(H): SCMAbstractRevisionInfo.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SCMAbstractSourceCodeManager.$(O) SCMAbstractSourceCodeManager.$(H): SCMAbstractSourceCodeManager.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic3\AbstractSourceCodeManager.$(H) $(STCHDR)
 $(OUTDIR)SCMAbstractTask.$(O) SCMAbstractTask.$(H): SCMAbstractTask.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)SCMCodeMonitor.$(O) SCMCodeMonitor.$(H): SCMCodeMonitor.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
--- a/common/common.rc	Thu May 01 10:22:04 2014 +0100
+++ b/common/common.rc	Thu May 01 18:11:28 2014 +0100
@@ -25,7 +25,7 @@
       VALUE "LegalCopyright", "Copyright Jan Vrany 2012\0"
       VALUE "ProductName", "Smalltalk/X SCM Support Library\0"
       VALUE "ProductVersion", "6.2.3.0\0"
-      VALUE "ProductDate", "Fri, 14 Mar 2014 10:10:19 GMT\0"
+      VALUE "ProductDate", "Thu, 01 May 2014 16:12:58 GMT\0"
     END
 
   END
--- a/common/libInit.cc	Thu May 01 10:22:04 2014 +0100
+++ b/common/libInit.cc	Thu May 01 18:11:28 2014 +0100
@@ -30,6 +30,7 @@
 _SCMAbstractDialog_Init(pass,__pRT__,snd);
 _SCMAbstractPackageModel_Init(pass,__pRT__,snd);
 _SCMAbstractPackageWorkingCopyRegistry_Init(pass,__pRT__,snd);
+_SCMAbstractRevisionInfo_Init(pass,__pRT__,snd);
 _SCMAbstractSourceCodeManager_Init(pass,__pRT__,snd);
 _SCMAbstractTask_Init(pass,__pRT__,snd);
 _SCMCodeMonitor_Init(pass,__pRT__,snd);
--- a/common/stx_libscm_common.st	Thu May 01 10:22:04 2014 +0100
+++ b/common/stx_libscm_common.st	Thu May 01 18:11:28 2014 +0100
@@ -146,6 +146,7 @@
         SCMAbstractDialog
         SCMAbstractPackageModel
         SCMAbstractPackageWorkingCopyRegistry
+        SCMAbstractRevisionInfo
         SCMAbstractSourceCodeManager
         SCMAbstractTask
         SCMCodeMonitor
--- a/mercurial/HGRevisionInfo.st	Thu May 01 10:22:04 2014 +0100
+++ b/mercurial/HGRevisionInfo.st	Thu May 01 18:11:28 2014 +0100
@@ -18,13 +18,20 @@
 "
 "{ Package: 'stx:libscm/mercurial' }"
 
-Object subclass:#HGRevisionInfo
+SCMAbstractRevisionInfo subclass:#HGRevisionInfo
 	instanceVariableNames:'changesetId className'
 	classVariableNames:''
 	poolDictionaries:''
 	category:'SCM-Mercurial-StX'
 !
 
+SCMAbstractRevisionInfo subclass:#RevisionInfoNotExpanded
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	privateIn:HGRevisionInfo
+!
+
 !HGRevisionInfo class methodsFor:'documentation'!
 
 copyright
@@ -73,14 +80,14 @@
     s skipSeparators.
     s peek == $H ifTrue:[
         "Some rubbish $Header$?"
-        (s next: 6) ~= 'Header' ifTrue:[^aBlock value].
+        (s next: 6) ~= 'Header' ifTrue:[ ^aBlock value ].
         id := HGChangesetId null.
     ] ifFalse:[
-        (s next: 10) ~= 'Changeset:' ifTrue:[^aBlock value].
+        (s next: 10) ~= 'Changeset:' ifTrue:[ ^aBlock value ].
         s skipSeparators.
         s peek == $< ifTrue:[
-            "/Not expanded...
-            id := HGChangesetId null.
+            (s next: 14) ~= '<not expanded>' ifTrue:[ ^ aBlock value ].
+            ^ RevisionInfoNotExpanded new.
         ] ifFalse:[
             id := HGChangesetId fromHexString: (s next: 40).    
         ].
@@ -88,60 +95,11 @@
     ^self new changesetId: id
 
     "Created: / 20-11-2012 / 00:33:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 04-12-2012 / 13:17:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (format): / 01-05-2014 / 17:10:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !HGRevisionInfo methodsFor:'accessing'!
 
-at:aKey
-    "backward compatible dictionary-like accessing"
-
-    (self respondsTo:aKey) ifTrue:[
-        ^ self perform:aKey
-    ].
-    ^ self errorKeyNotFound:aKey
-
-    "
-     self new at:#binaryRevision
-     self new at:#foo
-    "
-
-    "Modified: / 22-10-2008 / 20:23:31 / cg"
-!
-
-at:aKey ifAbsent:replacement
-    "backward compatible dictionary-like accessing"
-
-    (self respondsTo:aKey) ifTrue:[
-        ^ (self perform:aKey) ? replacement
-    ].
-    ^ replacement
-
-    "
-     self new at:#binaryRevision
-     self new at:#foo ifAbsent:#bar
-    "
-
-    "Created: / 22-10-2008 / 20:19:42 / cg"
-!
-
-at:aKey put:value
-    "backward compatible dictionary-like accessing"
-
-    (self respondsTo:aKey) ifTrue:[
-        self perform:(aKey,':') asSymbol with:value.
-        ^ value "/ sigh
-    ].
-    ^ self errorKeyNotFound:aKey
-
-    "
-     self new at:#binaryRevision put:#bar
-     self new at:#foo put:#bar
-    "
-
-    "Created: / 22-10-2008 / 20:20:54 / cg"
-!
-
 changesetId
     ^ changesetId
 !
@@ -232,16 +190,6 @@
     "Modified: / 20-11-2012 / 10:15:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-!HGRevisionInfo methodsFor:'enumerating'!
-
-keysAndValuesDo:aBlock
-    self class instVarNames do:[:nm |
-        aBlock value:(nm asSymbol) value:(self perform:nm asSymbol)
-    ].
-
-    "Created: / 22-10-2008 / 20:48:08 / cg"
-! !
-
 !HGRevisionInfo methodsFor:'printing & storing'!
 
 printOn:aStream
@@ -260,7 +208,7 @@
 !HGRevisionInfo methodsFor:'private'!
 
 properties
-    #(
+    ^ #(
         revision
         binaryRevision
         user
@@ -273,6 +221,73 @@
     "Created: / 20-11-2012 / 10:01:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!HGRevisionInfo methodsFor:'queries'!
+
+isNotExpanded
+    ^ true
+
+    "Created: / 01-05-2014 / 16:32:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!HGRevisionInfo::RevisionInfoNotExpanded class methodsFor:'documentation'!
+
+copyright
+"
+stx:libscm - a new source code management library for Smalltalk/X
+Copyright (C) 2012-2013 Jan Vrany
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License. 
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+"
+!
+
+documentation
+"
+    A Mercurial-specific revision info object representing
+    Mercurial revision string placeholder:
+
+    '$Changeset: <not expanded> $' 
+
+    [author:]
+        Jan Vrany <jan.vrany@fit.cvut.cz>
+
+    [instance variables:]
+
+    [class variables:]
+
+    [see also:]
+
+"
+! !
+
+!HGRevisionInfo::RevisionInfoNotExpanded class methodsFor:'instance creation'!
+
+readFrom: aStringOrStream onError: aBlock
+    ^ HGRevisionInfo readFrom: aStringOrStream onError: aBlock
+
+    "Created: / 20-11-2012 / 00:33:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 01-05-2014 / 16:28:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!HGRevisionInfo::RevisionInfoNotExpanded methodsFor:'queries'!
+
+isNotExpanded
+    ^ true
+
+    "Created: / 01-05-2014 / 16:32:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !HGRevisionInfo class methodsFor:'documentation'!
 
 version_HG
--- a/mercurial/HGSourceCodeManager.st	Thu May 01 10:22:04 2014 +0100
+++ b/mercurial/HGSourceCodeManager.st	Thu May 01 18:11:28 2014 +0100
@@ -508,7 +508,7 @@
 !
 
 revisionInfoFromString: vsnString inClass: class
-    | revMethod revInfo revAnnotation def clsBinRev |
+    | revInfo def clsBinRev |
 
     "NOTE: class argument may be nil if called for extensions, sigh"
 
@@ -522,48 +522,43 @@
         ].
     ].
 
-    revInfo := self revisionInfoFromString: (clsBinRev ? vsnString).
-    class notNil ifTrue:[
-        revInfo className: class name.
-    ].
-    revInfo changesetId isNull ifTrue:[
-        "/ Patch changesetId - it it might be not in the vsnString if class is
-        "/ loaded from sources...
-        | package selector |
+    revInfo := self revisionInfoFromString: vsnString.
+
+    revInfo isNotExpanded ifTrue:[ 
+        | pkg |
 
         "When called for extensions, class may be nil. But in this case we don't know
          the extension's package, so we have to guess it.
          What a stupid, CVS-centric interface. Playing with strings is simply too bad."
 
+        revInfo := HGRevisionInfo new.
+        revInfo changesetId: HGChangesetId null.
         class notNil ifTrue:[
-            package := class package.
-            selector := self nameOfVersionMethodInClasses.
+            pkg := class package.
         ] ifFalse:[
             "Add more cases here..."
             (thisContext sender selector == #loadExtensionsForPackage:language:) ifTrue:[
-                package := thisContext sender argAt: 1.
-                selector := self nameOfVersionMethodForExtensions
+                pkg := thisContext sender argAt: 1.
             ]
         ].
 
-        def := ProjectDefinition definitionClassForPackage: package.
-        revMethod := (class ? def) theMetaclass compiledMethodAt: selector.
-        revMethod notNil ifTrue:[
-            revAnnotation := revMethod annotationAt: #HGRevision:.
-            revAnnotation notNil ifTrue:[
-                revInfo changesetId: revAnnotation revision.
-            ].
-        ].
-        revInfo changesetId isNull ifTrue:[
-            def ~~ class ifTrue:[
-                revInfo changesetId: (def revisionInfoOfManager:self) changesetId.
+        pkg notNil ifTrue:[    
+            | rev |
+            def := ProjectDefinition definitionClassForPackage: pkg.
+            rev := def hgLogicalRevision.
+            rev notNil ifTrue:[ 
+                revInfo changesetId: rev.
             ].
         ].
     ].
+
+    class notNil ifTrue:[
+        revInfo className: class name.
+    ]. 
     ^revInfo
 
     "Created: / 30-11-2012 / 21:48:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 09-07-2013 / 01:16:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 01-05-2014 / 18:03:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 withSourceRewriteHandlerDo:aBlock
--- a/mercurial/Make.proto	Thu May 01 10:22:04 2014 +0100
+++ b/mercurial/Make.proto	Thu May 01 18:11:28 2014 +0100
@@ -191,7 +191,7 @@
 $(OUTDIR)HGPushPullInfo.$(O) HGPushPullInfo.$(H): HGPushPullInfo.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)HGRepositoryObject.$(O) HGRepositoryObject.$(H): HGRepositoryObject.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)HGRevisionAnnotation.$(O) HGRevisionAnnotation.$(H): HGRevisionAnnotation.st $(INCLUDE_TOP)/stx/libbasic/Annotation.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)HGRevisionInfo.$(O) HGRevisionInfo.$(H): HGRevisionInfo.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)HGRevisionInfo.$(O) HGRevisionInfo.$(H): HGRevisionInfo.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libscm/common/SCMAbstractRevisionInfo.$(H) $(STCHDR)
 $(OUTDIR)HGRevset.$(O) HGRevset.$(H): HGRevset.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)HGRevsetEditor.$(O) HGRevsetEditor.$(H): HGRevsetEditor.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(STCHDR)
 $(OUTDIR)HGSourceCodeManagementSettingsAppl.$(O) HGSourceCodeManagementSettingsAppl.$(H): HGSourceCodeManagementSettingsAppl.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libtool/AbstractSettingsApplication.$(H) $(INCLUDE_TOP)/stx/libtool/AbstractSourceCodeManagementSettingsAppl.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(STCHDR)
--- a/mercurial/bc.mak	Thu May 01 10:22:04 2014 +0100
+++ b/mercurial/bc.mak	Thu May 01 18:11:28 2014 +0100
@@ -122,7 +122,7 @@
 $(OUTDIR)HGPushPullInfo.$(O) HGPushPullInfo.$(H): HGPushPullInfo.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)HGRepositoryObject.$(O) HGRepositoryObject.$(H): HGRepositoryObject.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)HGRevisionAnnotation.$(O) HGRevisionAnnotation.$(H): HGRevisionAnnotation.st $(INCLUDE_TOP)\stx\libbasic\Annotation.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)HGRevisionInfo.$(O) HGRevisionInfo.$(H): HGRevisionInfo.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)HGRevisionInfo.$(O) HGRevisionInfo.$(H): HGRevisionInfo.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libscm\common\SCMAbstractRevisionInfo.$(H) $(STCHDR)
 $(OUTDIR)HGRevset.$(O) HGRevset.$(H): HGRevset.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)HGRevsetEditor.$(O) HGRevsetEditor.$(H): HGRevsetEditor.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(STCHDR)
 $(OUTDIR)HGSourceCodeManagementSettingsAppl.$(O) HGSourceCodeManagementSettingsAppl.$(H): HGSourceCodeManagementSettingsAppl.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libtool\AbstractSettingsApplication.$(H) $(INCLUDE_TOP)\stx\libtool\AbstractSourceCodeManagementSettingsAppl.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(STCHDR)
--- a/mercurial/mercurial.rc	Thu May 01 10:22:04 2014 +0100
+++ b/mercurial/mercurial.rc	Thu May 01 18:11:28 2014 +0100
@@ -3,7 +3,7 @@
 // automagically generated from the projectDefinition: stx_libscm_mercurial.
 //
 VS_VERSION_INFO VERSIONINFO
-  FILEVERSION     6,2,2822,2822
+  FILEVERSION     6,2,32767,32767
   PRODUCTVERSION  6,2,3,0
 #if (__BORLANDC__)
   FILEFLAGSMASK   VS_FF_DEBUG | VS_FF_PRERELEASE
@@ -20,12 +20,12 @@
     BEGIN
       VALUE "CompanyName", "Jan Vrany\0"
       VALUE "FileDescription", "Mercurial integration for Smalltalk/X (LIB)\0"
-      VALUE "FileVersion", "6.2.2822.2822\0"
+      VALUE "FileVersion", "6.2.32767.32767\0"
       VALUE "InternalName", "stx:libscm/mercurial\0"
       VALUE "LegalCopyright", "Copyright Jan Vrany 2012\0"
       VALUE "ProductName", "Smalltalk/X Mercurial Integration\0"
       VALUE "ProductVersion", "6.2.3.0\0"
-      VALUE "ProductDate", "Fri, 28 Mar 2014 09:27:58 GMT\0"
+      VALUE "ProductDate", "Thu, 01 May 2014 16:12:55 GMT\0"
     END
 
   END