mercurial/HGCommandParser.st
author Jan Vrany <jan.vrany@labware.com>
Fri, 19 Feb 2021 08:29:41 +0000
changeset 924 4d92f234f671
parent 867 7527dc6bc38e
child 927 2c1315a145fd
permissions -rw-r--r--
Rework and fix HGSourceCodeManager >> #revisionLogOf:...directory:module:` This commit changes the logic in two ways: 1. #newestRevision is now the newest revision in the branch that *contains* given file (not necesarily modidfes it). If there are multiple heads in that branch, pretty much random one is returned. This changes old behavior and therefore this commit updates tests. 2. If a specific single revision is requested, i.e., both from and to revisions are the same, revision log with that single revision is returned no matter whether it modifies the file or even contains that file at all. This is essentially a workaround to fix issue #305. Moreover, this commit simplifies the code a lot by delegating all the changeset searching and filtering to mercurial using revset expressions. See https://swing.fit.cvut.cz/projects/stx-jv/ticket/305#comment:3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
     1
"
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
     2
stx:libscm - a new source code management library for Smalltalk/X
509
f92210d4585b Updated copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 479
diff changeset
     3
Copyright (C) 2012-2015 Jan Vrany
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
     4
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
     5
This library is free software; you can redistribute it and/or
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
     6
modify it under the terms of the GNU Lesser General Public
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
     7
License as published by the Free Software Foundation; either
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
     8
version 2.1 of the License. 
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
     9
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    10
This library is distributed in the hope that it will be useful,
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    11
but WITHOUT ANY WARRANTY; without even the implied warranty of
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    13
Lesser General Public License for more details.
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    14
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    15
You should have received a copy of the GNU Lesser General Public
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    16
License along with this library; if not, write to the Free Software
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    17
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    18
"
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    19
"{ Package: 'stx:libscm/mercurial' }"
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    20
795
aea8f9d9a237 Fixes for Mercurial 4.3 that introduced new error message format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 511
diff changeset
    21
"{ NameSpace: Smalltalk }"
aea8f9d9a237 Fixes for Mercurial 4.3 that introduced new error message format
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 511
diff changeset
    22
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    23
Object subclass:#HGCommandParser
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    24
	instanceVariableNames:'stream command'
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    25
	classVariableNames:''
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    26
	poolDictionaries:''
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    27
	category:'SCM-Mercurial-Internal'
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    28
!
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    29
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    30
!HGCommandParser class methodsFor:'documentation'!
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    31
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    32
copyright
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    33
"
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    34
stx:libscm - a new source code management library for Smalltalk/X
509
f92210d4585b Updated copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 479
diff changeset
    35
Copyright (C) 2012-2015 Jan Vrany
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    36
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    37
This library is free software; you can redistribute it and/or
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    38
modify it under the terms of the GNU Lesser General Public
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    39
License as published by the Free Software Foundation; either
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    40
version 2.1 of the License. 
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    41
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    42
This library is distributed in the hope that it will be useful,
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    43
but WITHOUT ANY WARRANTY; without even the implied warranty of
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    44
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    45
Lesser General Public License for more details.
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    46
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    47
You should have received a copy of the GNU Lesser General Public
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    48
License along with this library; if not, write to the Free Software
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    49
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    50
"
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    51
! !
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    52
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
    53
!HGCommandParser class methodsFor:'instance creation'!
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
    54
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    55
for: anHGCommand on: aStringOrStream
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
    56
    | stream |
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
    57
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
    58
    stream := aStringOrStream isStream 
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
    59
                ifTrue:[aStringOrStream]
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
    60
                ifFalse:[aStringOrStream readStream].
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
    61
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    62
    ^self new
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    63
        command: anHGCommand;
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    64
        stream: stream;
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    65
        yourself
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    66
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    67
    "Created: / 04-02-2013 / 13:54:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    68
!
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    69
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    70
on: aStringOrStream
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    71
    ^self for: nil on: aStringOrStream
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
    72
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
    73
    "Created: / 23-10-2012 / 11:07:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    74
    "Modified: / 04-02-2013 / 13:55:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
    75
! !
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
    76
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
    77
!HGCommandParser class methodsFor:'templates'!
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
    78
867
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
    79
templateBranches
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
    80
    ^ '{branch}\0{rev}:{node}\0{ifeq(closed,''True'',''C'',ifeq(active,''False'',''I'',''A''))}\n'
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
    81
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
    82
    "Created: / 07-03-2019 / 11:02:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
    83
!
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
    84
106
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    85
templateHeads
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    86
    ^'{rev}:{node}\n'
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    87
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    88
    "Created: / 27-11-2012 / 21:25:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    89
!
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    90
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
    91
templateLog
476
9f97cda29c0e Do not use --debug option when running `log` and `branches` command
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 469
diff changeset
    92
    ^ '{rev}:{node}\n{branch}\n{p1rev}:{p1node} {p2rev}:{p2node} \n\n{file_adds}\n{file_copies}\n{file_dels}\n{file_mods}\n{author}\n{date|isodate}\n{desc}\n**EOE**\n'
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
    93
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
    94
    "Created: / 12-11-2012 / 23:06:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
476
9f97cda29c0e Do not use --debug option when running `log` and `branches` command
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 469
diff changeset
    95
    "Modified: / 22-11-2014 / 00:22:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
137
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
    96
!
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
    97
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
    98
templateLogChildren
372
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 366
diff changeset
    99
    ^ '{rev}:{node}\n{children}\n'
137
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   100
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   101
    "Created: / 05-12-2012 / 23:40:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
136
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   102
!
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   103
477
594a42a4d8fc Oops, fixed bug introduced in 9f97cda: care for version < 2.4
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 476
diff changeset
   104
templateLogForVersionLessThan2_4
594a42a4d8fc Oops, fixed bug introduced in 9f97cda: care for version < 2.4
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 476
diff changeset
   105
    ^ '{rev}:{node}\n{branch}\n{parents}\n\n{file_adds}\n{file_copies}\n{file_dels}\n{file_mods}\n{author}\n{date|isodate}\n{desc}\n**EOE**\n'
594a42a4d8fc Oops, fixed bug introduced in 9f97cda: care for version < 2.4
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 476
diff changeset
   106
594a42a4d8fc Oops, fixed bug introduced in 9f97cda: care for version < 2.4
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 476
diff changeset
   107
    "Created: / 27-11-2014 / 23:20:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
594a42a4d8fc Oops, fixed bug introduced in 9f97cda: care for version < 2.4
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 476
diff changeset
   108
!
594a42a4d8fc Oops, fixed bug introduced in 9f97cda: care for version < 2.4
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 476
diff changeset
   109
372
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 366
diff changeset
   110
templateLogIdsOnly
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 366
diff changeset
   111
    ^ '{rev}:{node}\n'
136
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   112
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   113
    "Created: / 05-12-2012 / 19:10:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   114
! !
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   115
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   116
!HGCommandParser methodsFor:'accessing'!
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   117
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   118
command
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   119
    ^ command
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   120
!
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   121
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   122
command:anHGCommand
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   123
    command := anHGCommand.
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   124
!
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   125
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   126
stream
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   127
    ^ stream
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   128
!
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   129
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   130
stream:something
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   131
    stream := something.
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   132
! !
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   133
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   134
!HGCommandParser methodsFor:'error reporting'!
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   135
51
61700cf82743 - HGCommandParser
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   136
error: aString
61700cf82743 - HGCommandParser
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   137
    <context: #return>
61700cf82743 - HGCommandParser
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   138
    <resource: #skipInDebuggersWalkBack>
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   139
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   140
    self propagate: HGCommandParseError message: aString
51
61700cf82743 - HGCommandParser
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   141
61700cf82743 - HGCommandParser
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   142
    "Created: / 14-11-2012 / 19:59:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   143
    "Modified: / 04-02-2013 / 21:50:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   144
!
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   145
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   146
notify: aString
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   147
    <context: #return>
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   148
    <resource: #skipInDebuggersWalkBack>
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   149
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   150
    self propagate: HGNotification message: aString
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   151
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   152
    "Created: / 04-02-2013 / 13:56:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   153
    "Modified: / 04-02-2013 / 21:50:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   154
!
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   155
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   156
propagate: anException
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   157
    "Propagates given exception to the caller og HGCommand>>execute
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   158
     (but only if command is set)"
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   159
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   160
    command notNil ifTrue:[
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   161
        command propagate: anException.
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   162
        anException isError ifTrue:[
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   163
            Processor activeProcess terminate
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   164
        ].
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   165
    ] ifFalse:[
499
1750e995c2f9 initial checkin
Claus Gittinger <cg@exept.de>
parents: 366
diff changeset
   166
        anException raiseSignal
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   167
    ].
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   168
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   169
    "Created: / 04-02-2013 / 21:38:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
403
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   170
    "Modified: / 19-03-2014 / 23:30:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   171
!
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   172
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   173
propagate: class message: message
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   174
    "Propagates an exception of given class with given message to
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   175
     the caller of HGCommand>>execute"
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   176
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   177
    ^self propagate: (class newException messageText: message)
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   178
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   179
    "Created: / 04-02-2013 / 21:50:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   180
!
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   181
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   182
warn: aString
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   183
    <context: #return>
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   184
    <resource: #skipInDebuggersWalkBack>
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   185
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   186
    self propagate: HGWarning message: aString
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   187
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   188
    "Created: / 04-02-2013 / 13:56:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   189
    "Modified: / 04-02-2013 / 21:50:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   190
