Added HGRevset to fetch revision log using hg revsets.
authorJan Vrany <jan.vrany@fit.cvut.cz>
Sun, 09 Feb 2014 19:36:58 +0000
changeset 372 5acd6d915c77
parent 367 af5fea76e6ed
child 395 fc0607653d8a
Added HGRevset to fetch revision log using hg revsets. Added HGRepository>>log:limit. It takes a string or HGRevset and returns a set of changesets matching given revset. Revset is a revset specification string as used by hg command (see `hg help revsets` for more)
mercurial/HGChangeset.st
mercurial/HGChangesetId.st
mercurial/HGCommand.st
mercurial/HGCommandParser.st
mercurial/HGCommandParserTests.st
mercurial/HGRepository.st
mercurial/HGRevset.st
mercurial/HGTests.st
mercurial/HGUnknownRevisionError.st
mercurial/HGWorkingCopyFile.st
mercurial/Make.proto
mercurial/Make.spec
mercurial/abbrev.stc
mercurial/bc.mak
mercurial/extensions.st
mercurial/libInit.cc
mercurial/mercurial.rc
mercurial/stx_libscm_mercurial.st
--- a/mercurial/HGChangeset.st	Fri Feb 07 11:02:59 2014 +0100
+++ b/mercurial/HGChangeset.st	Sun Feb 09 19:36:58 2014 +0000
@@ -247,6 +247,12 @@
 
 !HGChangeset methodsFor:'converting'!
 
+asHGCRevset
+    ^self id asHGRevset
+
+    "Created: / 07-02-2014 / 13:03:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 asHGChangesetId
     ^self id
 
--- a/mercurial/HGChangesetId.st	Fri Feb 07 11:02:59 2014 +0100
+++ b/mercurial/HGChangesetId.st	Sun Feb 09 19:36:58 2014 +0000
@@ -310,6 +310,12 @@
     "Created: / 16-11-2012 / 21:22:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+asHGRevset
+    ^ self asString asHGRevset
+
+    "Created: / 07-02-2014 / 13:03:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 asString
     ^self printString
 
--- a/mercurial/HGCommand.st	Fri Feb 07 11:02:59 2014 +0100
+++ b/mercurial/HGCommand.st	Sun Feb 09 19:36:58 2014 +0000
@@ -83,7 +83,7 @@
 !
 
 HGCommand subclass:#log
-	instanceVariableNames:'start stop path childrenOnly revsets'
+	instanceVariableNames:'start stop path childrenOnly idsOnly revsets limit'
 	classVariableNames:''
 	poolDictionaries:''
 	privateIn:HGCommand
@@ -531,7 +531,7 @@
     errors nextPut: anException.
 
     "Created: / 04-02-2013 / 21:29:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 05-03-2013 / 19:32:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 09-02-2014 / 19:28:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 signal
@@ -712,7 +712,7 @@
 !
 
 command
-    "Returns the git 'command' option, i.e. commit,
+    "Returns the hg 'command' option, i.e. commit,
      push, pull, ..."
 
     ^self class nameWithoutPrefix
@@ -724,7 +724,7 @@
     "Created: / 11-05-2011 / 07:58:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified (format): / 27-12-2011 / 15:47:17 / dundee"
     "Modified: / 30-09-2012 / 23:37:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified (comment): / 17-10-2012 / 13:25:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (comment): / 08-02-2014 / 11:41:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 executable
@@ -1184,8 +1184,6 @@
     "Modified: / 08-03-2013 / 19:35:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
-
 !HGCommand::locate methodsFor:'accessing'!
 
 revision
@@ -1228,6 +1226,22 @@
     childrenOnly := aBoolean.
 !
 
+idsOnly
+    ^ idsOnly
+!
+
+idsOnly:aBoolean
+    idsOnly := aBoolean.
+!
+
+limit
+    ^ limit
+!
+
+limit:anInteger
+    limit := anInteger.
+!
+
 path
     ^ path
 !
@@ -1260,6 +1274,7 @@
 
     | template |
 
