mercurial/HGCommandParser.st
author Claus Gittinger <cg@exept.de>
Sat, 28 Jul 2018 10:08:05 +0200
branchcvs_MAIN
changeset 849 aa8ba960d939
parent 711 9aa96685368f
child 888 42dbafba82bc
permissions -rw-r--r--
#OTHER by cg icon references cleaned up (use ToolbarIconLibrary - not GenericToolbarIconLibrary)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
711
9aa96685368f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 706
diff changeset
     1
"{ Encoding: utf8 }"
9aa96685368f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 706
diff changeset
     2
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
     3
"
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
     4
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
     5
Copyright (C) 2012-2015 Jan Vrany
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
     6
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
     7
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
     8
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
     9
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
    10
version 2.1 of the License. 
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    11
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    12
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
    13
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
    14
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
    15
Lesser General Public License for more details.
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    16
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    17
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
    18
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
    19
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
    20
"
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    21
"{ Package: 'stx:libscm/mercurial' }"
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    22
528
f753b34afafa initial checkin
Claus Gittinger <cg@exept.de>
parents: 512
diff changeset
    23
"{ NameSpace: Smalltalk }"
f753b34afafa initial checkin
Claus Gittinger <cg@exept.de>
parents: 512
diff changeset
    24
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    25
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
    26
	instanceVariableNames:'stream command'
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    27
	classVariableNames:''
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    28
	poolDictionaries:''
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    29
	category:'SCM-Mercurial-Internal'
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    30
!
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    31
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    32
!HGCommandParser class methodsFor:'documentation'!
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    33
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    34
copyright
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    35
"
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    36
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
    37
Copyright (C) 2012-2015 Jan Vrany
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    38
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    39
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
    40
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
    41
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
    42
version 2.1 of the License. 
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    43
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    44
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
    45
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
    46
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
    47
Lesser General Public License for more details.
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    48
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    49
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
    50
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
    51
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
    52
"
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    53
! !
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    54
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
    55
!HGCommandParser class methodsFor:'instance creation'!
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
    56
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    57
for: anHGCommand on: aStringOrStream
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
    58
    | stream |
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
    59
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
    60
    stream := aStringOrStream isStream 
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
    61
                ifTrue:[aStringOrStream]
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
    62
                ifFalse:[aStringOrStream readStream].
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
    63
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    64
    ^self new
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    65
        command: anHGCommand;
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    66
        stream: stream;
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    67
        yourself
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
    "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
    70
!
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    71
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    72
on: aStringOrStream
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    73
    ^self for: nil on: aStringOrStream
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
    74
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
    75
    "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
    76
    "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
    77
! !
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
    78
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
    79
!HGCommandParser class methodsFor:'templates'!
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
    80
106
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    81
templateHeads
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    82
    ^'{rev}:{node}\n'
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    83
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    84
    "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
    85
!
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    86
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
    87
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
    88
    ^ '{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
    89
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
    90
    "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
    91
    "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
    92
!
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
    93
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
    94
templateLogChildren
372
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 366
diff changeset
    95
    ^ '{rev}:{node}\n{children}\n'
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
    "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
    98
!
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
    99
477
594a42a4d8fc Oops, fixed bug introduced in 9f97cda: care for version < 2.4
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 476
diff changeset
   100
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
   101
    ^ '{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
   102
594a42a4d8fc Oops, fixed bug introduced in 9f97cda: care for version < 2.4
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 476
diff changeset
   103
    "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
   104
!
594a42a4d8fc Oops, fixed bug introduced in 9f97cda: care for version < 2.4
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 476
diff changeset
   105
372
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 366
diff changeset
   106
templateLogIdsOnly
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 366
diff changeset
   107
    ^ '{rev}:{node}\n'
136
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   108
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   109
    "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
   110
! !
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   111
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   112
!HGCommandParser methodsFor:'accessing'!
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   113
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   114
command
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   115
    ^ command
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   116
!
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   117
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   118
command:anHGCommand
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   119
    command := anHGCommand.
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
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   122
stream
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   123
    ^ stream
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   124
!
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   125
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   126
stream:something
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   127
    stream := something.
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
!HGCommandParser methodsFor:'error reporting'!
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   131
51
61700cf82743 - HGCommandParser
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   132
error: aString
61700cf82743 - HGCommandParser
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   133
    <context: #return>
61700cf82743 - HGCommandParser
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   134
    <resource: #skipInDebuggersWalkBack>
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   135
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   136
    self propagate: HGCommandParseError message: aString
51
61700cf82743 - HGCommandParser
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   137
61700cf82743 - HGCommandParser
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   138
    "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
   139
    "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
   140
!
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   141
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   142
notify: aString
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   143
    <context: #return>
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   144
    <resource: #skipInDebuggersWalkBack>
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   145
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   146
    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
   147
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   148
    "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
   149
    "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
   150
!
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   151
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   152
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
   153
    "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
   154
     (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
   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
    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
   157
        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
   158
        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
   159
            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
   160
        ].
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   161
    ] ifFalse:[
499
1750e995c2f9 initial checkin
Claus Gittinger <cg@exept.de>
parents: 366
diff changeset
   162
        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
   163
    ].
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
    "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
   166
    "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
   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
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
   170
    "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
   171
     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
   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
    ^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
   174
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   175
    "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
   176
!
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   177
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   178
warn: aString
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   179
    <context: #return>
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   180
    <resource: #skipInDebuggersWalkBack>
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   181
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   182
    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
   183
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   184
    "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
   185
    "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
   186