! !
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   191
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   192
!HGCommandParser methodsFor:'parsing'!
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   193
403
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   194
parseBookmarks
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   195
    "Parse output of 'hg bookmarks' command. Return collection
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   196
     of orphaned HGBookmark"
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   197
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   198
    | bookmarks |
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   199
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   200
    bookmarks := OrderedCollection new.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   201
    [ stream atEnd ] whileFalse:[
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   202
        bookmarks add: self parseBookmarksEntry
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   203
    ].
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   204
    ^bookmarks
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   205
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   206
    "Created: / 20-03-2014 / 01:51:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   207
!
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   208
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   209
parseBookmarksEntry
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   210
    | bookmark |
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   211
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   212
    "Example:
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   213
       issue37-update-to-revision 399:858944cebec4
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   214
     * master                    403:5cc256ed28a1 
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   215
    "
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   216
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   217
    bookmark := HGBookmark new.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   218
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   219
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   220
    stream skipSeparators.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   221
    stream peek == $* ifTrue:[
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   222
        stream next.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   223
        stream skipSeparators.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   224
    ].
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   225
    bookmark setName: self parseName.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   226
    stream skipSeparators.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   227
    bookmark setChangesetId: self parseNodeId.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   228
    self expectLineEnd.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   229
    ^bookmark
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   230
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   231
    "Created: / 20-03-2014 / 01:52:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   232
    "Modified: / 20-03-2014 / 17:12:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   233
!
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   234
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   235
parseBranches
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   236
    "Parse output of 'hg branches' command. Return collection
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   237
     of orphaned HGBranch"
867
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   238
    
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   239
    | branches  branch |
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   240
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   241
    branches := OrderedCollection new.
867
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   242
    stream atEnd ifFalse:[
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   243
        branch := self 
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   244
                        parseBranchesEntryAllowForInvalidBranchheadsMessageEntryAllowForInvalidBranchheadsMessage:true.
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   245
        branch notNil ifTrue:[
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   246
            branches add:branch.
458
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   247
        ].
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   248
    ].
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   249
    [ stream atEnd ] whileFalse:[
867
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   250
        branch := self 
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   251
                        parseBranchesEntryAllowForInvalidBranchheadsMessageEntryAllowForInvalidBranchheadsMessage:false.
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   252
        branches add:branch.
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   253
    ].
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   254
    ^ branches
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   255
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   256
    "Created: / 09-03-2019 / 08:25:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   257
!
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   258
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   259
parseBranchesEntryAllowForInvalidBranchheadsMessageEntryAllowForInvalidBranchheadsMessage:allowForInvalidBrancheadsMessage 
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   260
    | name  branch  state |
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   261
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   262
    name := self parseNameUpToNullOrNewLine.
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   263
    allowForInvalidBrancheadsMessage ifTrue:[
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   264
        stream peek == Character null ifFalse:[
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   265
            | message |
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   266
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   267
            message := name , ' ' , stream nextLine.
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   268
            self notify:message.
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   269
            name := self parseNameUpToNullOrNewLine.
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   270
        ].
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   271
    ].
867
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   272
    branch := HGBranch new.
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   273
    branch setName:name.
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   274
    self expect:Character null.
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   275
    self parseNodeId.
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   276
    self expect:Character null.
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   277
    state := stream next.
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   278
    state == $A ifTrue:[
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   279
        branch setActive:true
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   280
    ] ifFalse:[
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   281
        state == $C ifTrue:[
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   282
            branch setClosed:true
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   283
        ] ifFalse:[
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   284
            state == $I ifTrue:[
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   285
                branch setActive:false
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   286
            ] ifFalse:[
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   287
                self error:'Invalid branch state: ' , state
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   288
            ]
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   289
        ]
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   290
    ].
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   291
    self expectLineEnd.
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   292
    ^ branch
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   293
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   294
    "Created: / 09-03-2019 / 08:26:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   295
!
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   296
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   297
parseBranchesOld
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   298
    "Parse output of 'hg branches' command. Return collection
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   299
     of orphaned HGBranch"
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   300
    
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   301
    | branches  branch |
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   302
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   303
    branches := OrderedCollection new.
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   304
    stream atEnd ifFalse:[
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   305
        branch := self parseBranchesOldEntryAllowForInvalidBranchheadsMessage:true.
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   306
        branch notNil ifTrue:[
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   307
            branches add:branch.
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   308
        ].
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   309
    ].
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   310
    [ stream atEnd ] whileFalse:[
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   311
        branch := self parseBranchesOldEntryAllowForInvalidBranchheadsMessage:false.
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   312
        branches add:branch.
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   313
    ].
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   314
    ^ branches
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   315
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   316
    "Created: / 27-11-2012 / 20:20:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
458
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   317
    "Modified: / 08-10-2014 / 20:56:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   318
!
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   319
867
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   320
parseBranchesOldEntryAllowForInvalidBranchheadsMessage:allowForInvalidBrancheadsMessage 
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   321
    | name  branch |
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   322
458
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   323
    name := self parseName.
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   324
    stream skipSeparators.
867
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   325
    allowForInvalidBrancheadsMessage ifTrue:[
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   326
        stream peek isDigit ifFalse:[
458
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   327
            | message |
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   328
867
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   329
            message := name , ' ' , stream nextLine.
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   330
            self notify:message.
458
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   331
            name := self parseName.
867
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   332
            stream skipSeparators.
458
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   333
        ].
867
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   334
    ].
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   335
    branch := HGBranch new.
867
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   336
    branch setName:name.
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   337
    self parseNodeId.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   338
    stream peek == Character space ifTrue:[
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   339
        stream next.
867
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   340
        stream peek == $( ifFalse:[
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   341
            self error:'''('' expected but ''' , stream peek , ''' found'
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   342
        ].
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   343
        stream next.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   344
        stream peek == $i ifTrue:[
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   345
            self expect:'inactive)'.
867
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   346
            branch setActive:false.
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   347
        ] ifFalse:[
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   348
            stream peek == $c ifTrue:[
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   349
                self expect:'closed)'.
867
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   350
                branch setClosed:true.
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   351
            ] ifFalse:[
867
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   352
                self 
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   353
                    error:'Unexpected branch attribute (only ''closed'' and ''inactive'' supported)'''
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   354
            ]
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   355
        ].
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   356
    ].
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   357
    self expectLineEnd.
867
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   358
    ^ branch
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   359
458
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   360
    "Created: / 08-10-2014 / 20:54:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   361
!
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   362
142
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
   363
parseConfig
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
   364
    "Parse output of 'hg showconfig' command, assuming the template given
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
   365
     was HGCommandParser templateLog. Return a list of HGChangeset."
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
   366
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   367
    | root |
142
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
   368
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   369
    root := HGConfig::Section new setName: '<root>'.
142
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
   370
    [ stream atEnd ] whileFalse:[
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   371
        self parseConfigEntryInto: root.
142
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
   372
    ].
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   373
    ^root
142
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
   374
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
   375
    "Created: / 06-12-2012 / 16:00:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   376
    "Modified: / 06-12-2012 / 19:59:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
142
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
   377
!
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
   378
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   379
parseConfigEntryInto: root
142
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
   380
    | entry out |
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
   381
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   382
    entry := root.
142
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
   383
    out := String new writeStream.
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   384
    [ stream atEnd or:[stream peek == $=] ] whileFalse:[
142
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
   385
        stream peek == $. ifTrue:[
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   386
            entry := entry at: out contents ifAbsentPut: [
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   387
                HGConfig::Section new setName: out contents.
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   388
            ].
142
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
   389
            out reset.
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
   390
            stream next.
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
   391
        ] ifFalse:[
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
   392
            out nextPut: stream next.
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
   393
        ].
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
   394
    ].
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
   395
    stream next.
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   396
    entry at: out contents put:
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   397
        (HGConfig::Entry new setName: out contents value:stream nextLine)
142
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
   398
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   399
    "Created: / 06-12-2012 / 19:41:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
142
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
   400
!
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
   401
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   402
parseDate
504
395a5253c3d4 Fixed date (Timestamp) parsing after changes in Timestamp 1.159
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 499
diff changeset
   403
    | ts c |
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   404
    ts := Timestamp readIso8601FormatFrom:stream.
504
395a5253c3d4 Fixed date (Timestamp) parsing after changes in Timestamp 1.159
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 499
diff changeset
   405
    c := stream peek.
395a5253c3d4 Fixed date (Timestamp) parsing after changes in Timestamp 1.159
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 499
diff changeset
   406
    c == Character space ifTrue:[ 
395a5253c3d4 Fixed date (Timestamp) parsing after changes in Timestamp 1.159
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 499
diff changeset
   407
        stream next.
395a5253c3d4 Fixed date (Timestamp) parsing after changes in Timestamp 1.159
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 499
diff changeset
   408
        c := stream peek.
395a5253c3d4 Fixed date (Timestamp) parsing after changes in Timestamp 1.159
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 499
diff changeset
   409
    ].