+    template := HGCommandParser templateLog.       
     path isNil ifTrue:[
         revsets isEmptyOrNil ifTrue:[
             self error:'No revisions given'.
@@ -1268,10 +1283,11 @@
             stream nextPut:'--rev'.
             stream nextPut:revset asString
         ].
-        template := HGCommandParser templateLog.
     ] ifFalse:[
         stream nextPut: '--follow'.
-        template := HGCommandParser templateLogFile.
+    ].
+    idsOnly == true ifTrue:[ 
+        template := HGCommandParser templateLogIdsOnly. 
     ].
 
     childrenOnly == true ifTrue:[
@@ -1282,13 +1298,27 @@
         nextPut:'--debug';
         nextPut:'--template';
         nextPut:template.
+    limit notNil ifTrue:[ 
+        stream 
+            nextPut: '-l';
+            nextPut: limit printString
+    ].
 
     path notNil ifTrue:[
         stream nextPut: path.
     ].
 
     "Created: / 13-11-2012 / 09:05:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 22-01-2013 / 16:16:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 08-02-2014 / 22:22:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+parseError:stream
+    "Parses output of 'hg' command, i.e. commit, log, update, checkout,
+     etc."
+
+    ^ (self parserOn: stream) parseErrorLog.
+
+    "Created: / 09-02-2014 / 10:22:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 parseOutput:stream
@@ -1298,12 +1328,12 @@
     childrenOnly == true ifTrue:[
         ^ (self parserOn:stream) parseCommandLogChildren.
     ].
-    ^ path isNil
+    ^ idsOnly ~~ true
         ifTrue:[ (self parserOn:stream) parseCommandLog ]
-        ifFalse:[ (self parserOn:stream) parseCommandLogFile ]
+        ifFalse:[ (self parserOn:stream) parseCommandLogIdsOnly ]
 
     "Created: / 13-11-2012 / 09:05:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 05-12-2012 / 23:51:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 08-02-2014 / 22:12:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !HGCommand::merge methodsFor:'accessing'!
--- a/mercurial/HGCommandParser.st	Fri Feb 07 11:02:59 2014 +0100
+++ b/mercurial/HGCommandParser.st	Sun Feb 09 19:36:58 2014 +0000
@@ -101,13 +101,13 @@
 !
 
 templateLogChildren
-    ^'{rev}:{node}\n{children}\n'
+    ^ '{rev}:{node}\n{children}\n'
 
     "Created: / 05-12-2012 / 23:40:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-templateLogFile
-    ^'{rev}:{node}\n'
+templateLogIdsOnly
+    ^ '{rev}:{node}\n'
 
     "Created: / 05-12-2012 / 19:10:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
@@ -751,17 +751,18 @@
     "Created: / 05-12-2012 / 23:44:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-parseCommandLogFile
+parseCommandLogIdsOnly
     "Parse output of 'hg log <path>' command, assuming the template given
      was HGCommandParser templateLogFile. Return a list of HGChangesetId."
-
+    
     | ids |
 
     ids := OrderedCollection new.
     [ stream atEnd ] whileFalse:[
-        ids add: self parseNodeId. self expectLineEnd.
+        ids add:self parseNodeId.
+        self expectLineEnd.
     ].
-    ^ids
+    ^ ids
 
     "Created: / 05-12-2012 / 19:15:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
@@ -1108,6 +1109,21 @@
     "Created: / 04-02-2013 / 12:21:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+parseErrorLog
+    ^self parseError: [:msg |
+        | errCls |
+
+        (msg startsWith: 'unknown revision ''') ifTrue:[
+            errCls := HGUnknownRevisionError.
+        ] ifFalse:[
+            errCls := HGPushError
+        ].
+        self propagate: errCls message: msg
+    ].
+
+    "Created: / 09-02-2014 / 10:21:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 parseErrorPush
     ^self parseError: [:msg |
         | errCls |
--- a/mercurial/HGCommandParserTests.st	Fri Feb 07 11:02:59 2014 +0100
+++ b/mercurial/HGCommandParserTests.st	Sun Feb 09 19:36:58 2014 +0000
@@ -151,10 +151,12 @@
 
     | heads |
 
-    heads := (HGCommandParser on: '6:4e0568ffbf1a53f2d8980ba9844d2af6f0bac455
+    heads := (HGCommandParser 
+                   on:'6:4e0568ffbf1a53f2d8980ba9844d2af6f0bac455
 5:f22945219f9be25a1fe436d81afece07b89330be
 4:5bd21fb5eea8a7cb4adf45bccfea76cda11df84a
-') parseCommandLogFile.
+') 
+                       parseCommandLogIdsOnly.
 
     self assert: heads size == 3.
 
@@ -163,6 +165,7 @@
     self assert: heads third  asString = '4:5bd21fb5eea8'.
 
     "Created: / 05-12-2012 / 19:16:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 08-02-2014 / 22:17:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 test_cmd_merge_01
--- a/mercurial/HGRepository.st	Fri Feb 07 11:02:59 2014 +0100
+++ b/mercurial/HGRepository.st	Sun Feb 09 19:36:58 2014 +0000
@@ -325,6 +325,19 @@
     ^changesets changesetWithId: id
 
     "Created: / 13-11-2012 / 17:58:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+changesetsMatching: revset limit: limit
+    "Returns a list of changesets that matches given revset, but not more than
+     `limit` changesets.
+
+    revset could be either HGRevset or plain string.
+    limit is an integer or nil for not limit at all (use vit caution
+    on large repositories this may take a while)
+    "
+    ^changesets changesetsMatching: revset limit: limit
+
+    "Created: / 07-02-2014 / 13:08:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !HGRepository methodsFor:'accessing-private'!
@@ -448,6 +461,19 @@
     "Modified (format): / 06-03-2013 / 11:14:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+log: revset limit: limit
+    "Returns a list of changesets that matches given revset, but not more than
+     `limit` changesets.
+
+    revset could be either HGRevset or plain string.
+    limit is an integer or nil for not limit at all (use vit caution
+    on large repositories this may take a while)
+    "
+    ^ self changesetsMatching: revset limit: limit
+
+    "Created: / 07-02-2014 / 13:08:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 pull
     "Pulls changesets from default upstream repository.
      See .hg/hgrc, section path"
@@ -597,6 +623,35 @@
 
     "Created: / 13-11-2012 / 17:52:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified (format): / 08-03-2013 / 19:54:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+changesetsMatching: revset limit: limit
+    | csets |
+
+    csets := self repository execute:
+                    (HGCommand log
+                        workingDirectory: repository path asString;
+                        revset: revset;
+                        limit: limit; 
+                        yourself).
+    csets collect:[ :cset |
+        | existing |
+
+        existing := changesets at: cset id ifAbsent:[ nil ].
+        existing isNil ifTrue:[ 
+            cset setRepository: repository .
+            changesets at: cset id put: cset. 
+            revno2nodeIdMap at: cset id revno put: cset id.
+            cset
+        ] ifFalse:[ 
+            existing.
+        ].
+
+    ].
+    ^ csets
+
+    "Created: / 07-02-2014 / 13:11:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 08-02-2014 / 22:34:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !HGRepository::Changesets methodsFor:'initialization'!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mercurial/HGRevset.st	Sun Feb 09 19:36:58 2014 +0000
@@ -0,0 +1,101 @@
+"
+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/mercurial' }"
+
+Object subclass:#HGRevset
+	instanceVariableNames:'expression'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SCM-Mercurial-Core'
+!
+
+!HGRevset 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
+"
+    HGRevset represent a `revset` expression as used by Mercurial.
+    Revset is an expression specifying a set of changesets (commits).
+
+
+    For more on revsets see `hg help revset`
+
+    [author:]
+        Jan Vrany <jan.vrany@fit.cvut.cz>
+
+    [instance variables:]
+
+    [class variables:]
+
+    [see also:]
+        hg help revset
+
+"
+! !
+
+!HGRevset class methodsFor:'instance creation'!
+
+fromString: aString
+    ^ self new setExpression: aString
+
+    "Created: / 07-02-2014 / 12:59:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!HGRevset methodsFor:'conversion'!
+
+asHGRevset
+    ^ self
+
+    "Created: / 07-02-2014 / 12:59:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+asString
+    ^ expression
+
+    "Created: / 07-02-2014 / 12:59:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!HGRevset methodsFor:'initialization'!
+
+setExpression: aString
+    expression := aString
+
+    "Created: / 07-02-2014 / 12:59:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
--- a/mercurial/HGTests.st	Fri Feb 07 11:02:59 2014 +0100
+++ b/mercurial/HGTests.st	Sun Feb 09 19:36:58 2014 +0000
@@ -343,6 +343,163 @@
     self assert: (cs0 children includesIdentical: cs1).
 
     "Created: / 05-12-2012 / 17:41:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_changeset_08a
+    "
+    Test accessiong commit history using revsets
+    "
+
+    | repo csets |
+
+    repo := self repositoryNamed:'test_repo_01'.
+    "
+    @  changeset:   4:6f88e1f44d9e
+    o  changeset:   3:912a64597e4f
+    o  changeset:   2:db43a5baa9ac
+    o  changeset:   1:98087d77fbaa
+    o  changeset:   0:98b9033d3bac
+    "
+    csets := repo log: '912a64597e4f:98087d77fbaa' limit: nil.
+    self assert: csets size = 3.
+    self assert: csets first id printString = '3:912a64597e4f'.  
+    self assert: csets second id printString = '2:db43a5baa9ac'.
+    self assert: csets third id printString = '1:98087d77fbaa'.
+
+    "Created: / 07-02-2014 / 18:30:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 08-02-2014 / 22:38:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_changeset_08b
+    "
+    Test accessiong commit history using revsets
+    "
+
+    | repo csets |
+
+    repo := self repositoryNamed:'test_repo_01'.
+    "
+    @  changeset:   4:6f88e1f44d9e
+    o  changeset:   3:912a64597e4f
+    o  changeset:   2:db43a5baa9ac
+    o  changeset:   1:98087d77fbaa
+    o  changeset:   0:98b9033d3bac
+    "
+    csets := repo log: 'p1(912a64597e4f)' limit: nil.
+    self assert: csets size = 1.
+    self assert: csets first id printString = '2:db43a5baa9ac'.
+
+    "Created: / 08-02-2014 / 22:39:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_changeset_08c
+    "
+    Test accessiong commit history using revsets
+    "
+
+    | repo csets |
+
+    repo := self repositoryNamed:'test_repo_01'.
+    "
+    @  changeset:   4:6f88e1f44d9e
+    o  changeset:   3:912a64597e4f
+    o  changeset:   2:db43a5baa9ac
+    o  changeset:   1:98087d77fbaa
+    o  changeset:   0:98b9033d3bac
+    "
+    csets := repo log: 'p2(912a64597e4f)' limit: nil.
+    self assert: csets isEmpty.
+
+    "Created: / 09-02-2014 / 10:08:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_changeset_08d
+    "
+    Test accessiong commit history using revsets
+    "
+
+    | repo |
+
+    repo := self repositoryNamed:'test_repo_01'.
+    "
+    @  changeset:   4:6f88e1f44d9e
+    o  changeset:   3:912a64597e4f
+    o  changeset:   2:db43a5baa9ac
+    o  changeset:   1:98087d77fbaa
+    o  changeset:   0:98b9033d3bac
+    "
+    self should: [
+        repo log: 'branch(blabla)' limit: nil.
+    ] raise: HGUnknownRevisionError.
+
+    "Created: / 09-02-2014 / 10:08:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_changeset_08e
+    "
+    Test accessiong commit history using revsets
+    "
+
+    | repo csets |
+
+    repo := self repositoryNamed:'test_repo_01'.
+    "
+    @  changeset:   4:6f88e1f44d9e
+    o  changeset:   3:912a64597e4f
+    o  changeset:   2:db43a5baa9ac
+    o  changeset:   1:98087d77fbaa
+    o  changeset:   0:98b9033d3bac
+    "
+    csets := repo log: 'merge()' limit: nil.
+    self assert: csets isEmpty.
+
+    "Created: / 09-02-2014 / 10:09:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_changeset_08f
+    "
+    Test accessiong commit history using revsets
+    "
+
+    | repo |
+
+    repo := self repositoryNamed:'test_repo_01'.
+    "
+    @  changeset:   4:6f88e1f44d9e
+    o  changeset:   3:912a64597e4f
+    o  changeset:   2:db43a5baa9ac
+    o  changeset:   1:98087d77fbaa
+    o  changeset:   0:98b9033d3bac
+    "
+    self should: [
+        repo log: 'merge() and' limit: nil
+    ] raise: HGError
+
+    "Created: / 09-02-2014 / 10:09:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 09-02-2014 / 19:27:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+test_changeset_08g
+    "
+    Test accessiong commit history using revsets
+    "
+
+    | repo csets |
+
+    repo := self repositoryNamed:'test_repo_01'.
+    "
+    @  changeset:   4:6f88e1f44d9e
+    o  changeset:   3:912a64597e4f
+    o  changeset:   2:db43a5baa9ac
+    o  changeset:   1:98087d77fbaa
+    o  changeset:   0:98b9033d3bac
+    "
+    csets := repo log: '912a64597e4f:98087d77fbaa' limit: 2.
+    self assert: csets size = 2.
+    self assert: csets first id printString = '3:912a64597e4f'.  
+    self assert: csets second id printString = '2:db43a5baa9ac'.
+
+    "Created: / 09-02-2014 / 19:27:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !HGTests methodsFor:'tests - commit'!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mercurial/HGUnknownRevisionError.st	Sun Feb 09 19:36:58 2014 +0000
@@ -0,0 +1,50 @@
+"
+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/mercurial' }"
+
+HGRepositoryError subclass:#HGUnknownRevisionError
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SCM-Mercurial-Exceptions'
+!
+
+!HGUnknownRevisionError 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
+"
+! !
+
--- a/mercurial/HGWorkingCopyFile.st	Fri Feb 07 11:02:59 2014 +0100
+++ b/mercurial/HGWorkingCopyFile.st	Sun Feb 09 19:36:58 2014 +0000
@@ -145,6 +145,7 @@
         oldIds := self repository execute:
                     (HGCommand log
                         workingDirectory: wc pathName;
+                        idsOnly: true;
                         path: path;
                         yourself).
         pathS.
@@ -174,7 +175,7 @@
 
     "Created: / 05-12-2012 / 19:09:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 06-12-2012 / 03:50:58 / jv"
-    "Modified: / 03-03-2013 / 23:03:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 08-02-2014 / 22:02:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 status
--- a/mercurial/Make.proto	Fri Feb 07 11:02:59 2014 +0100
+++ b/mercurial/Make.proto	Sun Feb 09 19:36:58 2014 +0000
@@ -34,7 +34,7 @@
 # add the path(es) here:,
 # ********** OPTIONAL: MODIFY the next lines ***
 # LOCALINCLUDES=-Ifoo -Ibar
-LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libbasic3 -I$(INCLUDE_TOP)/stx/libscm/common -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/libtool -I$(INCLUDE_TOP)/stx/libbasic2 -I$(INCLUDE_TOP)/stx/goodies/sunit
+LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/goodies/sunit -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libbasic2 -I$(INCLUDE_TOP)/stx/libbasic3 -I$(INCLUDE_TOP)/stx/libscm/common -I$(INCLUDE_TOP)/stx/libtool -I$(INCLUDE_TOP)/stx/libview2
 
 
 # if you need any additional defines for embedded C code,
@@ -185,6 +185,7 @@
 $(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)HGRevset.$(O) HGRevset.$(H): HGRevset.st $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)HGSourceCodeManagementSettingsAppl.$(O) HGSourceCodeManagementSettingsAppl.$(H): HGSourceCodeManagementSettingsAppl.st $(INCLUDE_TOP)/stx/libtool/AbstractSourceCodeManagementSettingsAppl.$(H) $(INCLUDE_TOP)/stx/libtool/AbstractSettingsApplication.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)HGSourceCodeManager.$(O) HGSourceCodeManager.$(H): HGSourceCodeManager.st $(INCLUDE_TOP)/stx/libscm/common/SCMAbstractSourceCodeManager.$(H) $(INCLUDE_TOP)/stx/libbasic3/AbstractSourceCodeManager.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)HGStatus.$(O) HGStatus.$(H): HGStatus.st $(INCLUDE_TOP)/stx/libbasic2/Singleton.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
@@ -205,8 +206,9 @@
 $(OUTDIR)HGWorkingCopy.$(O) HGWorkingCopy.$(H): HGWorkingCopy.st $(INCLUDE_TOP)/stx/libscm/mercurial/HGRepositoryObject.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)HGCommandParseError.$(O) HGCommandParseError.$(H): HGCommandParseError.st $(INCLUDE_TOP)/stx/libscm/mercurial/HGCommandError.$(H) $(INCLUDE_TOP)/stx/libscm/mercurial/HGError.$(H) $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)HGPushError.$(O) HGPushError.$(H): HGPushError.st $(INCLUDE_TOP)/stx/libscm/mercurial/HGRepositoryError.$(H) $(INCLUDE_TOP)/stx/libscm/mercurial/HGError.$(H) $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)HGUnknownRevisionError.$(O) HGUnknownRevisionError.$(H): HGUnknownRevisionError.st $(INCLUDE_TOP)/stx/libscm/mercurial/HGRepositoryError.$(H) $(INCLUDE_TOP)/stx/libscm/mercurial/HGError.$(H) $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)HGPushWouldCreateNewHeadError.$(O) HGPushWouldCreateNewHeadError.$(H): HGPushWouldCreateNewHeadError.st $(INCLUDE_TOP)/stx/libscm/mercurial/HGPushError.$(H) $(INCLUDE_TOP)/stx/libscm/mercurial/HGRepositoryError.$(H) $(INCLUDE_TOP)/stx/libscm/mercurial/HGError.$(H) $(INCLUDE_TOP)/stx/libbasic/Error.$(H) $(INCLUDE_TOP)/stx/libbasic/Exception.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
