Fix parsing og `hg merge` output for Mercurial 4.6 and newer
authorJan Vrany <jan.vrany@fit.cvut.cz>
Thu, 23 Aug 2018 10:44:42 +0100
changeset 859 d990a97b26a4
parent 858 dcfd093c3257
child 860 2ceb125a0fc7
Fix parsing og `hg merge` output for Mercurial 4.6 and newer In Mercurial 4.6 the wording of last line of the output has changed. This commit updates the parser so it can handle both wordings.
mercurial/HGCommandParser.st
mercurial/HGCommandParserTests.st
--- a/mercurial/HGCommandParser.st	Thu Aug 23 10:37:24 2018 +0100
+++ b/mercurial/HGCommandParser.st	Thu Aug 23 10:44:42 2018 +0100
@@ -876,14 +876,24 @@
         ^info
     ].
     c == $u ifTrue:[
-        self expect: 'se ''hg resolve'' to retry unresolved file merges or ''hg update -C .'' to abandon'.
-        self expectLineEnd.
+        "/ Mercurial 4.6 and newer prints
+        "/ 
+        "/     use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
+        "/ 
+        "/ while older versions print
+        "/ 
+        "/      use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
+        "/ 
+        "/ We have to support both...
+
+        self expect: 'se ''hg resolve'' to retry unresolved file merges or ''hg '.
+        self nextLine. "/ eat the rest of the line
         ^info
     ].
     self error:('Unexpected character ''%1'' expecting ''('' or ''u''' bindWith: c)
 
     "Created: / 14-01-2013 / 15:57:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified: / 22-03-2013 / 09:00:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 23-08-2018 / 10:28:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 parseCommandPull
--- a/mercurial/HGCommandParserTests.st	Thu Aug 23 10:37:24 2018 +0100
+++ b/mercurial/HGCommandParserTests.st	Thu Aug 23 10:44:42 2018 +0100
@@ -348,6 +348,31 @@
     "Created: / 22-03-2013 / 08:55:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+test_cmd_merge_04
+
+    | nergeinfo |
+
+    nergeinfo := (HGCommandParser on:'merging Make.proto
+merging Make.spec
+merging MockHGP3Foo.st
+merging abbrev.stc
+merging bc.mak
+merging libInit.cc
+merging mocks_hg_p3.st
+merging p3.rc
+2 files updated, 3 files merged, 0 files removed, 5 files unresolved
+use ''hg resolve'' to retry unresolved file merges or ''hg merge --abort'' to abandon
+'
+) parseCommandMerge.
+
+    self assert: nergeinfo numUpdated = 2.
+    self assert: nergeinfo numMerged = 3.
+    self assert: nergeinfo numRemoved = 0.
+    self assert: nergeinfo numUnresolved = 5.
+
+    "Created: / 23-08-2018 / 10:40:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 test_cmd_pull_01
 
     | info |