395a5253c3d4 Fixed date (Timestamp) parsing after changes in Timestamp 1.159
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 499
diff changeset
   410
    (c == $+ or:[c == $-]) ifFalse:[
395a5253c3d4 Fixed date (Timestamp) parsing after changes in Timestamp 1.159
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 499
diff changeset
   411
        self error:'Cannot read timezone: ''+'' or ''-'' expected, ''' , c , ''' found'
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   412
    ].
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   413
    stream next.
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   414
    4 timesRepeat:[
504
395a5253c3d4 Fixed date (Timestamp) parsing after changes in Timestamp 1.159
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 499
diff changeset
   415
        ('0123456789' includes: (c := stream peek)) ifFalse:[
395a5253c3d4 Fixed date (Timestamp) parsing after changes in Timestamp 1.159
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 499
diff changeset
   416
            self error:'Cannot read timezone: digit expected, ''' , c , ''' found'
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   417
        ].
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   418
        stream next.
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   419
    ].
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   420
    ^ts
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   421
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   422
    "Created: / 13-11-2012 / 10:22:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
504
395a5253c3d4 Fixed date (Timestamp) parsing after changes in Timestamp 1.159
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 499
diff changeset
   423
    "Modified: / 06-11-2014 / 10:44:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   424
!
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   425
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   426
parseInteger
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   427
    "Parses integer from stream and returns it"
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   428
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   429
    ^Integer readFrom: stream onError:[self error: 'integer value expected']
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   430
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   431
    "
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   432
    (HGCommandParser on: '12 34' readStream) parseInteger; skipSeparators; parseInteger
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   433
    "
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   434
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   435
    "Created: / 19-11-2012 / 20:05:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   436
!
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   437
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   438
parseLog
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   439
    "Parse output of 'hg log' command, assuming the template given
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   440
     was HGCommandParser templateLog. Return a list of HGRevision."
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   441
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   442
    | revs |
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   443
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   444
    revs := OrderedCollection new.
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   445
    [ stream atEnd ] whileFalse:[
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   446
        | rev |
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   447
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   448
        rev := self parseLogEntry.
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   449
        revs add: rev.
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   450
    ].
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   451
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   452
    ^revs.
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   453
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   454
    "Created: / 13-11-2012 / 09:46:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   455
!
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   456
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   457
parseLogEntry
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   458
    "Parse single revision entry, assuming the template given
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   459
     was HGCommandParser templateLog. Return a HGRevision."
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   460
135
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   461
    | rev branches line message adds copies deletions modifications |
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   462
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   463
    rev := HGChangeset new.
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   464
    rev setId: self parseNodeId. self expectLineEnd.
866
8a885a75daa9 Issue 256: fix parsing branch name from changelog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 865
diff changeset
   465
    branches := Array with: stream nextLine.
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   466
    rev setBranches: branches.
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   467
    rev setParent1Id: self parseNodeId. self expectSpace.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   468
    rev setParent2Id: self parseNodeId. self expectSpace. self expectLineEnd.
137
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   469
    "rev setChildren: self parseNodeIdList." self expectLineEnd.
135
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   470
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   471
    adds := self parsePathList. self expectLineEnd.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   472
    copies := self parsePathCopyList. self expectLineEnd.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   473
    deletions := self parsePathList. self expectLineEnd.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   474
    modifications := self parsePathList. self expectLineEnd.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   475
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   476
    copies pairsDo:[:dst :src|
346
8a906e350b13 Fix in HGCommandParser>>#parseLogEntry.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 336
diff changeset
   477
        adds remove: dst ifAbsent:[].
8a906e350b13 Fix in HGCommandParser>>#parseLogEntry.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 336
diff changeset
   478
        deletions remove: src ifAbsent:[].
135
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   479
    ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   480
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   481
    adds := adds collect:[:e|HGChange newAdded setChangeset: rev path: e].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   482
    copies := copies collect:[:e|HGChange newCopied setChangeset: rev path: e first; setSource: e second].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   483
    deletions := deletions collect:[:e|HGChange newRemoved setChangeset: rev path: e].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   484
    modifications := modifications collect:[:e|HGChange newModified setChangeset: rev path: e].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   485
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   486
    rev setChanges: modifications , adds , deletions , copies.
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   487
    rev setAuthor: self nextLine.
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   488
    rev setTimestamp: self parseDate. self expectLineEnd.
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   489
    message := String streamContents:[:s|
93
2579830f6b61 Tests fixed. Not-yet-supported tests marked as skipped.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   490
        line := self nextLine.
2579830f6b61 Tests fixed. Not-yet-supported tests marked as skipped.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   491
        s nextPutAll: line.
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   492
        [ line := self nextLine . line = '**EOE**' ] whileFalse:[
93
2579830f6b61 Tests fixed. Not-yet-supported tests marked as skipped.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   493
            s cr.
2579830f6b61 Tests fixed. Not-yet-supported tests marked as skipped.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   494
            s nextPutAll: line
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   495
        ].
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   496
    ].
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   497
    rev setMessage: message.
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   498
    rev setNonLazy.
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   499
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   500
    ^rev
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   501
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   502
    "Created: / 13-11-2012 / 09:45:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
866
8a885a75daa9 Issue 256: fix parsing branch name from changelog
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 865
diff changeset
   503
    "Modified: / 07-01-2019 / 22:51:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   504
!
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   505
276
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   506
parseMergeLocalChanged: info
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   507
    "Parses
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   508
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   509
    local changed lcmake.bat which remote deleted
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   510
    use (c)hanged version or (d)elete? c
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   511
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   512
    " 
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   513
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   514
    self expect: 'local changed'.
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   515
    stream nextLine.
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   516
    self expect: 'use'.
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   517
    stream nextLine.
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   518
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   519
    "Created: / 22-03-2013 / 08:59:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   520
!
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   521
177
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   522
parseMergePath: info
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   523
    "Parses 'merging Make.proto' line" 
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   524
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   525
    self expect: 'merging '.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   526
    self parsePath.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   527
    self expectLineEnd.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   528
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   529
    "Created: / 14-01-2013 / 15:56:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   530
!
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   531
180
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   532
parseMergeRemoteChanged: info
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   533
    "Parses
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   534
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   535
    remote changed CharacterEncoderImplementations__SJIS.st which local deleted
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   536
    use (c)hanged version or leave (d)eleted? c
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   537
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   538
    " 
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   539
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   540
    self expect: 'remote changed'.
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   541
    stream nextLine.
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   542
    self expect: 'use'.
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   543
    stream nextLine.
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   544
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   545
    "Created: / 15-01-2013 / 09:59:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   546
!
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   547
177
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   548
parseMergeSummary
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   549
    ^self parseMergeSummary: HGMergeInfo new
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   550
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   551
    "Created: / 14-01-2013 / 15:48:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   552
!
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   553
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   554
parseMergeSummary: info
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   555
    "Example:
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   556
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   557
        '9 files updated, 0 files merged, 1 files removed, 0 files unresolved'
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   558
    "
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   559
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   560
    info setNumUpdated: self parseInteger.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   561
    self expect: ' files updated, '.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   562
    info setNumMerged: self parseInteger.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   563
    self expect: ' files merged, '.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   564
    info setNumRemoved: self parseInteger.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   565
    self expect: ' files removed, '.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   566
    info setNumUnresolved: self parseInteger.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   567
    self expect: ' files unresolved'.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   568
    self expectLineEnd.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   569
    ^info
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   570
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   571
    "Created: / 14-01-2013 / 15:52:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   572
!
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   573
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   574
parseName
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   575
    ^String streamContents:[:out|
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   576
        [ stream peek isSeparator ] whileFalse:[
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   577
            out nextPut:stream next
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   578
        ]
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   579
    ].
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   580
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   581
    "Created: / 27-11-2012 / 20:21:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
867
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   582
    "Modified: / 07-03-2019 / 11:17:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   583
!
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   584
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   585
parseNameList
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   586
    | list |
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   587
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   588
    stream atEnd ifTrue:[ ^#() ].
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   589
    stream peek isSeparator ifTrue:[ ^#() ].
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   590
    list := OrderedCollection new.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   591
    list add: self parseName.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   592
    [ stream atEnd not and:[stream peek == Character space]] whileTrue:[
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   593
        stream next. "/eat space.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   594
        list add: self parseName.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   595
    ].
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   596
    ^list.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   597
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   598
    "Created: / 27-11-2012 / 20:30:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   599
!
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   600
867
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   601
parseNameUpTo: terminator1 or: terminator2
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   602
    ^String streamContents:[:out|
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   603
        | c |    
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   604
        [ c := stream peek. c == terminator1 or:[ c == terminator2] ] whileFalse:[
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   605
            out nextPut:stream next
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   606
        ]
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   607
    ].
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   608
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   609
    "Created: / 07-03-2019 / 12:16:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   610
!
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   611
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   612
parseNameUpToNullOrNewLine
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   613
    ^ self parseNameUpTo: Character null or: Character cr.
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   614
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   615
    "Created: / 07-03-2019 / 12:16:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   616
!
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   617
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   618
parseNameZ    
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   619
    ^String streamContents:[:out|
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   620
        [ stream peek == Character null ] whileFalse:[
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   621
            out nextPut:stream next
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   622
        ]
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   623
    ].
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   624
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   625
    "Created: / 07-03-2019 / 11:18:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   626
!
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   627
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   628
parseNodeId
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   629
    "Parses node id from stream and returns it. Support both,
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   630
     short and full node ids"
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   631
103
04731ef44417 HGNodeId renamed to HGChangesetId
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 93
diff changeset
   632
    ^HGChangesetId readFrom: stream onError:[:msg|self error: msg]
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   633
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   634
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   635
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   636
    "
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   637
        (HGCommandParser on: '4:6f88e1f44d9eb86e0b56ca15e30e5d786acd83c7' readStream) parseNodeId
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   638
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   639
        Bad ones:
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   640
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   641
        (HGCommandParser on: '4:6f88e1f44d9eb86e0b56ca15e30e5d786acd' readStream) parseNodeId
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   642
        (HGCommandParser on: '4:6f88Z1f44d9eb86e0b56ca15e30e5d786acd83c7' readStream) parseNodeId
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   643
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   644
    "
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   645
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   646
    "Created: / 13-11-2012 / 10:22:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   647
    "Modified: / 13-11-2012 / 16:52:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
134
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   648
!
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   649
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   650
parseNodeIdList
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   651
    "Parses node id list from stream and returns it. Support both,
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   652
     short and full node ids."
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   653
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   654
    | ids |
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   655
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   656
    stream atEnd ifTrue:[ ^ #() ].
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   657
    stream peek == Character cr ifTrue:[ ^ #() ].
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   658
    ids := OrderedCollection new.
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   659
    [ stream peek ~~ Character cr ] whileTrue:[
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   660
        ids add: self parseNodeId.
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   661
        stream peek == Character space ifTrue:[stream next].
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   662
    ].
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   663
    ^ids
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   664
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   665
    "Created: / 05-12-2012 / 17:24:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
135
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   666
!
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   667
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   668
parsePath
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   669
    "Parse single path entry from repository"
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   670
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   671
    ^self parseName
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   672
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   673
    "Created: / 05-12-2012 / 18:27:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   674
!
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   675
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   676
parsePathCopy
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   677
    "Parse single path entry from repository"
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   678
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   679
    | dst src |
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   680
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   681
    dst := self parseName.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   682
    self expectSpace.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   683
    self expect:$(.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   684
    src := String streamContents:[:out|
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   685
        [ stream peek == $) ] whileFalse:[
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   686
            out nextPut:stream next
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   687
        ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   688
        stream next.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   689
    ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   690
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   691
    ^Array with: dst with: src
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   692
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   693
    "Created: / 05-12-2012 / 18:38:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   694
!
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   695
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   696
parsePathCopyList
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   697
    | list |
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   698
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   699
    stream atEnd ifTrue:[ ^#() ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   700
    stream peek isSeparator ifTrue:[ ^#() ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   701
    list := OrderedCollection new.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   702
    list add: self parsePathCopy.
169
3e156584235f Bugfix: HGCommandParser>>parsePathCopyList.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 165
diff changeset
   703
    [ stream atEnd not and:[stream peek ~= Character cr]] whileTrue:[
3e156584235f Bugfix: HGCommandParser>>parsePathCopyList.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 165
diff changeset
   704
        "/stream next. "/eat space.
135
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   705
        list add: self parsePathCopy.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   706
    ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   707
    ^list.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   708
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   709
    "Created: / 05-12-2012 / 18:39:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
169
3e156584235f Bugfix: HGCommandParser>>parsePathCopyList.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 165
diff changeset
   710
    "Modified: / 10-01-2013 / 23:25:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
135
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   711
!
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   712
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   713
parsePathList
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   714
    | list |
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   715
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   716
    stream atEnd ifTrue:[ ^#() ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   717
    stream peek isSeparator ifTrue:[ ^#() ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   718
    list := OrderedCollection new.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   719
    list add: self parsePath.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   720
    [ stream atEnd not and:[stream peek == Character space]] whileTrue:[
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   721
        stream next. "/eat space.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   722
        list add: self parsePath.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   723
    ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   724
    ^list.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   725
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   726
    "Created: / 05-12-2012 / 18:27:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
151
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   727
!
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   728
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   729
parsePushPull
804
e73451884939 Fixes for Mecruial 4.4: fixed parser of push/pull summary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   730
    | info |
e73451884939 Fixes for Mecruial 4.4: fixed parser of push/pull summary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   731
    info := HGPushPullInfo new.
336
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   732
    [ stream atEnd ] whileFalse:[
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   733
        | ln |
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   734
        ln := stream nextLine.
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   735
        (ln startsWith:'(run ''hg') ifFalse:[
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   736
            (ln startsWith:'remote: ') ifTrue:[
804
e73451884939 Fixes for Mecruial 4.4: fixed parser of push/pull summary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   737
                ln := ln copyFrom: 9
336
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   738
            ].
804
e73451884939 Fixes for Mecruial 4.4: fixed parser of push/pull summary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   739
            self notify: ln.
e73451884939 Fixes for Mecruial 4.4: fixed parser of push/pull summary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   740
            (ln startsWith:'added ') ifTrue:[
e73451884939 Fixes for Mecruial 4.4: fixed parser of push/pull summary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   741
                self parsePushPullSummaryInto: info from: ln readStream.  
e73451884939 Fixes for Mecruial 4.4: fixed parser of push/pull summary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   742
            ]
336
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   743
        ]
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   744
    ].
804
e73451884939 Fixes for Mecruial 4.4: fixed parser of push/pull summary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   745
    ^info.
336
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   746
    
151
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   747
336
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   748
"/    #(
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   749
"/        'adding changesets'
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   750
"/        'adding manifests'
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   751
"/        'adding file changes'
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   752
"/    ) do:[:info|
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   753
"/        stream peek == $r ifTrue:[
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   754
"/            self expect: 'remote: '.
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   755
"/        ].
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   756
"/        self expect:info; expectLineEnd.
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   757
"/        self notify:info.
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   758
"/    ].
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   759
"/    ^self parsePushPullSummary
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   760
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   761
    "Created: / 04-02-2013 / 15:01:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
804
e73451884939 Fixes for Mecruial 4.4: fixed parser of push/pull summary
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   762
    "Modified: / 30-12-2017 / 08:46:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   763
!
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   764
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   765
parsePushPullSummary
336
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   766
    ^self parsePushPullSummaryInto:HGPushPullInfo new
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   767
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   768
    "Created: / 04-02-2013 / 15:02:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   769
!
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   770
336
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   771
parsePushPullSummaryInto:info 
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   772
    "Example:
151
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   773
336
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   774
        'added 1 changesets with 1 changes to 1 files (+1 heads)'"
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   775
    
222
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   776
    | c |
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   777
303
aee999e9dc25 Bugfixes in push parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 276
diff changeset
   778
    stream peek == $r ifTrue:[
336
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   779
        self expect:'remote: '.
303
aee999e9dc25 Bugfixes in push parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 276
diff changeset
   780
    ].
336
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   781
    self expect:'added '.
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   782
    info setNumChangesets:self parseInteger.
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   783
    self expect:' changesets with '.
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   784
    info setNumChanges:self parseInteger.
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   785
    self expect:' changes to '.
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   786
    info setNumFiles:self parseInteger.
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   787
    self expect:' files'.
222
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   788
    c := stream next.
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   789
    c == Character space ifTrue:[
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   790
        self expect:$(.
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   791
        c := stream next.
336
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   792
        ('+-' includes:c) ifFalse:[
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   793
            self error:('got ''%1'', ''+'' or ''-'' expected' bindWith:c).
222
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   794
        ].
336
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   795
        info 
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   796
            setNumHeads:(self parseInteger * ((c == $-) ifTrue:[ -1 ] ifFalse:[ 1 ])).
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   797
        ^ info
222
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   798
    ].
336
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   799
    (stream atEnd or:[c == Character cr]) ifTrue:[
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   800
        ^ info
222
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   801
    ].
336
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   802
    self error:('got ''%1'', new line or space expected' bindWith:c).
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   803
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   804
    "Created: / 04-02-2013 / 15:26:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
336
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   805
    "Modified: / 13-07-2013 / 11:55:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   806
!
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   807
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   808
parsePushPullSummaryInto: info from: auxStream
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   809
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   810
    | oldStream |
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   811
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   812
    oldStream := stream.
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   813
    [
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   814
        stream := auxStream.
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   815
        self parsePushPullSummaryInto: info
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   816
    ] ensure:[
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   817
        stream := oldStream.
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   818
    ].
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   819
    ^info
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   820
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   821
    "Created: / 13-07-2013 / 11:43:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   822
! !
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   823
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   824
!HGCommandParser methodsFor:'parsing - commands'!
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   825
403
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   826
parseCommandBookmarks
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   827
    "Parse output of 'hg bookmarks' command. Return collection
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   828
     of orphaned HGBookmark"
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   829
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   830
    ^self parseBookmarks
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   831
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   832
    "Created: / 20-03-2014 / 01:51:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   833
!
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   834
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   835
parseCommandBranches
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   836
    "Parse output of 'hg branches' command. Return collection
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   837
     of orphaned HGBranch"
867
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   838
    
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   839
    ^ self parseBranches
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   840
867
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   841
    "Created: / 09-03-2019 / 08:19:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   842
!
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   843
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   844
parseCommandBranchesOld
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   845
    "Parse output of 'hg branches' command. Return collection
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   846
     of orphaned HGBranch"
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   847
    
7527dc6bc38e Issue 256: fix parsing branch list when branch name(s) contains spaces
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 866
diff changeset
   848
    ^ self parseBranchesOld
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   849
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   850
    "Created: / 27-11-2012 / 19:16:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   851
    "Modified: / 27-11-2012 / 20:21:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   852
!
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   853
106
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   854
parseCommandHeads
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   855
    "Parse output of 'hg heads' command, assuming the template given
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   856
     was HGCommandParser templateHeads. Return a list of HGChangesetId."
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   857
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   858
    | ids |
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   859
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   860
    ids := OrderedCollection new.
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   861
    [ stream atEnd ] whileFalse:[
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   862
        ids add: self parseNodeId. self expectLineEnd.
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   863
    ].
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   864
    ^ids
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   865
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   866
    "Created: / 27-11-2012 / 21:24:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   867
!
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   868
366
9da938d1e76a Added support for `hg help` command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 358
diff changeset
   869
parseCommandHelp 
9da938d1e76a Added support for `hg help` command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 358
diff changeset
   870
    "Parse output of 'hg help topic'"
9da938d1e76a Added support for `hg help` command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 358
diff changeset
   871
9da938d1e76a Added support for `hg help` command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 358
diff changeset
   872
    ^ String streamContents:[ :out |
9da938d1e76a Added support for `hg help` command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 358
diff changeset
   873
        [ stream atEnd ] whileFalse:[ 
9da938d1e76a Added support for `hg help` command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 358
diff changeset
   874
            out nextPutLine: stream nextLine              
9da938d1e76a Added support for `hg help` command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 358
diff changeset
   875
        ].
9da938d1e76a Added support for `hg help` command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 358
diff changeset
   876
    ]
9da938d1e76a Added support for `hg help` command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 358
diff changeset
   877
9da938d1e76a Added support for `hg help` command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 358
diff changeset
   878
    "Created: / 07-02-2014 / 10:17:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9da938d1e76a Added support for `hg help` command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 358
diff changeset
   879
!
9da938d1e76a Added support for `hg help` command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 358
diff changeset
   880
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   881
parseCommandLocate
71
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   882
    "Filenames are 0-byte separated. Yeah, Mercurial is easy
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   883
     to parse"
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   884
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   885
    | filenames |
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   886
    filenames := OrderedCollection new.
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   887
    [ stream atEnd ] whileFalse:[
77
b6070a017acd Fixes for ercurial < 2.3
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 71
diff changeset
   888
        | filename |
b6070a017acd Fixes for ercurial < 2.3
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 71
diff changeset
   889
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   890
        filename := stream nextLine.
77
b6070a017acd Fixes for ercurial < 2.3
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 71
diff changeset
   891
        "/ Workaround for Mercurial 2.3.x which includes trailing new line
b6070a017acd Fixes for ercurial < 2.3
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 71
diff changeset
   892
        (filename size ~~ 1 or:[filename first ~~ Character cr]) ifTrue:[
b6070a017acd Fixes for ercurial < 2.3
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 71
diff changeset
   893
            filenames add:  filename
b6070a017acd Fixes for ercurial < 2.3
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 71
diff changeset
   894
        ]
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   895
    ].
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   896
    ^filenames.
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   897
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   898
    "Created: / 16-11-2012 / 22:35:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   899
    "Modified: / 16-12-2012 / 00:09:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   900
!
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   901
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   902
parseCommandLog
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   903
    "Parse output of 'hg log' command, assuming the template given
106
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   904
     was HGCommandParser templateLog. Return a list of HGChangeset."
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   905
458
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   906
    "/ As of mercurial 3.1.1, a message like
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   907
    "/ 'invalid branchheads cache (visible): tip differs
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   908
    "/ may be written to the stdout. Following code test for it
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   909
    stream peek == $i ifTrue:[ 
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   910
        self notify: stream nextLine.  
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   911
    ].
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   912
    ^self parseLog
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   913
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   914
    "Created: / 13-11-2012 / 09:09:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
458
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   915
    "Modified: / 08-10-2014 / 21:22:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   916
!
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   917
137
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   918
parseCommandLogChildren
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   919
    "Parse output of 'hg log <path>' command, assuming the template given
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   920
     was HGCommandParser templateLogChildren. Return a list of pairs (HGChangesetId, list of HGChangesetId)"
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   921
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   922
    | revsAndChildren |
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   923
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   924
    revsAndChildren := OrderedCollection new.
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   925
    [ stream atEnd ] whileFalse:[
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   926
        | rev children |
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   927
        rev := self parseNodeId. self expectLineEnd.
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   928
        stream atEnd ifFalse:[
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   929
            children := self parseNodeIdList. self expectLineEnd.
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   930
        ] ifTrue: [
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   931
            children := #().
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   932
        ].
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   933
        revsAndChildren add: (Array with: rev with: children).
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   934
    ].
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   935
    ^revsAndChildren
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   936
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   937
    "Created: / 05-12-2012 / 23:44:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   938
!
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   939
372
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 366
diff changeset
   940
parseCommandLogIdsOnly
136
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   941
    "Parse output of 'hg log <path>' command, assuming the template given
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   942
     was HGCommandParser templateLogFile. Return a list of HGChangesetId."
372
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 366
diff changeset
   943
    
136
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   944
    | ids |
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   945
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   946
    ids := OrderedCollection new.
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   947
    [ stream atEnd ] whileFalse:[
372
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 366
diff changeset
   948
        ids add:self parseNodeId.
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 366
diff changeset
   949
        self expectLineEnd.
136
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   950
    ].
372
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 366
diff changeset
   951
    ^ ids
136
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   952
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   953
    "Created: / 05-12-2012 / 19:15:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   954
!
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   955
177
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   956
parseCommandMerge
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   957
    "Parse output of 'hg update' command. "
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   958
219
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   959
    | info c |
177
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   960
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   961
    info := HGMergeInfo new.
180
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   962
    [ stream peek isDigit ] whileFalse:[
276
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   963
        [ c := stream peek. c isSeparator ] whileTrue:[ stream next ].
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   964
        c == $m ifTrue:[
180
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   965
            self parseMergePath: info.
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   966
        ] ifFalse:[
276
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   967
            c == $r ifTrue:[
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   968
                self parseMergeRemoteChanged: info
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   969
            ] ifFalse:[
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   970
                c == $l ifTrue:[
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   971
                    self parseMergeLocalChanged: info
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   972
                ] ifFalse:[
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   973
                    self error:'Unexpected merge line'
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   974
                ]
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   975
            ]
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   976
        ]
177
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   977
    ].
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   978
    self parseMergeSummary: info.
219
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   979
    c := stream next.
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   980
    c == $( ifTrue:[
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   981
        self expect: 'branch merge, don''t forget to commit)'.
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   982
        self expectLineEnd.
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   983
        ^info
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   984
    ].
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   985
    c == $u ifTrue:[
859
d990a97b26a4 Fix parsing og `hg merge` output for Mercurial 4.6 and newer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 808
diff changeset
   986
        "/ Mercurial 4.6 and newer prints
d990a97b26a4 Fix parsing og `hg merge` output for Mercurial 4.6 and newer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 808
diff changeset
   987
        "/ 
d990a97b26a4 Fix parsing og `hg merge` output for Mercurial 4.6 and newer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 808
diff changeset
   988
        "/     use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
d990a97b26a4 Fix parsing og `hg merge` output for Mercurial 4.6 and newer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 808
diff changeset
   989
        "/ 
d990a97b26a4 Fix parsing og `hg merge` output for Mercurial 4.6 and newer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 808
diff changeset
   990
        "/ while older versions print
d990a97b26a4 Fix parsing og `hg merge` output for Mercurial 4.6 and newer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 808
diff changeset
   991
        "/ 
d990a97b26a4 Fix parsing og `hg merge` output for Mercurial 4.6 and newer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 808
diff changeset
   992
        "/      use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
d990a97b26a4 Fix parsing og `hg merge` output for Mercurial 4.6 and newer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 808
diff changeset
   993
        "/ 
d990a97b26a4 Fix parsing og `hg merge` output for Mercurial 4.6 and newer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 808
diff changeset
   994
        "/ We have to support both...
d990a97b26a4 Fix parsing og `hg merge` output for Mercurial 4.6 and newer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 808
diff changeset
   995
d990a97b26a4 Fix parsing og `hg merge` output for Mercurial 4.6 and newer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 808
diff changeset
   996
        self expect: 'se ''hg resolve'' to retry unresolved file merges or ''hg '.
d990a97b26a4 Fix parsing og `hg merge` output for Mercurial 4.6 and newer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 808
diff changeset
   997
        self nextLine. "/ eat the rest of the line
219
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   998
        ^info
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   999
    ].
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
  1000
    self error:('Unexpected character ''%1'' expecting ''('' or ''u''' bindWith: c)