-$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/stx/libbasic/ByteArray.$(H) $(INCLUDE_TOP)/stx/libbasic/UninterpretedBytes.$(H) $(INCLUDE_TOP)/stx/libbasic/ArrayedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/Integer.$(H) $(INCLUDE_TOP)/stx/libbasic/Number.$(H) $(INCLUDE_TOP)/stx/libbasic/ArithmeticValue.$(H) $(INCLUDE_TOP)/stx/libbasic/Magnitude.$(H) $(INCLUDE_TOP)/stx/libbasic/String.$(H) $(INCLUDE_TOP)/stx/libbasic/CharacterArray.$(H) $(INCLUDE_TOP)/stx/libbasic/UserPreferences.$(H) $(INCLUDE_TOP)/stx/libbasic/IdentityDictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Dictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Set.$(H) $(INCLUDE_TOP)/stx/libbasic/Annotation.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__NewSystemBrowser.$(H) $(INCLUDE_TOP)/stx/libtool/SystemBrowser.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libtool/AbstractFileBrowser.$(H) $(INCLUDE_TOP)/stx/libbasic/ConfigurableFeatures.$(H) $(STCHDR)
+$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)/stx/libbasic/ByteArray.$(H) $(INCLUDE_TOP)/stx/libbasic/UninterpretedBytes.$(H) $(INCLUDE_TOP)/stx/libbasic/ArrayedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(INCLUDE_TOP)/stx/libbasic/Integer.$(H) $(INCLUDE_TOP)/stx/libbasic/Number.$(H) $(INCLUDE_TOP)/stx/libbasic/ArithmeticValue.$(H) $(INCLUDE_TOP)/stx/libbasic/Magnitude.$(H) $(INCLUDE_TOP)/stx/libbasic/UserPreferences.$(H) $(INCLUDE_TOP)/stx/libbasic/IdentityDictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Dictionary.$(H) $(INCLUDE_TOP)/stx/libbasic/Set.$(H) $(INCLUDE_TOP)/stx/libbasic/Annotation.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(INCLUDE_TOP)/stx/libtool/Tools__NewSystemBrowser.$(H) $(INCLUDE_TOP)/stx/libtool/SystemBrowser.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libtool/AbstractFileBrowser.$(H) $(INCLUDE_TOP)/stx/libbasic/ConfigurableFeatures.$(H) $(INCLUDE_TOP)/stx/libbasic/CharacterArray.$(H) $(STCHDR)
 
 # ENDMAKEDEPEND --- do not remove this line
 