! !
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   187
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   188
!HGCommandParser methodsFor:'parsing'!
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   189
403
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   190
parseBookmarks
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   191
    "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
   192
     of orphaned HGBookmark"
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   193
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   194
    | bookmarks |
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   195
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   196
    bookmarks := OrderedCollection new.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   197
    [ stream atEnd ] whileFalse:[
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   198
        bookmarks add: self parseBookmarksEntry
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
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   201
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   202
    "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
   203
!
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   204
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   205
parseBookmarksEntry
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   206
    | bookmark |
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
    "Example:
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   209
       issue37-update-to-revision 399:858944cebec4
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   210
     * master                    403:5cc256ed28a1 
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
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   213
    bookmark := HGBookmark new.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   214
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
    stream skipSeparators.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   217
    stream peek == $* ifTrue:[
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   218
        stream next.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   219
        stream skipSeparators.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   220
    ].
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   221
    bookmark setName: self parseName.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   222
    stream skipSeparators.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   223
    bookmark setChangesetId: self parseNodeId.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   224
    self expectLineEnd.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   225
    ^bookmark
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   226
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   227
    "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
   228
    "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
   229
!
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   230
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   231
parseBranches
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   232
    "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
   233
     of orphaned HGBranch"
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   234
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
   235
    | branches branch |
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   236
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   237
    branches := OrderedCollection new.
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
   238
    stream atEnd ifFalse:[ 
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   239
        branch := self parseBranchesEntryAllowForInvalidBranchheadsMessage: true.
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   240
        branch notNil 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
   241
            branches add: branch.
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   242
        ].
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   243
    ].
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   244
    [ stream atEnd ] whileFalse:[
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
   245
        branch := self parseBranchesEntryAllowForInvalidBranchheadsMessage: false.  
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   246
        branches add:  branch.
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   247
    ].
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   248
    ^branches
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   249
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   250
    "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
   251
    "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
   252
!
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   253
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
   254
parseBranchesEntryAllowForInvalidBranchheadsMessage: allowForInvalidBrancheadsMessage
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   255
    | name branch |
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   256
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
   257
    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
   258
    stream skipSeparators.
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   259
    allowForInvalidBrancheadsMessage 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
   260
        stream peek isDigit ifFalse:[ 
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   261
            | 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
   262
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   263
            message := name , ' ', 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
   264
            self notify: 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
   265
            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
   266
            stream skipSeparators.   
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   267
        ].
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   268
    ].                
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   269
    branch := HGBranch new.
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
   270
    branch setName: name.
52063f8ab1db Fix in command parser: allow for 'invalid brancheads' message in command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 453
diff changeset
   271
 
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   272
    self parseNodeId.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   273
    stream peek == Character space ifTrue:[
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   274
        stream next.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   275
        stream peek == $( ifFalse:[self error:'''('' expected but ''' , stream peek , ''' found'].
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   276
        stream next.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   277
        stream peek == $i ifTrue:[
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   278
            self expect:'inactive)'.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   279
            branch setActive: false.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   280
        ] ifFalse:[
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   281
            stream peek == $c ifTrue:[
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   282
                self expect:'closed)'.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   283
                branch setClosed: true.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   284
            ] ifFalse:[
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   285
                self error:'Unexpected branch attribute (only ''closed'' and ''inactive'' supported)'''
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   286
            ]
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   287
        ].
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   288
    ].
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   289
    self expectLineEnd.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   290
    ^branch
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   291
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
   292
    "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
   293
!
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   294
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
   295
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
   296
    "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
   297
     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
   298
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   299
    | 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
   300
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   301
    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
   302
    [ stream atEnd ] whileFalse:[
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   303
        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
   304
    ].
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   305
    ^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
   306
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
   307
    "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
   308
    "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
   309
!
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
   310
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   311
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
   312
    | 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
   313
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   314
    entry := root.
711
9aa96685368f #OTHER by stefan
Stefan Vogel <sv@exept.de>
parents: 706
diff changeset
   315
    out := '' writeStream.
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   316
    [ 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
   317
        stream peek == $. ifTrue:[
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   318
            entry := entry at: out contents ifAbsentPut: [
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   319
                HGConfig::Section new setName: out contents.
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   320
            ].
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
   321
            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
   322
            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
   323
        ] 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
   324
            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
   325
        ].
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
   326
    ].
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
   327
    stream next.
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   328
    entry at: out contents put:
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   329
        (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
   330
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   331
    "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
   332
!
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
   333
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   334
parseDate
504
395a5253c3d4 Fixed date (Timestamp) parsing after changes in Timestamp 1.159
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 499
diff changeset
   335
    | ts c |
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   336
    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
   337
    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
   338
    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
   339
        stream next.
395a5253c3d4 Fixed date (Timestamp) parsing after changes in Timestamp 1.159
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 499
diff changeset
   340
        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
   341
    ].
395a5253c3d4 Fixed date (Timestamp) parsing after changes in Timestamp 1.159
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 499
diff changeset
   342
    (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
   343
        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
   344
    ].
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   345
    stream next.
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   346
    4 timesRepeat:[
528
f753b34afafa initial checkin
Claus Gittinger <cg@exept.de>
parents: 512
diff changeset
   347
        c := stream peek.
f753b34afafa initial checkin
Claus Gittinger <cg@exept.de>
parents: 512
diff changeset
   348
        ('0123456789' includes: c) ifFalse:[
504
395a5253c3d4 Fixed date (Timestamp) parsing after changes in Timestamp 1.159
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 499
diff changeset
   349
            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
   350
        ].
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   351
        stream next.
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   352
    ].
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   353
    ^ts
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   354
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   355
    "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
   356
    "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
   357