177
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1001
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1002
    "Created: / 14-01-2013 / 15:57:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
859
d990a97b26a4 Fix parsing og `hg merge` output for Mercurial 4.6 and newer
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 808
diff changeset
  1003
    "Modified: / 23-08-2018 / 10:28:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
177
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1004
!
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1005
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
  1006
parseCommandPull
453
09a9ccac8aba Fixed timing issues for push/pull commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 444
diff changeset
  1007
    "Parse output of 'hg pull' command."
358
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1008
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
  1009
    "
358
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1010
    Ex:
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
  1011
358
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1012
    pulling from ssh://dialin.exept.de/repositories/hg/exept.workflow
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1013
    searching for changes
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1014
    adding changesets
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1015
    adding manifests
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1016
    adding file changes
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1017
    added 16 changesets with 16 changes to 14 files (+1 heads)
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1018
    (run ''hg heads'' to see heads)       
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1019
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1020
    "
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1021
    | c |
453
09a9ccac8aba Fixed timing issues for push/pull commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 444
diff changeset
  1022
09a9ccac8aba Fixed timing issues for push/pull commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 444
diff changeset
  1023
    stream atEnd ifTrue:[
09a9ccac8aba Fixed timing issues for push/pull commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 444
diff changeset
  1024
        ^ nil
09a9ccac8aba Fixed timing issues for push/pull commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 444
diff changeset
  1025
    ].
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
  1026
    
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
  1027
    self expect:'pulling from'. stream nextLine.