--- a/mercurial/Make.spec	Fri Feb 07 11:02:59 2014 +0100
+++ b/mercurial/Make.spec	Sun Feb 09 19:36:58 2014 +0000
@@ -71,6 +71,7 @@
 	HGRepositoryObject \
 	HGRevisionAnnotation \
 	HGRevisionInfo \
+	HGRevset \
 	HGSourceCodeManagementSettingsAppl \
 	HGSourceCodeManager \
 	HGStatus \
@@ -91,6 +92,7 @@
 	HGWorkingCopy \
 	HGCommandParseError \
 	HGPushError \
+	HGUnknownRevisionError \
 	HGPushWouldCreateNewHeadError \
 
 
@@ -118,6 +120,7 @@
     $(OUTDIR_SLASH)HGRepositoryObject.$(O) \
     $(OUTDIR_SLASH)HGRevisionAnnotation.$(O) \
     $(OUTDIR_SLASH)HGRevisionInfo.$(O) \
+    $(OUTDIR_SLASH)HGRevset.$(O) \
     $(OUTDIR_SLASH)HGSourceCodeManagementSettingsAppl.$(O) \
     $(OUTDIR_SLASH)HGSourceCodeManager.$(O) \
     $(OUTDIR_SLASH)HGStatus.$(O) \