!
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   358
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   359
parseInteger
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   360
    "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
   361
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   362
    ^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
   363
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   364
    "
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   365
    (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
   366
    "
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   367
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   368
    "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
   369
!
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   370
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   371
parseLog
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   372
    "Parse output of 'hg log' command, assuming the template given
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   373
     was HGCommandParser templateLog. Return a list of HGRevision."
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   374
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   375
    | revs |
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   376
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   377
    revs := OrderedCollection new.
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   378
    [ stream atEnd ] whileFalse:[
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   379
        | rev |
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   380
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   381
        rev := self parseLogEntry.
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   382
        revs add: rev.
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   383
    ].
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   384
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   385
    ^revs.
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   386
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   387
    "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
   388
!
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   389
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   390
parseLogEntry
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   391
    "Parse single revision entry, assuming the template given
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   392
     was HGCommandParser templateLog. Return a HGRevision."
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   393
135
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   394
    | rev branches line message adds copies deletions modifications |
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   395
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   396
    rev := HGChangeset new.
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   397
    rev setId: self parseNodeId. self expectLineEnd.
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   398
    branches := self parseNameList. self expectLineEnd.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   399
    rev setBranches: branches.
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   400
    rev setParent1Id: self parseNodeId. self expectSpace.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   401
    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
   402
    "rev setChildren: self parseNodeIdList." self expectLineEnd.
135
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   403
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   404
    adds := self parsePathList. self expectLineEnd.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   405
    copies := self parsePathCopyList. self expectLineEnd.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   406
    deletions := self parsePathList. self expectLineEnd.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   407
    modifications := self parsePathList. self expectLineEnd.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   408
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   409
    copies pairsDo:[:dst :src|
346
8a906e350b13 Fix in HGCommandParser>>#parseLogEntry.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 336
diff changeset
   410
        adds remove: dst ifAbsent:[].
8a906e350b13 Fix in HGCommandParser>>#parseLogEntry.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 336
diff changeset
   411
        deletions remove: src ifAbsent:[].
135
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   412
    ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   413
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   414
    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
   415
    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
   416
    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
   417
    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
   418
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   419
    rev setChanges: modifications , adds , deletions , copies.
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   420
    rev setAuthor: self nextLine.
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   421
    rev setTimestamp: self parseDate. self expectLineEnd.
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   422
    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
   423
        line := self nextLine.
2579830f6b61 Tests fixed. Not-yet-supported tests marked as skipped.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   424
        s nextPutAll: line.
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   425
        [ 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
   426
            s cr.
2579830f6b61 Tests fixed. Not-yet-supported tests marked as skipped.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   427
            s nextPutAll: line
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   428
        ].
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   429
    ].
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   430
    rev setMessage: message.
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   431
    rev setNonLazy.
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   432
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   433
    ^rev
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   434
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   435
    "Created: / 13-11-2012 / 09:45:40 / 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
   436
    "Modified: / 19-03-2014 / 23:23:16 / 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
   437
!
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   438
276
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   439
parseMergeLocalChanged: info
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   440
    "Parses
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   441
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   442
    local changed lcmake.bat which remote deleted
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   443
    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
   444
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   445
    " 
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   446
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   447
    self expect: 'local changed'.
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   448
    stream nextLine.
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   449
    self expect: 'use'.
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   450
    stream nextLine.
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   451
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   452
    "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
   453
!
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   454
177
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   455
parseMergePath: info
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   456
    "Parses 'merging Make.proto' line" 
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   457
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   458
    self expect: 'merging '.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   459
    self parsePath.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   460
    self expectLineEnd.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   461
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   462
    "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
   463
!
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   464
180
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   465
parseMergeRemoteChanged: info
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   466
    "Parses
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   467
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   468
    remote changed CharacterEncoderImplementations__SJIS.st which local deleted
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   469
    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
   470
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   471
    " 
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   472
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   473
    self expect: 'remote changed'.
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   474
    stream nextLine.
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   475
    self expect: 'use'.
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   476
    stream nextLine.
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   477
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   478
    "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
   479
!
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   480
177
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   481
parseMergeSummary
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   482
    ^self parseMergeSummary: HGMergeInfo new
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   483
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   484
    "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
   485
!
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   486
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   487
parseMergeSummary: info
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   488
    "Example:
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   489
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   490
        '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
   491
    "
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   492
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   493
    info setNumUpdated: self parseInteger.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   494
    self expect: ' files updated, '.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   495
    info setNumMerged: self parseInteger.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   496
    self expect: ' files merged, '.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   497
    info setNumRemoved: self parseInteger.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   498
    self expect: ' files removed, '.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   499
    info setNumUnresolved: self parseInteger.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   500
    self expect: ' files unresolved'.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   501
    self expectLineEnd.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   502
    ^info
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   503
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   504
    "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
   505
!
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   506
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   507
parseName
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   508
    ^String streamContents:[:out|
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   509
        [ stream peek isSeparator ] whileFalse:[
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   510
            out nextPut:stream next
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   511
        ]
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   512
    ].
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   513
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   514
    "Created: / 27-11-2012 / 20:21:27 / 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
   515
!
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   516
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   517
parseNameList
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   518
    | list |
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   519
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   520
    stream atEnd ifTrue:[ ^#() ].
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   521
    stream peek isSeparator ifTrue:[ ^#() ].
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   522
    list := OrderedCollection new.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   523
    list add: self parseName.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   524
    [ 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
   525
        stream next. "/eat space.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   526
        list add: self parseName.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   527
    ].
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   528
    ^list.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   529
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   530
    "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
   531
!
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   532
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   533
parseNodeId
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   534
    "Parses node id from stream and returns it. Support both,
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   535
     short and full node ids"
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   536
103
04731ef44417 HGNodeId renamed to HGChangesetId
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 93
diff changeset
   537
    ^HGChangesetId readFrom: stream onError:[:msg|self error: msg]
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   538
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   539
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   540
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   541
    "
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   542
        (HGCommandParser on: '4:6f88e1f44d9eb86e0b56ca15e30e5d786acd83c7' readStream) parseNodeId
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   543
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   544
        Bad ones:
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   545
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   546
        (HGCommandParser on: '4:6f88e1f44d9eb86e0b56ca15e30e5d786acd' readStream) parseNodeId
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   547
        (HGCommandParser on: '4:6f88Z1f44d9eb86e0b56ca15e30e5d786acd83c7' readStream) parseNodeId
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   548
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   549
    "
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   550
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   551
    "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
   552
    "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
   553
!
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   554
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   555
parseNodeIdList
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   556
    "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
   557
     short and full node ids."
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   558
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   559
    | ids |
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   560
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   561
    stream atEnd ifTrue:[ ^ #() ].
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   562
    stream peek == Character cr ifTrue:[ ^ #() ].
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   563
    ids := OrderedCollection new.
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   564
    [ stream peek ~~ Character cr ] whileTrue:[
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   565
        ids add: self parseNodeId.
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   566
        stream peek == Character space ifTrue:[stream next].
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   567
    ].
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   568
    ^ids
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   569
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   570
    "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
   571
!
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   572
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   573
parsePath
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   574
    "Parse single path entry from repository"
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   575
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   576
    ^self parseName
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   577
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   578
    "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
   579
!
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   580
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   581
parsePathCopy
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   582
    "Parse single path entry from repository"
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   583
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   584
    | dst src |
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   585
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   586
    dst := self parseName.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   587
    self expectSpace.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   588
    self expect:$(.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   589
    src := String streamContents:[:out|
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   590
        [ stream peek == $) ] whileFalse:[
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   591
            out nextPut:stream next
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   592
        ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   593
        stream next.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   594
    ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   595
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   596
    ^Array with: dst with: src
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   597
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   598
    "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
   599
!
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   600
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   601
parsePathCopyList
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   602
    | list |
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   603
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   604
    stream atEnd ifTrue:[ ^#() ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   605
    stream peek isSeparator ifTrue:[ ^#() ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   606
    list := OrderedCollection new.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   607
    list add: self parsePathCopy.
169
3e156584235f Bugfix: HGCommandParser>>parsePathCopyList.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 165
diff changeset
   608
    [ stream atEnd not and:[stream peek ~= Character cr]] whileTrue:[
3e156584235f Bugfix: HGCommandParser>>parsePathCopyList.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 165
diff changeset
   609
        "/stream next. "/eat space.
135
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   610
        list add: self parsePathCopy.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   611
    ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   612
    ^list.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   613
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   614
    "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
   615
    "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
   616
!
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   617
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   618
parsePathList
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   619
    | list |
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   620
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   621
    stream atEnd ifTrue:[ ^#() ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   622
    stream peek isSeparator ifTrue:[ ^#() ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   623
    list := OrderedCollection new.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   624
    list add: self parsePath.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   625
    [ stream atEnd not and:[stream peek == Character space]] whileTrue:[
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   626
        stream next. "/eat space.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   627
        list add: self parsePath.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   628
    ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   629
    ^list.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   630
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   631
    "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
   632
!
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   633
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   634
parsePushPull
336
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   635
    | line |
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   636
    [ 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
   637
        | ln |
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   638
        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
   639
        (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
   640
            line := ln.
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   641
            (ln startsWith:'remote: ') ifTrue:[
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   642
                line := line copyFrom: 9
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   643
            ].
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   644
            self notify: line.
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   645
        ]
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   646
    ].
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   647
    ^self parsePushPullSummaryInto: HGPushPullInfo new from: line readStream.  
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   648
    
151
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   649
336
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   650
"/    #(
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   651
"/        'adding changesets'
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   652
"/        'adding manifests'
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   653
"/        '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
   654
"/    ) do:[:info|
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   655
"/        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
   656
"/            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
   657
"/        ].
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   658
"/        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
   659
"/        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
   660
"/    ].
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   661
"/    ^self parsePushPullSummary
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   662
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   663
    "Created: / 04-02-2013 / 15:01: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
   664
    "Modified: / 13-07-2013 / 12:10:50 / 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
   665
!
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   666
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   667
parsePushPullSummary
336
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   668
    ^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
   669
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   670
    "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
   671
!
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   672
336
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   673
parsePushPullSummaryInto:info 
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   674
    "Example:
151
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   675
336
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   676
        '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
   677
    
222
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   678
    | c |
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   679
303
aee999e9dc25 Bugfixes in push parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 276
diff changeset
   680
    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
   681
        self expect:'remote: '.
303
aee999e9dc25 Bugfixes in push parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 276
diff changeset
   682
    ].
336
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   683
    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
   684
    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
   685
    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
   686
    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
   687
    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
   688
    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
   689
    self expect:' files'.
222
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   690
    c := stream next.
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   691
    c == Character space ifTrue:[
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   692
        self expect:$(.
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   693
        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
   694
        ('+-' 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
   695
            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
   696
        ].
336
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   697
        info 
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   698
            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
   699
        ^ info
222
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   700
    ].
336
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   701
    (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
   702
        ^ info
222
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   703
    ].
336
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   704
    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
   705
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   706
    "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
   707
    "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
   708
!
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   709
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   710
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
   711
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   712
    | oldStream |
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   713
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   714
    oldStream := stream.
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   715
    [
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   716
        stream := auxStream.
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   717
        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
   718
    ] ensure:[
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   719
        stream := oldStream.
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   720
    ].
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   721
    ^info
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   722
93b086927aea Fixes for parsing output of 'hg push' and 'hg pull'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 335
diff changeset
   723
    "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
   724
! !
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   725
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   726
!HGCommandParser methodsFor:'parsing - commands'!
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   727
403
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   728
parseCommandBookmarks
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   729
    "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
   730
     of orphaned HGBookmark"
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   731
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   732
    ^self parseBookmarks
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   733
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   734
    "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
   735
!
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
   736
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   737
parseCommandBranches
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   738
    "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
   739
     of orphaned HGBranch"
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   740
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   741
    ^self parseBranches
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   742
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   743
    "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
   744
    "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
   745
!
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   746
106
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   747
parseCommandHeads
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   748
    "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
   749
     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
   750
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   751
    | ids |
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   752
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   753
    ids := OrderedCollection new.
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   754
    [ stream atEnd ] whileFalse:[
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   755
        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
   756
    ].
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   757
    ^ids
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   758
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   759
    "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
   760
!
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   761
366
9da938d1e76a Added support for `hg help` command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 358
diff changeset
   762
parseCommandHelp 
9da938d1e76a Added support for `hg help` command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 358
diff changeset
   763
    "Parse output of 'hg help topic'"
9da938d1e76a Added support for `hg help` command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 358
diff changeset
   764
9da938d1e76a Added support for `hg help` command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 358
diff changeset
   765
    ^ String streamContents:[ :out |
9da938d1e76a Added support for `hg help` command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 358
diff changeset
   766
        [ stream atEnd ] whileFalse:[ 
9da938d1e76a Added support for `hg help` command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 358
diff changeset
   767
            out nextPutLine: stream nextLine              
9da938d1e76a Added support for `hg help` command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 358
diff changeset
   768
        ].
9da938d1e76a Added support for `hg help` command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 358
diff changeset
   769
    ]
9da938d1e76a Added support for `hg help` command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 358
diff changeset
   770
9da938d1e76a Added support for `hg help` command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 358
diff changeset
   771
    "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
   772
!
9da938d1e76a Added support for `hg help` command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 358
diff changeset
   773
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   774
parseCommandLocate
71
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   775
    "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
   776
     to parse"
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   777
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   778
    | filenames |
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   779
    filenames := OrderedCollection new.
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   780
    [ stream atEnd ] whileFalse:[
77
b6070a017acd Fixes for ercurial < 2.3
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 71
diff changeset
   781
        | filename |
b6070a017acd Fixes for ercurial < 2.3
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 71
diff changeset
   782
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   783
        filename := stream nextLine.
77
b6070a017acd Fixes for ercurial < 2.3
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 71
diff changeset
   784
        "/ 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
   785
        (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
   786
            filenames add:  filename
b6070a017acd Fixes for ercurial < 2.3
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 71
diff changeset
   787
        ]
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   788
    ].
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   789
    ^filenames.
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   790
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   791
    "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
   792
    "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
   793
!
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   794
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   795
parseCommandLog
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   796
    "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
   797
     was HGCommandParser templateLog. Return a list of HGChangeset."
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   798
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
   799
    "/ 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
   800
    "/ '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
   801
    "/ 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
   802
    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
   803
        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
   804
    ].
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   805
    ^self parseLog
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   806
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   807
    "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
   808
    "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
   809
!
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   810
137
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   811
parseCommandLogChildren
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   812
    "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
   813
     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
   814
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   815
    | revsAndChildren |
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   816
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   817
    revsAndChildren := OrderedCollection new.
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   818
    [ stream atEnd ] whileFalse:[
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   819
        | rev children |
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   820
        rev := self parseNodeId. self expectLineEnd.
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   821
        stream atEnd ifFalse:[
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   822
            children := self parseNodeIdList. self expectLineEnd.
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   823
        ] ifTrue: [
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   824
            children := #().
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   825
        ].
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   826
        revsAndChildren add: (Array with: rev with: children).
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   827
    ].
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   828
    ^revsAndChildren
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   829
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   830
    "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
   831
!
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   832
372
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 366
diff changeset
   833
parseCommandLogIdsOnly
136
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   834
    "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
   835
     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
   836
    
136
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   837
    | ids |
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   838
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   839
    ids := OrderedCollection new.
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   840
    [ 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
   841
        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
   842
        self expectLineEnd.
136
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   843
    ].
372
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 366
diff changeset
   844
    ^ ids
136
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   845
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   846
    "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
   847
!
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   848
177
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   849
parseCommandMerge
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   850
    "Parse output of 'hg update' command. "
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   851
219
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   852
    | info c |
177
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   853
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   854
    info := HGMergeInfo new.
180
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   855
    [ stream peek isDigit ] whileFalse:[
276
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   856
        [ 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
   857
        c == $m ifTrue:[
180
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   858
            self parseMergePath: info.
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   859
        ] ifFalse:[
276
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   860
            c == $r ifTrue:[
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   861
                self parseMergeRemoteChanged: info
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   862
            ] ifFalse:[
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   863
                c == $l ifTrue:[
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   864
                    self parseMergeLocalChanged: info
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   865
                ] ifFalse:[
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   866
                    self error:'Unexpected merge line'
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   867
                ]
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   868
            ]
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   869
        ]
177
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   870
    ].
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   871
    self parseMergeSummary: info.
219
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   872
    c := stream next.
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   873
    c == $( ifTrue:[
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   874
        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
   875
        self expectLineEnd.
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   876
        ^info
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   877
    ].
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   878
    c == $u ifTrue:[
220
fe6e6870b720 Bugfix of bugfix of HGCommandParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 219
diff changeset
   879
        self expect: 'se ''hg resolve'' to retry unresolved file merges or ''hg update -C .'' to abandon'.
219
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   880
        self expectLineEnd.
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   881
        ^info
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   882
    ].
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   883
    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
   884
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   885
    "Created: / 14-01-2013 / 15:57:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
276
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   886
    "Modified: / 22-03-2013 / 09:00:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
177
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   887
!
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   888
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   889
parseCommandPull
453
09a9ccac8aba Fixed timing issues for push/pull commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 444
diff changeset
   890
    "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
   891
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   892
    "
358
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
   893
    Ex:
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   894
358
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
   895
    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
   896
    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
   897
    adding changesets
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
   898
    adding manifests
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
   899
    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
   900
    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
   901
    (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
   902
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   903
    "
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   904
    | c |
453
09a9ccac8aba Fixed timing issues for push/pull commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 444
diff changeset
   905
09a9ccac8aba Fixed timing issues for push/pull commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 444
diff changeset
   906
    stream atEnd ifTrue:[
09a9ccac8aba Fixed timing issues for push/pull commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 444
diff changeset
   907
        ^ nil
09a9ccac8aba Fixed timing issues for push/pull commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 444
diff changeset
   908
    ].
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   909
    
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   910
    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
   911
    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
   912
    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
   913
        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
   914
        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
   915
        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
   916
    ].
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   917
    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
   918
        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
   919
        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
   920
        ^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
   921
    ].
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   922
    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
   923
        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
   924
        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
   925
        ^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
   926
    ].
358
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
   927
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
   928
    [ 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
   929
        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
   930
        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
   931
        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
   932
            "/ adding ...
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
   933
            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
   934
            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
   935
            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
   936
                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
   937
                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
   938
            ] ifFalse:[
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
   939
            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
   940
                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
   941
                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
   942
            ] ifFalse:[
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
   943
            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
   944
                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
   945
                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
   946
            ]]]
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
   947
        ] ifFalse:[
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
   948
        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
   949
            "/ 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
   950
            | line |
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
   951
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
   952
            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
   953
            ^ 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
   954
        ]].
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
   955
        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
   956
    ].
a29af7da2825 Fixes parsing of `hg pull` for Mercurial 7.2.x
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 351
diff changeset
   957
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   958
    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
   959
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   960
    "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
   961
    "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
   962
!
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   963
151
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   964
parseCommandPush
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   965
    "Parse output of 'hg push' command. "
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   966
    "
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   967
     Ex:
151
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   968
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   969
     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
   970
     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
   971
    "
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   972
    | c |
453
09a9ccac8aba Fixed timing issues for push/pull commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 444
diff changeset
   973
09a9ccac8aba Fixed timing issues for push/pull commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 444
diff changeset
   974
    stream atEnd ifTrue:[
09a9ccac8aba Fixed timing issues for push/pull commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 444
diff changeset
   975
        ^ nil
09a9ccac8aba Fixed timing issues for push/pull commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 444
diff changeset
   976
    ].
09a9ccac8aba Fixed timing issues for push/pull commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 444
diff changeset
   977
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   978
    
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   979
    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
   980
    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
   981
    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
   982
    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
   983
        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
   984
        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
   985
        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
   986
    ].
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   987
    c == $n ifTrue:[
228
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   988
        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
   989
        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
   990
        ^ HGPushPullInfo new
228
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   991
    ] ifFalse:[
453
09a9ccac8aba Fixed timing issues for push/pull commands.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 444
diff changeset
   992
        ^ 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
   993
    ].
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   994
    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
   995
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   996
    "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
   997
    "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
   998
!
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   999
177
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1000
parseCommandResolveList
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1001
    "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
  1002
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1003
    | statuses |
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
    statuses := Dictionary new.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1006
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1007
    [ stream atEnd ] whileFalse:[
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1008
        | status path |
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1009
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1010
        status := stream next.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1011
        (status == $U or:[status == $R]) ifFalse:[
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1012
            self error:'Unknown resolution status: ', status.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1013
        ].
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1014
        self expectSpace.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1015
        path := self parsePath.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1016
        statuses at: path put: status.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1017
        self expectLineEnd.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1018
    ].
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1019
    ^statuses
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1020
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1021
    "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
  1022
!
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1023
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
  1024
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
  1025
    "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
  1026
     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
  1027
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
  1028
    ^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
  1029
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
  1030
    "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
  1031
!
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
  1032
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1033
parseCommandStatus
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1034
    | statusesAndPaths |
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1035
    statusesAndPaths := OrderedCollection new.
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1036
    [ stream atEnd ] whileFalse:[
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1037
        | status path |
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1038
88
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1039
        stream peek == Character space ifTrue:[
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1040
            statusesAndPaths last first"status" isAdded ifTrue:[
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1041
                stream next.
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1042
                self expectSpace.
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1043
                path := self nextLine.
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1044
                statusesAndPaths last at:1 put: (HGStatus copied source: path)
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1045
            ] ifFalse:[
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1046
                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
  1047
            ]
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1048
        ] ifFalse:[
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1049
            status := HGStatus forCode: self next.
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1050
            self expectSpace.
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1051
            path := self nextLine.
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1052
            statusesAndPaths add: { status . path }
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1053
        ].
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1054
    ].
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1055
    ^ statusesAndPaths
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1056
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1057
    "Created: / 23-10-2012 / 10:57:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
88
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
  1058
    "Modified: / 21-11-2012 / 01:09:01 / 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
  1059
!
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1060
177
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1061
parseCommandUpdate
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1062
    "Parse output of 'hg update' command. "
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1063
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1064
    ^self parseMergeSummary
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1065
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1066
    "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
  1067
!
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
  1068
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1069
parseCommandVersion
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1070
    "Parse output of 'hg --version'"
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1071
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1072
    "
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1073
    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
  1074
    (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
  1075
    
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1076
    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
  1077
    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
  1078
    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
  1079
    "
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1080
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1081
    | major minor revision |
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1082
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1083
    self 
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1084
        expect:'Mercurial'; skipSeparators;
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1085
        expect:'Distributed'; skipSeparators;
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1086
        expect:'SCM'; skipSeparators;
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1087
        expect:$(; skipSeparators;
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1088
        expect:'version'.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1089
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1090
    major := self parseInteger.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1091
    self expect:$..
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1092
    minor := self parseInteger.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1093
    stream peek == $. ifTrue:[
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1094
        stream next.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1095
        revision := self parseInteger.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1096
    ].
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1097
479
adf58d1ac45e Fixed Mercurial version parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 477
diff changeset
  1098
    (stream peek ~~ $) and:[ stream peek ~~ $+]) ifTrue:[ 
adf58d1ac45e Fixed Mercurial version parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 477
diff changeset
  1099
        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
  1100
    ].
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1101
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1102
    ^(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
  1103
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1104
    "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
  1105
    "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
  1106
! !
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1107
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1108
!HGCommandParser methodsFor:'parsing - errors'!
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1109
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1110
parseError
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1111
    ^self parseErrorClass: HGCommandError
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1112
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1113
    "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
  1114
!
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1115
466
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1116
parseError1: parseBlock
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1117
    "/ Parse at most one error from stream and returs.
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1118
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1119
    | c word line |
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1120
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1121
    c := stream peek.
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1122
    c isNil ifTrue:[ ^ self ]. "/ stream closed / already at end
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1123
466
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1124
    "/ Care for "*** failed to import extension" messages...
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1125
    c == $* ifTrue:[ 
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1126
        stream next.
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1127
        c := stream peek.
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1128
        c == $* ifTrue:[ 
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1129
            stream next.
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1130
            c := stream peek.
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1131
            c == $* ifTrue:[ 
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1132
                stream next.
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1133
                self notify: stream nextLine.
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1134
                ^ self.
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1135
            ].
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1136
        ].
469
31c2d936cd0a More relaxed error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 468
diff changeset
  1137
        self notify: stream nextLine.
466
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1138
        ^ self.
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1139
    ].
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1140
    c == $a ifTrue:[
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1141
        word := stream upTo: $:.
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1142
        stream next. "/eat space
466
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1143
        word = 'abort' ifTrue:[
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1144
            parseBlock value: stream nextLine.
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1145
            ^ self.
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1146
        ].
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1147
    ].
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1148
    "/ Special hack for mercurial_keyring extension, sigh...
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1149
    line := stream nextLine.
468
bef640beaa4b Fixed bug in error parsing introduced in d91a31328a0
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 467
diff changeset
  1150
    "/ If c == $a we may have already read some data. In that case,
bef640beaa4b Fixed bug in error parsing introduced in d91a31328a0
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 467
diff changeset
  1151
    "/ word is not nil and we have to preprend it to line read just above...
bef640beaa4b Fixed bug in error parsing introduced in d91a31328a0
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 467
diff changeset
  1152
    word notNil ifTrue:[ 
bef640beaa4b Fixed bug in error parsing introduced in d91a31328a0
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 467
diff changeset
  1153
        line := word , (line ? '')
bef640beaa4b Fixed bug in error parsing introduced in d91a31328a0
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 467
diff changeset
  1154
    ].
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1155
466
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1156
    (line includesSubString: 'mercurial_keyring.py') ifTrue:[
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1157
        (line endsWith: 'UserWarning: Basic Auth Realm was unquoted') ifTrue:[
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1158
            stream nextLine.
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1159
        ].
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1160
        ^ self.
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1161
    ].
469
31c2d936cd0a More relaxed error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 468
diff changeset
  1162
    self notify: 'Unexpected error output: ', line.
466
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1163
    ^ self.
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1164
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1165
    "Created: / 06-11-2014 / 00:28:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
469
31c2d936cd0a More relaxed error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 468
diff changeset
  1166
    "Modified: / 07-11-2014 / 23:47:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
466
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1167
!
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1168
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1169
parseError: parseBlock
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1170
    [ stream atEnd ] whileFalse:[
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1171
        self parseError1: parseBlock.  
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1172
    ].
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1173
    ^nil
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1174
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1175
    "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
  1176
    "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
  1177
!
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1178
403
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1179
parseErrorBookmark
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1180
    ^self parseErrorClass: HGBookmarkError
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1181
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1182
    "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
  1183
!
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1184
228
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
  1185
parseErrorBranches
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
  1186
    [ stream atEnd ] whileFalse:[
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
  1187
        | c word |
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
  1188
466
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1189
        c := stream peek.
228
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
  1190
        c == $i ifTrue:[
351
ee626983e8c2 Fix for Mercurial 2.7 (error message differ)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 346
diff changeset
  1191
            "/ 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
  1192
            "/ 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
  1193
            "/                    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
  1194
            "/ Sigh...
466
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1195
            self expect: 'invalid'.
351
ee626983e8c2 Fix for Mercurial 2.7 (error message differ)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 346
diff changeset
  1196
            c := stream peek.
ee626983e8c2 Fix for Mercurial 2.7 (error message differ)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 346
diff changeset
  1197
            c == $a ifTrue:[
425
4ac00477f669 More relaxec parsing of 'hg branches' error output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 409
diff changeset
  1198
                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
  1199
                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
  1200
            ] 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
  1201
                self expect: ' branchheads cache'.
4ac00477f669 More relaxec parsing of 'hg branches' error output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 409
diff changeset
  1202
                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
  1203
            ]].
ee626983e8c2 Fix for Mercurial 2.7 (error message differ)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 346
diff changeset
  1204
ee626983e8c2 Fix for Mercurial 2.7 (error message differ)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 346
diff changeset
  1205
228
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
  1206
        ] ifFalse:[
466
ad91a31328a0 More robust error parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 458
diff changeset
  1207
            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
  1208
        ]
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
  1209
    ].
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
  1210
    ^nil
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
  1211
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
  1212
    "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
  1213
    "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
  1214
!
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
  1215
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1216
parseErrorClass: errorClass
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1217
    "Generic error output parse. Returns an initialized
706
1d1878add629 #OTHER by mawalch
mawalch
parents: 591
diff changeset
  1218
     error (instance of errorClass) if an error occurs,
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1219
     nil if not.
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1220
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1221
     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
  1222
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1223
    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
  1224
        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
  1225
    ].
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1226
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1227
    "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
  1228
    "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
  1229
!
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1230
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1231
parseErrorCommit
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1232
    ^self parseErrorClass: HGCommitError
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1233
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1234
    "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
  1235
!
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1236
372
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 366
diff changeset
  1237
parseErrorLog
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1238
    ^self parseError: [:msg |
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1239
        | errCls |
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1240
372
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 366
diff changeset
  1241
        (msg startsWith: 'unknown revision ''') ifTrue:[
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 366
diff changeset
  1242
            errCls := HGUnknownRevisionError.
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1243
        ] ifFalse:[
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1244
            errCls := HGPushError
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1245
        ].
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1246
        self propagate: errCls message: msg
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1247
    ].
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1248
372
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 366
diff changeset
  1249
    "Created: / 09-02-2014 / 10:21:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 366
diff changeset
  1250
!
5acd6d915c77 Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 366
diff changeset
  1251
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1252
parseErrorPush
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1253
    ^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
  1254
        (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
  1255
            | newHeadId err |
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1256
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
  1257
            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
  1258
            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
  1259
                        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
  1260
                        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
  1261
                        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
  1262
            self propagate: err.                          
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1263
        ] 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
  1264
            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
  1265
        ].
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
  1266
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1267
    ].
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1268
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1269
    "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
  1270
    "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
  1271
! !
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1272
403
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1273
!HGCommandParser methodsFor:'parsing - files'!
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1274
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1275
parseDotHgBookmarks
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1276
    "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
  1277
     of orphaned HGBookmark"
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1278
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1279
    | bookmarks |
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1280
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1281
    bookmarks := OrderedCollection new.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1282
    [ stream atEnd ] whileFalse:[ 
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1283
        | bookmark |
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1284
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1285
        bookmark := HGBookmark new.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1286
        bookmark setChangesetId: self parseNodeId.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1287
        stream skipSeparators.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1288
        bookmark setName: stream nextLine.
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1289
        bookmarks add: bookmark
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1290
    ].
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1291
    ^ bookmarks
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1292
237ed0ed6c49 Initial support for Mercurial bookmarks.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 395
diff changeset
  1293
    "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
  1294
    "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
  1295
! !
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1296
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
  1297
!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
  1298
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1299
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
  1300
    "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
  1301
     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
  1302
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1303
    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
  1304
        ^ 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
  1305
    ] 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
  1306
        ^ 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
  1307
    ]
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1308
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1309
    "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
  1310
!
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1311
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1312
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
  1313
    ^ 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
  1314
        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
  1315
        [ 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
  1316
            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
  1317
            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
  1318
        ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1319
    ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1320
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1321
    "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
  1322
!
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1323
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1324
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
  1325
    ^ 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
  1326
        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
  1327
        [ 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
  1328
            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
  1329
            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
  1330
        ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1331
    ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1332
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1333
    "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
  1334
!
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1335
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1336
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
  1337
    | 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
  1338
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1339
    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
  1340
    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
  1341
    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
  1342
    [ 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
  1343
        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
  1344
            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
  1345
            [ 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
  1346
                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
  1347
                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
  1348
                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
  1349
                    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
  1350
                ] 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
  1351
                    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
  1352
                ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1353
            ]
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1354
        ] 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
  1355
            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
  1356
                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
  1357
                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
  1358
                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
  1359
                    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
  1360
                ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1361
            ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1362
            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
  1363
        ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1364
        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
  1365
        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
  1366
    ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1367
    ^ 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
  1368
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1369
    "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
  1370
    "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
  1371
!
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1372
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1373
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
  1374
    | 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
  1375
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1376
    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
  1377
    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
  1378
    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
  1379
    [ 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
  1380
        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
  1381
            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
  1382
            [ 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
  1383
                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
  1384
                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
  1385
                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
  1386
                    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
  1387
                    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
  1388
                    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
  1389
                        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
  1390
                    ] 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
  1391
                        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
  1392
                    ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1393
                ] 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
  1394
                    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
  1395
                ] 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
  1396
                    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
  1397
                ]].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1398
            ]
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1399
        ] 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
  1400
            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
  1401
            [ 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
  1402
                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
  1403
                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
  1404
                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
  1405
                    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
  1406
                ] 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
  1407
                    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
  1408
                ].                       
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1409
            ]
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1410
        ] 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
  1411
            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
  1412
                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
  1413
                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
  1414
            ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1415
            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
  1416
        ]].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1417
        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
  1418
        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
  1419
    ].
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1420
    ^ 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
  1421
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1422
    "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
  1423
    "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
  1424