230
d202597d67a5 Bugfix for pull command. Do not update temporary working copy if it is already.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
  1028
    c := stream peek.
d202597d67a5 Bugfix for pull command. Do not update temporary working copy if it is already.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
  1029
    c == $s ifTrue:[
d202597d67a5 Bugfix for pull command. Do not update temporary working copy if it is already.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
  1030
        self expect: 'searching for changes'. stream nextLine.
d202597d67a5 Bugfix for pull command. Do not update temporary working copy if it is already.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
  1031
        self notify: 'searching for changes'.
d202597d67a5 Bugfix for pull command. Do not update temporary working copy if it is already.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
  1032
        c := stream peek.
d202597d67a5 Bugfix for pull command. Do not update temporary working copy if it is already.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
  1033
    ].
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1034
    c == $r ifTrue:[
230
d202597d67a5 Bugfix for pull command. Do not update temporary working copy if it is already.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
  1035
        self expect: 'requesting all changes'. stream nextLine.
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1036
        self notify: 'requesting all changes'.
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1037
        ^self parsePushPull
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1038
    ].
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1039
    c == $n ifTrue:[
230
d202597d67a5 Bugfix for pull command. Do not update temporary working copy if it is already.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 229
diff changeset
  1040
        self expect: 'no changes found'. stream nextLine.
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1041
        self notify: 'no changes found'.
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1042
        ^HGPushPullInfo new
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1043
    ].