@@ -138,6 +141,7 @@
     $(OUTDIR_SLASH)HGWorkingCopy.$(O) \
     $(OUTDIR_SLASH)HGCommandParseError.$(O) \
     $(OUTDIR_SLASH)HGPushError.$(O) \
+    $(OUTDIR_SLASH)HGUnknownRevisionError.$(O) \
     $(OUTDIR_SLASH)HGPushWouldCreateNewHeadError.$(O) \
     $(OUTDIR_SLASH)extensions.$(O) \
 
--- a/mercurial/abbrev.stc	Fri Feb 07 11:02:59 2014 +0100
+++ b/mercurial/abbrev.stc	Sun Feb 09 19:36:58 2014 +0000
@@ -25,6 +25,7 @@
 HGRepositoryObject HGRepositoryObject stx:libscm/mercurial 'SCM-Mercurial-Internal' 0
 HGRevisionAnnotation HGRevisionAnnotation stx:libscm/mercurial 'SCM-Mercurial-StX' 0
 HGRevisionInfo HGRevisionInfo stx:libscm/mercurial 'SCM-Mercurial-StX' 0
+HGRevset HGRevset stx:libscm/mercurial 'SCM-Mercurial-Core' 0
 HGSourceCodeManagementSettingsAppl HGSourceCodeManagementSettingsAppl stx:libscm/mercurial 'SCM-Mercurial-StX-Interface' 1
 HGSourceCodeManager HGSourceCodeManager stx:libscm/mercurial 'SCM-Mercurial-StX' 2
 HGStatus HGStatus stx:libscm/mercurial 'SCM-Mercurial-Core' 1