! !
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1425
8987b87a562a hg command setting refactored to allow command and arguments to be specified.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 438
diff changeset
  1426
!HGCommandParser methodsFor:'parsing - utils'!
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1427
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1428
expect: aStringOrChar
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1429
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1430
    | c |
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1431
    aStringOrChar isCharacter ifTrue:[
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1432
        (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
  1433
            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
  1434
        ].
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1435
        ^self.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1436
    ].
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1437
    aStringOrChar isString ifTrue:[
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1438
        aStringOrChar do:[:expected|
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1439
            (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
  1440
                self error:('Expected ''%1''.' bindWith: aStringOrChar).
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1441
            ].
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1442
        ].
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1443
        ^self.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1444
    ].
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1445
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1446
    self error:'Invalid expected value'.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1447
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1448
    "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
  1449
!
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1450
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1451
expectLineEnd
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1452
    self expect: Character cr.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1453
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1454
    "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
  1455
!
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1456
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1457
expectSpace
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1458
    self expect: Character space.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1459
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1460
    "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
  1461
!
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1462
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1463
next
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1464
    ^stream next.
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1465
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1466
    "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
  1467
!
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1468
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1469
nextLine
38
c3d02ed6a645 - HGWorkingCopyFile
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
  1470
    ^stream nextLine
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1471
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1472
    "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
  1473
    "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
  1474