358
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1044
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1045
    [ c == $a ] whileTrue:[
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1046
        self expect: 'add'.
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1047
        c := stream peek.
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1048
        c == $i ifTrue:[
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1049
            "/ adding ...
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1050
            self expect: 'ing '.
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1051
            c := stream peek.
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1052
            c == $c ifTrue:[
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1053
                self expect: 'changesets'. stream nextLine.
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1054
                self notify: 'adding changesets'.
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1055
            ] ifFalse:[
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1056
            c == $m ifTrue:[
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1057
                self expect: 'manifests'. stream nextLine.
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1058
                self notify: 'adding manifests'.
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1059
            ] ifFalse:[
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1060
            c == $f ifTrue:[
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1061
                self expect: 'file changes'. stream nextLine.
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1062
                self notify: 'adding file changes'.  
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1063
            ]]]
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1064
        ] ifFalse:[
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1065
        c == $e ifTrue:[
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1066
            "/ added ... ('add' already eaten...)
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1067
            | line |
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1068
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1069
            line := 'add' , stream nextLine.
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1070
            ^ self parsePushPullSummaryInto: HGPushPullInfo new from: line readStream.
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1071
        ]].
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1072
        c := stream peek.
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1073
    ].
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1074
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1075
    self error:('Unexpected character ''%1'' expecting ''r'' or ''n''' bindWith: c)
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
  1076
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
  1077
    "Created: / 04-02-2013 / 15:35:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
358
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
  1078
    "Modified: / 14-11-2013 / 13:25:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
  1079
!
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
  1080
151
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
  1081
parseCommandPush
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
  1082
    "Parse output of 'hg push' command. "
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
  1083
    "
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
  1084
     Ex:
151
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
  1085
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
  1086
     pushing to /tmp/stx_tmp/stxtmp_7733_20/upstream
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
  1087
     searching for changes
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1088
    "
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1089
    | c |
453
09a9ccac8aba Fixed timing issues for push/pull commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 444
diff changeset
  1090
09a9ccac8aba Fixed timing issues for push/pull commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 444
diff changeset
  1091
    stream atEnd ifTrue:[
09a9ccac8aba Fixed timing issues for push/pull commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 444
diff changeset
  1092
        ^ nil
09a9ccac8aba Fixed timing issues for push/pull commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 444
diff changeset
  1093
    ].
09a9ccac8aba Fixed timing issues for push/pull commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 444
diff changeset
  1094
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
  1095
    
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
  1096
    self expect:'pushing to'.stream nextLine.
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1097
    stream atEnd ifTrue:[ ^ nil ].
229
e7d6ea3f553f Bugfix: push command (tested by HGTests>>test_push_01)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 228
diff changeset
  1098
    c := stream peek.
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1099
    c == $s ifTrue:[
229
e7d6ea3f553f Bugfix: push command (tested by HGTests>>test_push_01)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 228
diff changeset
  1100
        self expect: 'searching for changes'. stream nextLine.
e7d6ea3f553f Bugfix: push command (tested by HGTests>>test_push_01)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 228
diff changeset
  1101
        self notify: 'searching for changes'.
e7d6ea3f553f Bugfix: push command (tested by HGTests>>test_push_01)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 228
diff changeset
  1102
        c := stream peek.
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1103
    ].
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1104
    c == $n ifTrue:[
228
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
  1105
        self expect:'no changes found'. stream nextLine.
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1106
        self notify: 'no changes found'.
453
09a9ccac8aba Fixed timing issues for push/pull commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 444
diff changeset
  1107
        ^ HGPushPullInfo new
228
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
  1108
    ] ifFalse:[
453
09a9ccac8aba Fixed timing issues for push/pull commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 444
diff changeset
  1109
        ^ self parsePushPull
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1110
    ].
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1111
    self error:('Unexpected character ''%1'' expecting ''s'' or ''n''' bindWith: c)
151
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
  1112
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
  1113
    "Created: / 10-12-2012 / 02:15:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
229
e7d6ea3f553f Bugfix: push command (tested by HGTests>>test_push_01)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 228
diff changeset
  1114
    "Modified: / 12-02-2013 / 23:49:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
151
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
  1115
!
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
  1116
177
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1117
parseCommandResolveList
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1118
    "Parse output of 'hg resolve --list' command. Return dictionary <path,status>"
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1119
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1120
    | statuses |
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1121
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1122
    statuses := Dictionary new.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1123
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1124
    [ stream atEnd ] whileFalse:[
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1125
        | status path |
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1126
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1127
        status := stream next.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1128
        (status == $U or:[status == $R]) ifFalse:[
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1129
            self error:'Unknown resolution status: ', status.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1130
        ].
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1131
        self expectSpace.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1132
        path := self parsePath.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1133
        statuses at: path put: status.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1134
        self expectLineEnd.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1135
    ].
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1136
    ^statuses
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1137
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1138
    "Created: / 14-01-2013 / 16:45:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1139
!
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1140
142
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
  1141
parseCommandShowConfig
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
  1142
    "Parse output of 'hg showconfig' command, assuming the template given
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
  1143
     was HGCommandParser templateLog. Return a list of HGChangeset."
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
  1144
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
  1145
    ^self parseConfig
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
  1146
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
  1147
    "Created: / 06-12-2012 / 16:00:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
  1148
!
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
  1149
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1150
parseCommandStatus
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1151
    | statusesAndPaths |
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1152
    statusesAndPaths := OrderedCollection new.
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1153
    [ stream atEnd ] whileFalse:[
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1154
        | status path |
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1155
88
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1156
        stream peek == Character space ifTrue:[
865
c2e908e7dadc Fix commit with class renames for Mercurial 4.8 and later
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 859
diff changeset
  1157
            | last |
c2e908e7dadc Fix commit with class renames for Mercurial 4.8 and later
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 859
diff changeset
  1158
c2e908e7dadc Fix commit with class renames for Mercurial 4.8 and later
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 859
diff changeset
  1159
            last := statusesAndPaths last first.
c2e908e7dadc Fix commit with class renames for Mercurial 4.8 and later
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 859
diff changeset
  1160
            (last isAdded or:[last isModified]) ifTrue:[
88
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1161
                stream next.
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1162
                self expectSpace.
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1163
                path := self nextLine.
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1164
                statusesAndPaths last at:1 put: (HGStatus copied source: path)
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1165
            ] ifFalse:[
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1166
                self error:'Malformed status output, status code expected, got space'
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1167
            ]
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1168
        ] ifFalse:[
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1169
            status := HGStatus forCode: self next.
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1170
            self expectSpace.
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1171
            path := self nextLine.
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1172
            statusesAndPaths add: { status . path }
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1173
        ].
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1174
    ].
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1175
    ^ statusesAndPaths
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1176
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1177
    "Created: / 23-10-2012 / 10:57:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
865
c2e908e7dadc Fix commit with class renames for Mercurial 4.8 and later
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 859
diff changeset
  1178
    "Modified: / 10-01-2019 / 21:04:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1179
!
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1180
177
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1181
parseCommandUpdate
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1182
    "Parse output of 'hg update' command. "
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1183
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1184
    ^self parseMergeSummary
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1185
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1186
    "Created: / 14-01-2013 / 15:48:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1187