@@ -48,4 +49,5 @@
 HGWorkingCopy HGWorkingCopy stx:libscm/mercurial 'SCM-Mercurial-Core' 0
 HGCommandParseError HGCommandParseError stx:libscm/mercurial 'SCM-Mercurial-Exceptions' 1
 HGPushError HGPushError stx:libscm/mercurial 'SCM-Mercurial-Exceptions' 1
+HGUnknownRevisionError HGUnknownRevisionError stx:libscm/mercurial 'SCM-Mercurial-Exceptions' 1
 HGPushWouldCreateNewHeadError HGPushWouldCreateNewHeadError stx:libscm/mercurial 'SCM-Mercurial-Exceptions' 1
--- a/mercurial/bc.mak	Fri Feb 07 11:02:59 2014 +0100
+++ b/mercurial/bc.mak	Sun Feb 09 19:36:58 2014 +0000
@@ -39,7 +39,7 @@
 
 
 
-LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libbasic3 -I$(INCLUDE_TOP)\stx\libscm\common -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\libtool -I$(INCLUDE_TOP)\stx\libbasic2 -I$(INCLUDE_TOP)\stx\goodies\sunit
+LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\goodies\sunit -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libbasic2 -I$(INCLUDE_TOP)\stx\libbasic3 -I$(INCLUDE_TOP)\stx\libscm\common -I$(INCLUDE_TOP)\stx\libtool -I$(INCLUDE_TOP)\stx\libview2
 LOCALDEFINES=
 
 STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES)  -varPrefix=$(LIBNAME)
@@ -116,6 +116,7 @@
 $(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)HGRevset.$(O) HGRevset.$(H): HGRevset.st $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)HGSourceCodeManagementSettingsAppl.$(O) HGSourceCodeManagementSettingsAppl.$(H): HGSourceCodeManagementSettingsAppl.st $(INCLUDE_TOP)\stx\libtool\AbstractSourceCodeManagementSettingsAppl.$(H) $(INCLUDE_TOP)\stx\libtool\AbstractSettingsApplication.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)HGSourceCodeManager.$(O) HGSourceCodeManager.$(H): HGSourceCodeManager.st $(INCLUDE_TOP)\stx\libscm\common\SCMAbstractSourceCodeManager.$(H) $(INCLUDE_TOP)\stx\libbasic3\AbstractSourceCodeManager.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)HGStatus.$(O) HGStatus.$(H): HGStatus.st $(INCLUDE_TOP)\stx\libbasic2\Singleton.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