!
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1475
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1476
skipSeparators
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1477
    stream skipSeparators
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
  1478
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1479
    "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
  1480
! !
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1481
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
  1482
!HGCommandParser class methodsFor:'documentation'!
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
  1483
528
f753b34afafa initial checkin
Claus Gittinger <cg@exept.de>
parents: 512
diff changeset
  1484
version
591
0400b4bf2ced Fix version_CVS
Stefan Vogel <sv@exept.de>
parents: 528
diff changeset
  1485
    ^ '$Header$'
528
f753b34afafa initial checkin
Claus Gittinger <cg@exept.de>
parents: 512
diff changeset
  1486
!
f753b34afafa initial checkin
Claus Gittinger <cg@exept.de>
parents: 512
diff changeset
  1487
f753b34afafa initial checkin
Claus Gittinger <cg@exept.de>
parents: 512
diff changeset
  1488
version_CVS
591
0400b4bf2ced Fix version_CVS
Stefan Vogel <sv@exept.de>
parents: 528
diff changeset
  1489
    ^ '$Header$'
528
f753b34afafa initial checkin
Claus Gittinger <cg@exept.de>
parents: 512
diff changeset
  1490
!
f753b34afafa initial checkin
Claus Gittinger <cg@exept.de>
parents: 512
diff changeset
  1491
54
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 51
diff changeset
  1492
version_HG
115
b1ed2d29054b version_HG changed to return string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
  1493
b1ed2d29054b version_HG changed to return string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
  1494
    ^ '$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
  1495
!
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 51
diff changeset
  1496
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
  1497
version_SVN
591
0400b4bf2ced Fix version_CVS
Stefan Vogel <sv@exept.de>
parents: 528
diff changeset
  1498
    ^ '$Id$'
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
  1499
! !
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
  1500