!
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1188
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1189
parseCommandVersion
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1190
    "Parse output of 'hg --version'"
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1191
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1192
    "
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1193
    Mercurial Distributed SCM (version 2.3.2)
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1194
    (see http://mercurial.selenic.com for more information)
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1195
    
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1196
    Copyright (C) 2005-2012 Matt Mackall and others
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1197
    This is free software; see the source for copying conditions. There is NO
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1198
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1199
    "
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1200
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1201
    | major minor revision |
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1202
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1203
    self 
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1204
        expect:'Mercurial'; skipSeparators;
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1205
        expect:'Distributed'; skipSeparators;
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1206
        expect:'SCM'; skipSeparators;
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1207
        expect:$(; skipSeparators;
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1208
        expect:'version'.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1209
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1210
    major := self parseInteger.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1211
    self expect:$..
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1212
    minor := self parseInteger.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1213
    stream peek == $. ifTrue:[
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1214
        stream next.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1215
        revision := self parseInteger.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1216
    ].
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1217
479
adf58d1ac45e Fixed Mercurial version parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 477
diff changeset
  1218
    (stream peek ~~ $) and:[ stream peek ~~ $+]) ifTrue:[ 
adf58d1ac45e Fixed Mercurial version parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 477
diff changeset
  1219
        self error: ('Expected ''$)'' or ''+'' got ''%2''.' bindWith: stream peek).
adf58d1ac45e Fixed Mercurial version parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 477
diff changeset
  1220
    ].
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1221
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1222
    ^(Array with: major with: minor with: revision)
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1223
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1224
    "Created: / 19-11-2012 / 20:19:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
479
adf58d1ac45e Fixed Mercurial version parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 477
diff changeset
  1225
    "Modified: / 01-12-2014 / 20:25:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1226
! !
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1227
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1228
!HGCommandParser methodsFor:'parsing - errors'!
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1229
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1230
parseError
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1231
    ^self parseErrorClass: HGCommandError
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1232
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1233
    "Created: / 04-02-2013 / 12:21:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1234
!
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1235
466
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1236
parseError: parseBlock
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1237
    [ stream atEnd ] whileFalse:[
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1238
        self parseError1: parseBlock.  
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1239
    ].
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1240
    ^nil
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1241
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1242
    "Created: / 04-02-2013 / 12:21:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
466
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1243
    "Modified: / 06-11-2014 / 00:29:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1244
!
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1245
403
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1246
parseErrorBookmark
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1247
    ^self parseErrorClass: HGBookmarkError
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1248
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1249
    "Created: / 20-03-2014 / 17:28:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1250
!
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1251
228
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
  1252
parseErrorBranches
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
  1253
    [ stream atEnd ] whileFalse:[
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
  1254
        | c word |
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
  1255
466
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1256
        c := stream peek.
228
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
  1257
        c == $i ifTrue:[
351
ee626983e8c2 Fix for Mercurial 2.7 (error message differ)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 346
diff changeset
  1258
            "/ Mercurial <  2.7 uses 'invalidating branch cache (tip differs)'.
ee626983e8c2 Fix for Mercurial 2.7 (error message differ)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 346
diff changeset
  1259
            "/ Mercurial >= 2.7 uses 'invalid branchheads cache (served): tip differs'
425
4ac00477f669 More relaxec parsing of 'hg branches' error output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 409
diff changeset
  1260
            "/                    or 'invalid branchheads cache (visible): tip differs'
351
ee626983e8c2 Fix for Mercurial 2.7 (error message differ)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 346
diff changeset
  1261
            "/ Sigh...
466
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1262
            self expect: 'invalid'.
351
ee626983e8c2 Fix for Mercurial 2.7 (error message differ)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 346
diff changeset
  1263
            c := stream peek.
ee626983e8c2 Fix for Mercurial 2.7 (error message differ)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 346
diff changeset
  1264
            c == $a ifTrue:[
425
4ac00477f669 More relaxec parsing of 'hg branches' error output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 409
diff changeset
  1265
                self expect: 'ating branch cache'.
4ac00477f669 More relaxec parsing of 'hg branches' error output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 409
diff changeset
  1266
                stream nextLine. "/ eat reast of the line
351
ee626983e8c2 Fix for Mercurial 2.7 (error message differ)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 346
diff changeset
  1267
            ] ifFalse:[c == Character space ifTrue:[
425
4ac00477f669 More relaxec parsing of 'hg branches' error output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 409
diff changeset
  1268
                self expect: ' branchheads cache'.
4ac00477f669 More relaxec parsing of 'hg branches' error output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 409
diff changeset
  1269
                stream nextLine. "/ eat reast of the line
351
ee626983e8c2 Fix for Mercurial 2.7 (error message differ)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 346
diff changeset
  1270
            ]].
ee626983e8c2 Fix for Mercurial 2.7 (error message differ)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 346
diff changeset
  1271
ee626983e8c2 Fix for Mercurial 2.7 (error message differ)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 346
diff changeset
  1272
228
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
  1273
        ] ifFalse:[
466
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1274
            self parseError1: [ :msg | self error: msg ]  
228
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
  1275
        ]
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
  1276
    ].
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
  1277
    ^nil
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
  1278
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
  1279
    "Created: / 06-02-2013 / 19:18:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
466
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1280
    "Modified: / 06-11-2014 / 00:43:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
228
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
  1281
!
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
  1282
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1283
parseErrorClass: errorClass
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1284
    "Generic error output parse. Returns an initialized
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1285
     error (instance of errorClass) if an error occures,
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1286
     nil if not.
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1287
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1288
     An error is indicated by 'abort: ' prefix."
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1289
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1290
    self parseError:[:msg|
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1291
        self propagate: errorClass message: msg
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1292
    ].
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1293
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1294
    "Created: / 04-02-2013 / 12:50:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1295
    "Modified: / 04-02-2013 / 21:58:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1296
!
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1297
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1298
parseErrorCommit
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1299
    ^self parseErrorClass: HGCommitError
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1300
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1301
    "Created: / 04-02-2013 / 12:21:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1302
!
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1303
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1304
parseErrorPush
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1305
    ^self parseError: [:msg |
409
20e6f5c4f3b2 FIx for issue #11 - Add user feedback when pushing from system browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
  1306
        (msg startsWith: 'push creates new remote head ') ifTrue:[
20e6f5c4f3b2 FIx for issue #11 - Add user feedback when pushing from system browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
  1307
            | newHeadId err |
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1308
409
20e6f5c4f3b2 FIx for issue #11 - Add user feedback when pushing from system browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
  1309
            newHeadId := HGChangesetId fromString: (msg copyFrom: 30 to: msg size -1).
20e6f5c4f3b2 FIx for issue #11 - Add user feedback when pushing from system browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
  1310
            err := HGPushWouldCreateNewHeadError newException
20e6f5c4f3b2 FIx for issue #11 - Add user feedback when pushing from system browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
  1311
                        parameter: newHeadId;
20e6f5c4f3b2 FIx for issue #11 - Add user feedback when pushing from system browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
  1312
                        messageText: msg;
20e6f5c4f3b2 FIx for issue #11 - Add user feedback when pushing from system browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
  1313
                        yourself.
20e6f5c4f3b2 FIx for issue #11 - Add user feedback when pushing from system browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
  1314
            self propagate: err.                          
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1315
        ] ifFalse:[
409
20e6f5c4f3b2 FIx for issue #11 - Add user feedback when pushing from system browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
  1316
            self propagate: HGError message: msg
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1317
        ].
409
20e6f5c4f3b2 FIx for issue #11 - Add user feedback when pushing from system browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
  1318
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1319
    ].
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1320
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1321
    "Created: / 04-02-2013 / 12:49:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
409
20e6f5c4f3b2 FIx for issue #11 - Add user feedback when pushing from system browser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 403
diff changeset
  1322
    "Modified: / 26-03-2014 / 15:39:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1323
! !
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1324
807
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1325
!HGCommandParser methodsFor:'parsing - errors - private'!
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1326
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1327
parseError1: parseBlock
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1328
    "/ Parse at most one error from stream and returs.
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1329
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1330
    | c word line |
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1331
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1332
    c := stream peek.
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1333
    c isNil ifTrue:[ ^ self ]. "/ stream closed / already at end
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1334
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1335
    "/ Care for "*** failed to import extension" messages...
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1336
    c == $* ifTrue:[ 
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1337
        stream next.
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1338
        c := stream peek.
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1339
        c == $* ifTrue:[ 
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1340
            stream next.
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1341
            c := stream peek.
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1342
            c == $* ifTrue:[ 
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1343
                stream next.
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1344
                self notify: stream nextLine.
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1345
                ^ self.
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1346
            ].
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1347
        ].
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1348
        self notify: stream nextLine.
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1349
        ^ self.
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1350
    ].
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1351
    "/ parse `abort: some error messsage` error format
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1352
    c == $a ifTrue:[
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1353
        word := stream upTo: $:.
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1354
        stream next. "/eat space
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1355
        word = 'abort' ifTrue:[
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1356
            self parseError1: parseBlock message: stream nextLine.              
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1357
            ^ self.
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1358
        ].
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1359
    ].
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1360
    "/ parse `hg: parse error: some error messsage` error format introduced in Mercurial 4.3
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1361
    c == $h ifTrue:[
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1362
        word := stream upTo: $:.
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1363
        word = 'hg' ifTrue:[
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1364
            stream next. "/eat space
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1365
            c := stream peek.
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1366
            c == $p ifTrue:[
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1367
                self expect: 'parse error: '.
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1368
                self parseError1: parseBlock message: stream nextLine.                
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1369
                ^ self.
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1370
            ].
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1371
        ].
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1372
    ].
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1373
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1374
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1375
    "/ Special hack for mercurial_keyring extension, sigh...
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1376
    line := stream nextLine.
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1377
    "/ If c == $a we may have already read some data. In that case,
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1378
    "/ word is not nil and we have to preprend it to line read just above...
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1379
    word notNil ifTrue:[ 
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1380
        line := word , (line ? '')
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1381
    ].
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1382
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1383
    (line includesSubString: 'mercurial_keyring.py') ifTrue:[
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1384
        (line endsWith: 'UserWarning: Basic Auth Realm was unquoted') ifTrue:[
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1385
            stream nextLine.
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1386
        ].
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1387
        ^ self.
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1388
    ].
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1389
    self notify: 'Unexpected error output: ', line.
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1390
    ^ self.
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1391
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1392
    "Created: / 06-11-2014 / 00:28:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1393
    "Modified: / 17-10-2017 / 09:55:50 / jv"
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1394
    "Modified: / 08-02-2018 / 08:51:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1395
!
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1396
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1397
parseError1: parseBlock message: errorMessage
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1398
    "Parse given `errorMmessage` using `parseBlock`. Handle common errors here,
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1399
     pass the rest to the parseBlock to handle."
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1400
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1401
    (errorMessage startsWith: 'unknown revision ''') ifTrue:[
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1402
        | rev err |
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1403
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1404
        rev := HGChangesetId readFrom: (errorMessage readStream skip: 'unknown revision ''' size) onError:[ nil ].
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1405
        err := HGUnknownRevisionError newException
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1406
                    parameter: rev;
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1407
                    messageText: errorMessage; yourself.
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1408
        self propagate: err.
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1409
        ^ self.
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1410
    ].
808
ae9fdbfa8ba4 Initial support of obsolete changesets
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 807
diff changeset
  1411
    (errorMessage startsWith: 'hidden revision ''') ifTrue:[
ae9fdbfa8ba4 Initial support of obsolete changesets
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 807
diff changeset
  1412
        | rev err |
ae9fdbfa8ba4 Initial support of obsolete changesets
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 807
diff changeset
  1413
ae9fdbfa8ba4 Initial support of obsolete changesets
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 807
diff changeset
  1414
        rev := HGChangesetId readFrom: (errorMessage readStream skip: 'hidden revision ''' size) onError:[ self error: 'Cannot parse changeset ID from error message!!' ].
ae9fdbfa8ba4 Initial support of obsolete changesets
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 807
diff changeset
  1415
        err := HGObsoleteRevisionError newException
ae9fdbfa8ba4 Initial support of obsolete changesets
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 807
diff changeset
  1416
                    parameter: rev;
ae9fdbfa8ba4 Initial support of obsolete changesets
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 807
diff changeset
  1417
                    messageText: errorMessage; yourself.
ae9fdbfa8ba4 Initial support of obsolete changesets
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 807
diff changeset
  1418
        self propagate: err.
ae9fdbfa8ba4 Initial support of obsolete changesets
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 807
diff changeset
  1419
        ^ self.
ae9fdbfa8ba4 Initial support of obsolete changesets
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 807
diff changeset
  1420
    ].
807
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1421
    parseBlock value: errorMessage
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1422
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1423
    "Created: / 08-02-2018 / 08:51:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1424
! !
ef00a1303f73 Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 804
diff changeset
  1425
403
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1426
!HGCommandParser methodsFor:'parsing - files'!
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1427
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1428
parseDotHgBookmarks
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1429
    "Parse contents of .hg/bookmarks, return a collection
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1430
     of orphaned HGBookmark"
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1431
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1432
    | bookmarks |
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1433
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1434
    bookmarks := OrderedCollection new.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1435
    [ stream atEnd ] whileFalse:[ 
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1436
        | bookmark |
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1437
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1438
        bookmark := HGBookmark new.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1439
        bookmark setChangesetId: self parseNodeId.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1440
        stream skipSeparators.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1441
        bookmark setName: stream nextLine.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1442
        bookmarks add: bookmark
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1443
    ].
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1444
    ^ bookmarks
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1445
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1446
    "Created: / 20-03-2014 / 02:10:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1447
    "Modified: / 20-03-2014 / 18:53:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1448
! !
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1449
444
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1450
!HGCommandParser methodsFor:'parsing - shell'!
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1451
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1452
parseShellCommand
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1453
    "Parses input stream as a shell command. Returns
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1454
     an array of arguments (main's argv[], actually)"
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1455
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1456
    OperatingSystem isMSWINDOWSNTlike ifTrue:[ 
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1457
        ^ self parseShellCommandAsForCmd
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1458
    ] ifFalse:[
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1459
        ^ self parseShellCommandAsForSh
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1460
    ]
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1461
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1462
    "Created: / 17-07-2014 / 12:25:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1463
!
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1464
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1465
parseShellCommandAsForCmd
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1466
    ^ Array streamContents:[ :argv | 
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1467
        stream skipSeparators.
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1468
        [ stream atEnd ] whileFalse:[
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1469
            argv nextPut: self parseShellCommandTokenAsForCmd.
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1470
            stream skipSeparators.   
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1471
        ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1472
    ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1473
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1474
    "Created: / 17-07-2014 / 12:53:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1475
!
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1476
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1477
parseShellCommandAsForSh
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1478
    ^ Array streamContents:[ :argv | 
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1479
        stream skipSeparators.
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1480
        [ stream atEnd ] whileFalse:[
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1481
            argv nextPut: self parseShellCommandTokenAsForSh.
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1482
            stream skipSeparators.   
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1483
        ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1484
    ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1485
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1486
    "Created: / 17-07-2014 / 12:53:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1487
!
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1488
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1489
parseShellCommandTokenAsForCmd
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1490
    | buffer char done1 done2 |
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1491
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1492
    buffer := (String new: 10) writeStream.
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1493
    done1 := false.
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1494
    char := stream next.
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1495
    [ done1 ] whileFalse:[
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1496
        char == $" ifTrue:[ 
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1497
            done2 := false.
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1498
            [ done2 ] whileFalse:[
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1499
                stream atEnd ifTrue:[ self error:'Unterminated string token'. ^ nil ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1500
                char := stream next.
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1501
                char == $" ifTrue:[
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1502
                    done2 := true.
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1503
                ] ifFalse:[ 
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1504
                    buffer nextPut: char      
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1505
                ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1506
            ]
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1507
        ] ifFalse:[ 
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1508
            char == $^ ifTrue:[ 
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1509
                stream atEnd ifTrue:[ self error:'Unterminated string token'. ^ nil ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1510
                char := stream next.                    
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1511
                char == Character space ifTrue:[ 
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1512
                    buffer nextPut: $^ 
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1513
                ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1514
            ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1515
            buffer nextPut: char.   
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1516
        ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1517
        char := stream atEnd ifTrue:[ nil ] ifFalse:[ stream next ].  
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1518
        done1 := char isNil or:[ char isSeparator ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1519
    ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1520
    ^ buffer contents
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1521
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1522
    "Created: / 17-07-2014 / 12:32:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1523
    "Modified: / 17-07-2014 / 14:31:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1524
!
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1525
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1526
parseShellCommandTokenAsForSh
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1527
    | buffer char done1 done2 |
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1528
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1529
    buffer := (String new: 10) writeStream.
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1530
    done1 := false.
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1531
    char := stream next.
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1532
    [ done1 ] whileFalse:[
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1533
        char == $" ifTrue:[ 
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1534
            done2 := false.
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1535
            [ done2 ] whileFalse:[
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1536
                stream atEnd ifTrue:[ self error:'Unterminated string token'. ^ nil ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1537
                char := stream next.
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1538
                char == $\ ifTrue:[ 
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1539
                    stream atEnd ifTrue:[ self error:'Unterminated string token'. ^ nil ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1540
                    char := stream next.
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1541
                    char == $" ifTrue:[ 
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1542
                        buffer nextPut: $"  
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1543
                    ] ifFalse:[ 
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1544
                        buffer nextPut: $\; nextPut: char  
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1545
                    ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1546
                ] ifFalse:[ char == $" ifTrue:[
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1547
                    done2 := true.
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1548
                ] ifFalse:[ 
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1549
                    buffer nextPut: char      
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1550
                ]].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1551
            ]
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1552
        ] ifFalse:[ char == $' ifTrue:[ 
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1553
            done2 := false.
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1554
            [ done2 ] whileFalse:[
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1555
                stream atEnd ifTrue:[ self error:'Unterminated string token'. ^ nil ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1556
                char := stream next.
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1557
                char == $' ifTrue:[
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1558
                    done2 := true.
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1559
                ] ifFalse:[ 
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1560
                    buffer nextPut: char      
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1561
                ].                       
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1562
            ]
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1563
        ] ifFalse:[ 
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1564
            char == $\ ifTrue:[ 
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1565
                stream atEnd ifTrue:[ self error:'Unterminated string token'. ^ nil ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1566
                char := stream next.                    
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1567
            ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1568
            buffer nextPut: char.   
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1569
        ]].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1570
        char := stream atEnd ifTrue:[ nil ] ifFalse:[ stream next ].  
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1571
        done1 := char isNil or:[ char isSeparator ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1572
    ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1573
    ^ buffer contents
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1574
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1575
    "Created: / 17-07-2014 / 12:32:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1576
    "Modified: / 17-07-2014 / 14:11:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1577
! !
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1578
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1579
!HGCommandParser methodsFor:'parsing - utils'!
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1580
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1581
expect: aStringOrChar
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1582
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1583
    | c |
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1584
    aStringOrChar isCharacter ifTrue:[
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1585
        (stream atEnd or:[(c := stream next) ~= aStringOrChar]) ifTrue:[
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1586
            self error:('Expected ''%1'' got ''%2''.' bindWith: aStringOrChar with: c).
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1587
        ].
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1588
        ^self.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1589
    ].
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1590
    aStringOrChar isString ifTrue:[
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1591
        aStringOrChar do:[:expected|
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1592
            (stream atEnd or:[(c := stream next) ~= expected]) ifTrue:[
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1593
                self error:('Expected ''%1''.' bindWith: aStringOrChar).
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1594
            ].
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1595
        ].
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1596
        ^self.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1597
    ].
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1598
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1599
    self error:'Invalid expected value'.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1600
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1601
    "Created: / 19-11-2012 / 20:08:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1602
!
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1603
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1604
expectLineEnd
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1605
    self expect: Character cr.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1606
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1607
    "Created: / 19-11-2012 / 20:06:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1608
!
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1609
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1610
expectSpace
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1611
    self expect: Character space.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1612
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1613
    "Created: / 19-11-2012 / 20:06:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1614
!
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1615
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1616
next
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1617
    ^stream next.
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1618
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1619
    "Created: / 23-10-2012 / 10:57:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1620
!
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1621
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1622
nextLine
38
c3d02ed6a645 - HGWorkingCopyFile
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
  1623
    ^stream nextLine
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1624
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1625
    "Created: / 23-10-2012 / 11:05:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
38
c3d02ed6a645 - HGWorkingCopyFile
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
  1626
    "Modified: / 09-11-2012 / 12:02:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1627
!
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1628
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1629
skipSeparators
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1630
    stream skipSeparators
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
  1631
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1632
    "Created: / 19-11-2012 / 20:05:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1633
! !
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1634
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
  1635
!HGCommandParser class methodsFor:'documentation'!
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
  1636
54
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 51
diff changeset
  1637
version_HG
115
b1ed2d29054b version_HG changed to return string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
  1638
b1ed2d29054b version_HG changed to return string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
  1639
    ^ '$Changeset: <not expanded> $'
54
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 51
diff changeset
  1640
!
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 51
diff changeset
  1641
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
  1642
version_SVN
499
1750e995c2f9 initial checkin
Claus Gittinger <cg@exept.de>
parents: 366
diff changeset
  1643
    ^ '$Id$'
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
  1644
! !
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
  1645