@@ -136,8 +137,9 @@
 $(OUTDIR)HGWorkingCopy.$(O) HGWorkingCopy.$(H): HGWorkingCopy.st $(INCLUDE_TOP)\stx\libscm\mercurial\HGRepositoryObject.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)HGCommandParseError.$(O) HGCommandParseError.$(H): HGCommandParseError.st $(INCLUDE_TOP)\stx\libscm\mercurial\HGCommandError.$(H) $(INCLUDE_TOP)\stx\libscm\mercurial\HGError.$(H) $(INCLUDE_TOP)\stx\libbasic\Error.$(H) $(INCLUDE_TOP)\stx\libbasic\Exception.$(H) $(INCLUDE_TOP)\stx\libbasic\GenericException.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)HGPushError.$(O) HGPushError.$(H): HGPushError.st $(INCLUDE_TOP)\stx\libscm\mercurial\HGRepositoryError.$(H) $(INCLUDE_TOP)\stx\libscm\mercurial\HGError.$(H) $(INCLUDE_TOP)\stx\libbasic\Error.$(H) $(INCLUDE_TOP)\stx\libbasic\Exception.$(H) $(INCLUDE_TOP)\stx\libbasic\GenericException.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)HGUnknownRevisionError.$(O) HGUnknownRevisionError.$(H): HGUnknownRevisionError.st $(INCLUDE_TOP)\stx\libscm\mercurial\HGRepositoryError.$(H) $(INCLUDE_TOP)\stx\libscm\mercurial\HGError.$(H) $(INCLUDE_TOP)\stx\libbasic\Error.$(H) $(INCLUDE_TOP)\stx\libbasic\Exception.$(H) $(INCLUDE_TOP)\stx\libbasic\GenericException.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)HGPushWouldCreateNewHeadError.$(O) HGPushWouldCreateNewHeadError.$(H): HGPushWouldCreateNewHeadError.st $(INCLUDE_TOP)\stx\libscm\mercurial\HGPushError.$(H) $(INCLUDE_TOP)\stx\libscm\mercurial\HGRepositoryError.$(H) $(INCLUDE_TOP)\stx\libscm\mercurial\HGError.$(H) $(INCLUDE_TOP)\stx\libbasic\Error.$(H) $(INCLUDE_TOP)\stx\libbasic\Exception.$(H) $(INCLUDE_TOP)\stx\libbasic\GenericException.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
-$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\libbasic\ByteArray.$(H) $(INCLUDE_TOP)\stx\libbasic\UninterpretedBytes.$(H) $(INCLUDE_TOP)\stx\libbasic\ArrayedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\Integer.$(H) $(INCLUDE_TOP)\stx\libbasic\Number.$(H) $(INCLUDE_TOP)\stx\libbasic\ArithmeticValue.$(H) $(INCLUDE_TOP)\stx\libbasic\Magnitude.$(H) $(INCLUDE_TOP)\stx\libbasic\String.$(H) $(INCLUDE_TOP)\stx\libbasic\CharacterArray.$(H) $(INCLUDE_TOP)\stx\libbasic\UserPreferences.$(H) $(INCLUDE_TOP)\stx\libbasic\IdentityDictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Dictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Set.$(H) $(INCLUDE_TOP)\stx\libbasic\Annotation.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__NewSystemBrowser.$(H) $(INCLUDE_TOP)\stx\libtool\SystemBrowser.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libtool\AbstractFileBrowser.$(H) $(INCLUDE_TOP)\stx\libbasic\ConfigurableFeatures.$(H) $(STCHDR)
+$(OUTDIR)extensions.$(O): extensions.st $(INCLUDE_TOP)\stx\libbasic\ByteArray.$(H) $(INCLUDE_TOP)\stx\libbasic\UninterpretedBytes.$(H) $(INCLUDE_TOP)\stx\libbasic\ArrayedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(INCLUDE_TOP)\stx\libbasic\Integer.$(H) $(INCLUDE_TOP)\stx\libbasic\Number.$(H) $(INCLUDE_TOP)\stx\libbasic\ArithmeticValue.$(H) $(INCLUDE_TOP)\stx\libbasic\Magnitude.$(H) $(INCLUDE_TOP)\stx\libbasic\UserPreferences.$(H) $(INCLUDE_TOP)\stx\libbasic\IdentityDictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Dictionary.$(H) $(INCLUDE_TOP)\stx\libbasic\Set.$(H) $(INCLUDE_TOP)\stx\libbasic\Annotation.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(INCLUDE_TOP)\stx\libtool\Tools__NewSystemBrowser.$(H) $(INCLUDE_TOP)\stx\libtool\SystemBrowser.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libtool\AbstractFileBrowser.$(H) $(INCLUDE_TOP)\stx\libbasic\ConfigurableFeatures.$(H) $(INCLUDE_TOP)\stx\libbasic\CharacterArray.$(H) $(STCHDR)
 
 # ENDMAKEDEPEND --- do not remove this line
 
--- a/mercurial/extensions.st	Fri Feb 07 11:02:59 2014 +0100
+++ b/mercurial/extensions.st	Sun Feb 09 19:36:58 2014 +0000
@@ -634,6 +634,14 @@
     "Created: / 16-11-2012 / 21:33:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!CharacterArray methodsFor:'converting'!
+
+asHGChangesetId
+    ^ HGChangesetId fromString:self.
+
+    "Created: / 16-11-2012 / 21:24:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !ConfigurableFeatures class methodsFor:'queries-features'!
 
 hasHGSupport
@@ -867,14 +875,6 @@
     "Created: / 21-05-2013 / 16:44:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-!String methodsFor:'converting'!
-
-asHGChangesetId
-    ^ HGChangesetId fromString:self.
-
-    "Created: / 16-11-2012 / 21:24:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
 !Tools::NewSystemBrowser methodsFor:'menu actions-hg'!
 
 commonMenuHGBrowseTemporaryWorkingCopy
--- a/mercurial/libInit.cc	Fri Feb 07 11:02:59 2014 +0100
+++ b/mercurial/libInit.cc	Sun Feb 09 19:36:58 2014 +0000
@@ -48,6 +48,7 @@
 _HGRepositoryObject_Init(pass,__pRT__,snd);
 _HGRevisionAnnotation_Init(pass,__pRT__,snd);
 _HGRevisionInfo_Init(pass,__pRT__,snd);
+_HGRevset_Init(pass,__pRT__,snd);
 _HGSourceCodeManagementSettingsAppl_Init(pass,__pRT__,snd);
 _HGSourceCodeManager_Init(pass,__pRT__,snd);
 _HGStatus_Init(pass,__pRT__,snd);
@@ -68,6 +69,7 @@
 _HGWorkingCopy_Init(pass,__pRT__,snd);
 _HGCommandParseError_Init(pass,__pRT__,snd);
 _HGPushError_Init(pass,__pRT__,snd);
+_HGUnknownRevisionError_Init(pass,__pRT__,snd);
 _HGPushWouldCreateNewHeadError_Init(pass,__pRT__,snd);
 
 _stx_137libscm_137mercurial_extensions_Init(pass,__pRT__,snd);
--- a/mercurial/mercurial.rc	Fri Feb 07 11:02:59 2014 +0100
+++ b/mercurial/mercurial.rc	Sun Feb 09 19:36:58 2014 +0000
@@ -3,7 +3,7 @@
 // automagically generated from the projectDefinition: stx_libscm_mercurial.
 //
 VS_VERSION_INFO VERSIONINFO
-  FILEVERSION     6,2,32767,32767
+  FILEVERSION     6,2,930,930
   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.32767.32767\0"
+      VALUE "FileVersion", "6.2.930.930\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, 29 Nov 2013 20:40:37 GMT\0"
+      VALUE "ProductDate", "Sun, 09 Feb 2014 19:36:17 GMT\0"
     END
 
   END
--- a/mercurial/stx_libscm_mercurial.st	Fri Feb 07 11:02:59 2014 +0100
+++ b/mercurial/stx_libscm_mercurial.st	Sun Feb 09 19:36:58 2014 +0000
@@ -109,6 +109,7 @@
     ^ #(
         #'stx:goodies/communication'    "HTTPInterface - referenced by HGInstaller>>doDownload: "
         #'stx:libhtml'    "HTMLDocumentView - referenced by HGSourceCodeManagementSettingsAppl>>help "
+        #'stx:libjava'    "Java - referenced by HGStXTests>>test_commit_16a "
         #'stx:libview'    "Color - referenced by HGCommitDialog>>moreOptionsLabel "
     )
 !
@@ -198,6 +199,7 @@
         HGRepositoryObject
         HGRevisionAnnotation
         HGRevisionInfo
+        HGRevset
         HGSourceCodeManagementSettingsAppl
         HGSourceCodeManager
         HGStatus
@@ -221,6 +223,7 @@
         HGWorkingCopy
         HGCommandParseError
         HGPushError
+        HGUnknownRevisionError
         HGPushWouldCreateNewHeadError
     )
 !
@@ -233,7 +236,6 @@
         ByteArray asHGChangesetId
         Integer asHGChangesetId
         Object asHGChangesetId
-        String asHGChangesetId
         UserPreferences hgCommand
         UserPreferences hgCommand:
         UserPreferences hgAutopush
@@ -283,6 +285,7 @@
         'ProjectDefinition class' hgRemoveContainesForDeletedClasses
         'ProjectDefinition class' hgEnsureCopyrightMethod
         'ProjectDefinition class' #'hgEnsureVersion_HGMethod'
+        CharacterArray asHGChangesetId
     )
 ! !