mercurial/HGCommandParser.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 12 Jul 2013 17:47:21 +0100
changeset 335 7e19ab19148b
parent 303 aee999e9dc25
child 336 93b086927aea
permissions -rw-r--r--
Changed license to LGPL2.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
     1
"
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
     2
stx:libscm - a new source code management library for Smalltalk/X
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
     3
Copyright (C) 2012-2013 Jan Vrany
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
     4
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
     5
This library is free software; you can redistribute it and/or
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
     6
modify it under the terms of the GNU Lesser General Public
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
     7
License as published by the Free Software Foundation; either
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
     8
version 2.1 of the License. 
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
     9
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    10
This library is distributed in the hope that it will be useful,
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    11
but WITHOUT ANY WARRANTY; without even the implied warranty of
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    13
Lesser General Public License for more details.
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    14
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    15
You should have received a copy of the GNU Lesser General Public
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    16
License along with this library; if not, write to the Free Software
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    17
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    18
"
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    19
"{ Package: 'stx:libscm/mercurial' }"
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    20
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    21
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
    22
	instanceVariableNames:'stream command'
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    23
	classVariableNames:''
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    24
	poolDictionaries:''
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    25
	category:'SCM-Mercurial-Internal'
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    26
!
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    27
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    28
!HGCommandParser class methodsFor:'documentation'!
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    29
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    30
copyright
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    31
"
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    32
stx:libscm - a new source code management library for Smalltalk/X
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    33
Copyright (C) 2012-2013 Jan Vrany
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    34
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    35
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
    36
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
    37
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
    38
version 2.1 of the License. 
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    39
335
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    40
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
    41
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
    42
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
    43
Lesser General Public License for more details.
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    44
7e19ab19148b Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 303
diff changeset
    45
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
    46
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
    47
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
    48
"
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
    49
! !
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    50
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
    51
!HGCommandParser class methodsFor:'instance creation'!
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
    52
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    53
for: anHGCommand on: aStringOrStream
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
    54
    | stream |
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
    55
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
    56
    stream := aStringOrStream isStream 
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
    57
                ifTrue:[aStringOrStream]
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
    58
                ifFalse:[aStringOrStream readStream].
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
    59
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    60
    ^self new
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    61
        command: anHGCommand;
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    62
        stream: stream;
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    63
        yourself
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    64
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    65
    "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
    66
!
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    67
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    68
on: aStringOrStream
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
    69
    ^self for: nil on: aStringOrStream
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
    70
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
    71
    "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
    72
    "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
    73
! !
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
    74
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
    75
!HGCommandParser class methodsFor:'templates'!
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
    76
106
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    77
templateHeads
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    78
    ^'{rev}:{node}\n'
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    79
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    80
    "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
    81
!
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
    82
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
    83
templateLog
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
    84
    ^
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
    85
'{rev}:{node}
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
    86
{branch}
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
    87
{parents}
137
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
    88
135
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
    89
{file_adds}
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
    90
{file_copies}
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
    91
{file_dels}
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
    92
{file_mods}
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
    93
{author}
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
    94
{date|isodate}
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
    95
{desc}
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
    96
**EOE**
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
    97
'
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
    98
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
    99
    "Created: / 12-11-2012 / 23:06:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
137
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   100
    "Modified: / 05-12-2012 / 23:32:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   101
!
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   102
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   103
templateLogChildren
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   104
    ^'{rev}:{node}\n{children}\n'
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   105
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   106
    "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
   107
!
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
templateLogFile
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   110
    ^'{rev}:{node}\n'
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   111
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   112
    "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
   113
! !
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   114
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   115
!HGCommandParser methodsFor:'accessing'!
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   116
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   117
command
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   118
    ^ command
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   119
!
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
command:anHGCommand
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   122
    command := anHGCommand.
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   123
!
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   124
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   125
stream
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   126
    ^ stream
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   127
!
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
stream:something
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   130
    stream := something.
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   131
! !
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   132
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   133
!HGCommandParser methodsFor:'error reporting'!
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   134
51
61700cf82743 - HGCommandParser
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   135
error: aString
61700cf82743 - HGCommandParser
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   136
    <context: #return>
61700cf82743 - HGCommandParser
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   137
    <resource: #skipInDebuggersWalkBack>
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   138
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
    self propagate: HGCommandParseError message: aString
51
61700cf82743 - HGCommandParser
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   140
61700cf82743 - HGCommandParser
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 40
diff changeset
   141
    "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
   142
    "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
   143
!
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   144
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   145
notify: aString
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   146
    <context: #return>
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   147
    <resource: #skipInDebuggersWalkBack>
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   148
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
    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
   150
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   151
    "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
   152
    "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
   153
!
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   154
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   155
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
   156
    "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
   157
     (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
   158
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   159
    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
   160
        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
   161
        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
   162
            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
   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
    ] ifFalse:[
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   165
        anException raiseRequest
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   166
    ].
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
    "Created: / 04-02-2013 / 21:38:53 / 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
   169
!
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   170
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   171
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
   172
    "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
   173
     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
   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
    ^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
   176
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   177
    "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
   178
!
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   179
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   180
warn: aString
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   181
    <context: #return>
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   182
    <resource: #skipInDebuggersWalkBack>
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   183
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   184
    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
   185
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   186
    "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
   187
    "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
   188
! !
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   189
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   190
!HGCommandParser methodsFor:'parsing'!
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   191
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   192
parseBranches
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   193
    "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
   194
     of orphaned HGBranch"
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   195
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   196
    | branches |
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   197
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   198
    branches := OrderedCollection new.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   199
    [ stream atEnd ] whileFalse:[
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   200
        branches add: self parseBranchesEntry
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   201
    ].
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   202
    ^branches
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   203
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   204
    "Created: / 27-11-2012 / 20:20:56 / 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
   205
!
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   206
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   207
parseBranchesEntry
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   208
    | branch |
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   209
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   210
    branch := HGBranch new.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   211
    branch setName: self parseName.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   212
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   213
    stream skipSeparators.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   214
    self parseNodeId.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   215
    stream peek == Character space ifTrue:[
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   216
        stream next.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   217
        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
   218
        stream next.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   219
        stream peek == $i ifTrue:[
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   220
            self expect:'inactive)'.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   221
            branch setActive: false.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   222
        ] ifFalse:[
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   223
            stream peek == $c ifTrue:[
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   224
                self expect:'closed)'.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   225
                branch setClosed: true.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   226
            ] ifFalse:[
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   227
                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
   228
            ]
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   229
        ].
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   230
    ].
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   231
    self expectLineEnd.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   232
    ^branch
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   233
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   234
    "Created: / 27-11-2012 / 19:23: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
   235
!
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   236
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
   237
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
   238
    "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
   239
     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
   240
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   241
    | 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
   242
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   243
    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
   244
    [ stream atEnd ] whileFalse:[
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   245
        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
   246
    ].
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   247
    ^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
   248
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
   249
    "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
   250
    "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
   251
!
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
   252
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   253
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
   254
    | 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
   255
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   256
    entry := root.
142
67e8c5ab8db2 Initial support for config parsing (not yet integrated). UI improvements in commit dialog (comparing).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 137
diff changeset
   257
    out := String new writeStream.
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   258
    [ 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
   259
        stream peek == $. ifTrue:[
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   260
            entry := entry at: out contents ifAbsentPut: [
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   261
                HGConfig::Section new setName: out contents.
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   262
            ].
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
   263
            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
   264
            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
   265
        ] 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
   266
            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
   267
        ].
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
   268
    ].
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
   269
    stream next.
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   270
    entry at: out contents put:
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   271
        (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
   272
145
1b8652185a8f Added HGRepository>>config.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 142
diff changeset
   273
    "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
   274
!
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
   275
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   276
parseDate
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   277
    | ts |
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   278
    ts := Timestamp readIso8601FormatFrom:stream.
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   279
    (stream peek == $+ or:[stream peek == $-]) ifFalse:[
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   280
        self error:'Timezone expected, ' , stream peek , ' found'
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   281
    ].
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   282
    stream next.
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   283
    4 timesRepeat:[
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   284
        ('0123456789' includes: stream peek) ifFalse:[
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   285
            self error:'Timezone expected, ' , stream peek , ' found'
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   286
        ].
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   287
        stream next.
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   288
    ].
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   289
    ^ts
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   290
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   291
    "Created: / 13-11-2012 / 10:22:46 / 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
   292
    "Modified: / 13-11-2012 / 17:28:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   293
!
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   294
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   295
parseInteger
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   296
    "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
   297
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   298
    ^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
   299
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   300
    "
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   301
    (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
   302
    "
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   303
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   304
    "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
   305
!
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   306
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   307
parseLog
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   308
    "Parse output of 'hg log' command, assuming the template given
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   309
     was HGCommandParser templateLog. Return a list of HGRevision."
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   310
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   311
    | revs |
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   312
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   313
    revs := OrderedCollection new.
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   314
    [ stream atEnd ] whileFalse:[
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   315
        | rev |
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   316
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   317
        rev := self parseLogEntry.
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   318
        revs add: rev.
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   319
    ].
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   320
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   321
    ^revs.
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   322
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   323
    "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
   324
!
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   325
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   326
parseLogEntry
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   327
    "Parse single revision entry, assuming the template given
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   328
     was HGCommandParser templateLog. Return a HGRevision."
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   329
135
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   330
    | rev branches line message adds copies deletions modifications |
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   331
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   332
    rev := HGChangeset new.
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   333
    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
   334
    branches := self parseNameList. self expectLineEnd.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   335
    rev setBranches: branches.
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   336
    rev setParent1Id: self parseNodeId. self expectSpace.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   337
    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
   338
    "rev setChildren: self parseNodeIdList." self expectLineEnd.
135
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   339
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   340
    adds := self parsePathList. self expectLineEnd.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   341
    copies := self parsePathCopyList. self expectLineEnd.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   342
    deletions := self parsePathList. self expectLineEnd.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   343
    modifications := self parsePathList. self expectLineEnd.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   344
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   345
    copies pairsDo:[:dst :src|
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   346
        adds remove: dst.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   347
        deletions remove: src.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   348
    ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   349
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   350
    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
   351
    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
   352
    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
   353
    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
   354
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   355
    rev setChanges: modifications , adds , deletions , copies.
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   356
    rev setAuthor: self nextLine.
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   357
    rev setTimestamp: self parseDate. self expectLineEnd.
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   358
    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
   359
        line := self nextLine.
2579830f6b61 Tests fixed. Not-yet-supported tests marked as skipped.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   360
        s nextPutAll: line.
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   361
        [ 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
   362
            s cr.
2579830f6b61 Tests fixed. Not-yet-supported tests marked as skipped.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   363
            s nextPutAll: line
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   364
        ].
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   365
    ].
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   366
    rev setMessage: message.
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   367
    rev setNonLazy.
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   368
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   369
    ^rev
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   370
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   371
    "Created: / 13-11-2012 / 09:45:40 / 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
   372
    "Modified: / 16-12-2012 / 00:38:04 / 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
   373
!
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   374
276
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   375
parseMergeLocalChanged: info
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   376
    "Parses
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   377
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   378
    local changed lcmake.bat which remote deleted
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   379
    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
   380
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   381
    " 
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   382
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   383
    self expect: 'local changed'.
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   384
    stream nextLine.
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   385
    self expect: 'use'.
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   386
    stream nextLine.
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   387
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   388
    "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
   389
!
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   390
177
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   391
parseMergePath: info
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   392
    "Parses 'merging Make.proto' line" 
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   393
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   394
    self expect: 'merging '.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   395
    self parsePath.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   396
    self expectLineEnd.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   397
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   398
    "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
   399
!
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   400
180
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   401
parseMergeRemoteChanged: info
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   402
    "Parses
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   403
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   404
    remote changed CharacterEncoderImplementations__SJIS.st which local deleted
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   405
    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
   406
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   407
    " 
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   408
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   409
    self expect: 'remote changed'.
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   410
    stream nextLine.
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   411
    self expect: 'use'.
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   412
    stream nextLine.
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   413
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   414
    "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
   415
!
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   416
177
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   417
parseMergeSummary
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   418
    ^self parseMergeSummary: HGMergeInfo new
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   419
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   420
    "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
   421
!
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   422
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   423
parseMergeSummary: info
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   424
    "Example:
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   425
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   426
        '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
   427
    "
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   428
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   429
    info setNumUpdated: self parseInteger.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   430
    self expect: ' files updated, '.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   431
    info setNumMerged: self parseInteger.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   432
    self expect: ' files merged, '.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   433
    info setNumRemoved: self parseInteger.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   434
    self expect: ' files removed, '.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   435
    info setNumUnresolved: self parseInteger.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   436
    self expect: ' files unresolved'.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   437
    self expectLineEnd.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   438
    ^info
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   439
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   440
    "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
   441
!
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   442
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   443
parseName
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   444
    ^String streamContents:[:out|
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   445
        [ stream peek isSeparator ] whileFalse:[
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   446
            out nextPut:stream next
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   447
        ]
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   448
    ].
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   449
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   450
    "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
   451
!
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   452
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   453
parseNameList
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   454
    | list |
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   455
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   456
    stream atEnd ifTrue:[ ^#() ].
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   457
    stream peek isSeparator ifTrue:[ ^#() ].
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   458
    list := OrderedCollection new.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   459
    list add: self parseName.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   460
    [ 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
   461
        stream next. "/eat space.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   462
        list add: self parseName.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   463
    ].
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   464
    ^list.
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   465
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   466
    "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
   467
!
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   468
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   469
parseNodeId
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   470
    "Parses node id from stream and returns it. Support both,
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   471
     short and full node ids"
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   472
103
04731ef44417 HGNodeId renamed to HGChangesetId
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 93
diff changeset
   473
    ^HGChangesetId readFrom: stream onError:[:msg|self error: msg]
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   474
40
e3699c0b00f9 Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 39
diff changeset
   475
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   476
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   477
    "
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   478
        (HGCommandParser on: '4:6f88e1f44d9eb86e0b56ca15e30e5d786acd83c7' readStream) parseNodeId
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   479
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   480
        Bad ones:
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   481
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   482
        (HGCommandParser on: '4:6f88e1f44d9eb86e0b56ca15e30e5d786acd' readStream) parseNodeId
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   483
        (HGCommandParser on: '4:6f88Z1f44d9eb86e0b56ca15e30e5d786acd83c7' readStream) parseNodeId
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   484
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   485
    "
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   486
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   487
    "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
   488
    "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
   489
!
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   490
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   491
parseNodeIdList
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   492
    "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
   493
     short and full node ids."
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   494
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   495
    | ids |
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   496
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   497
    stream atEnd ifTrue:[ ^ #() ].
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   498
    stream peek == Character cr ifTrue:[ ^ #() ].
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   499
    ids := OrderedCollection new.
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   500
    [ stream peek ~~ Character cr ] whileTrue:[
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   501
        ids add: self parseNodeId.
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   502
        stream peek == Character space ifTrue:[stream next].
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   503
    ].
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   504
    ^ids
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   505
565c8bd9c9e8 Added children support to changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   506
    "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
   507
!
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   508
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   509
parsePath
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   510
    "Parse single path entry from repository"
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   511
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   512
    ^self parseName
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   513
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   514
    "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
   515
!
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   516
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   517
parsePathCopy
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   518
    "Parse single path entry from repository"
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   519
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   520
    | dst src |
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   521
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   522
    dst := self parseName.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   523
    self expectSpace.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   524
    self expect:$(.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   525
    src := String streamContents:[:out|
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   526
        [ stream peek == $) ] whileFalse:[
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   527
            out nextPut:stream next
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   528
        ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   529
        stream next.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   530
    ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   531
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   532
    ^Array with: dst with: src
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   533
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   534
    "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
   535
!
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   536
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   537
parsePathCopyList
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   538
    | list |
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   539
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   540
    stream atEnd ifTrue:[ ^#() ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   541
    stream peek isSeparator ifTrue:[ ^#() ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   542
    list := OrderedCollection new.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   543
    list add: self parsePathCopy.
169
3e156584235f Bugfix: HGCommandParser>>parsePathCopyList.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 165
diff changeset
   544
    [ stream atEnd not and:[stream peek ~= Character cr]] whileTrue:[
3e156584235f Bugfix: HGCommandParser>>parsePathCopyList.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 165
diff changeset
   545
        "/stream next. "/eat space.
135
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   546
        list add: self parsePathCopy.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   547
    ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   548
    ^list.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   549
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   550
    "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
   551
    "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
   552
!
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   553
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   554
parsePathList
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   555
    | list |
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   556
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   557
    stream atEnd ifTrue:[ ^#() ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   558
    stream peek isSeparator ifTrue:[ ^#() ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   559
    list := OrderedCollection new.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   560
    list add: self parsePath.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   561
    [ stream atEnd not and:[stream peek == Character space]] whileTrue:[
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   562
        stream next. "/eat space.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   563
        list add: self parsePath.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   564
    ].
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   565
    ^list.
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   566
c74b92e6a2f8 Added HGChangeset>>changes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 134
diff changeset
   567
    "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
   568
!
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   569
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   570
parsePushPull
151
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   571
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   572
    #(
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   573
        'adding changesets'
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   574
        'adding manifests'
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   575
        'adding file changes'
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   576
    ) do:[:info|
303
aee999e9dc25 Bugfixes in push parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 276
diff changeset
   577
        stream peek == $r ifTrue:[
aee999e9dc25 Bugfixes in push parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 276
diff changeset
   578
            self expect: 'remote: '.
aee999e9dc25 Bugfixes in push parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 276
diff changeset
   579
        ].
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   580
        self expect:info; expectLineEnd.
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   581
        self notify:info.
151
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   582
    ].
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   583
    ^self parsePushPullSummary
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   584
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   585
    "Created: / 04-02-2013 / 15:01:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
303
aee999e9dc25 Bugfixes in push parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 276
diff changeset
   586
    "Modified: / 02-07-2013 / 01:22:10 / 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
   587
!
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   588
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   589
parsePushPullSummary
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   590
    ^self parsePushPullSummary: HGPushPullInfo new
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   591
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   592
    "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
   593
!
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   594
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   595
parsePushPullSummary: info
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   596
    "Example:
151
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   597
222
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   598
        'added 1 changesets with 1 changes to 1 files (+1 heads)'
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   599
    "
222
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   600
    | c |
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   601
303
aee999e9dc25 Bugfixes in push parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 276
diff changeset
   602
    stream peek == $r ifTrue:[
aee999e9dc25 Bugfixes in push parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 276
diff changeset
   603
        self expect: 'remote: '.
aee999e9dc25 Bugfixes in push parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 276
diff changeset
   604
    ].
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   605
    self expect: 'added '.
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   606
    info setNumChangesets: self parseInteger.
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   607
    self expect: ' changesets with '.
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   608
    info setNumChanges: self parseInteger.
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   609
    self expect: ' changes to '.
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   610
    info setNumFiles: self parseInteger.
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   611
    self expect: ' files'.
222
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   612
    c := stream next.
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   613
    c == Character space ifTrue:[
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   614
        self expect:$(.
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   615
        c := stream next.
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   616
        ('+-' includes: c) ifFalse:[
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   617
            self error: ('got ''%1'', ''+'' or ''-'' expected' bindWith: c).
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   618
        ].
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   619
        info setNumHeads: (self parseInteger * ((c == $-) ifTrue:[-1] ifFalse:[1])).
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   620
        ^info
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   621
    ].
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   622
    c == Character cr ifTrue:[
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   623
        ^info
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   624
    ].
818606b6ccfd Bugfix: HGCommandParser>>parseCommandPull - added support head change information
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 220
diff changeset
   625
    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
   626
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   627
    "Created: / 04-02-2013 / 15:26:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
303
aee999e9dc25 Bugfixes in push parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 276
diff changeset
   628
    "Modified: / 02-07-2013 / 01:23:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   629
! !
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   630
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   631
!HGCommandParser methodsFor:'parsing - commands'!
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   632
105
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   633
parseCommandBranches
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   634
    "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
   635
     of orphaned HGBranch"
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   636
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   637
    ^self parseBranches
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   638
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   639
    "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
   640
    "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
   641
!
25e8ff9d2a31 Added read-only support for branches.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 103
diff changeset
   642
106
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   643
parseCommandHeads
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   644
    "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
   645
     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
   646
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   647
    | ids |
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   648
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   649
    ids := OrderedCollection new.
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   650
    [ stream atEnd ] whileFalse:[
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   651
        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
   652
    ].
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   653
    ^ids
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   654
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   655
    "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
   656
!
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   657
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   658
parseCommandLocate
71
bd4cfb10a262 Basic support to access changeset content.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 69
diff changeset
   659
    "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
   660
     to parse"
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   661
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   662
    | filenames |
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   663
    filenames := OrderedCollection new.
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   664
    [ stream atEnd ] whileFalse:[
77
b6070a017acd Fixes for ercurial < 2.3
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 71
diff changeset
   665
        | filename |
b6070a017acd Fixes for ercurial < 2.3
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 71
diff changeset
   666
165
4f6432cf4240 Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 151
diff changeset
   667
        filename := stream nextLine.
77
b6070a017acd Fixes for ercurial < 2.3
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 71
diff changeset
   668
        "/ 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
   669
        (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
   670
            filenames add:  filename
b6070a017acd Fixes for ercurial < 2.3
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 71
diff changeset
   671
        ]
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   672
    ].
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   673
    ^filenames.
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   674
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   675
    "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
   676
    "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
   677
!
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
   678
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   679
parseCommandLog
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   680
    "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
   681
     was HGCommandParser templateLog. Return a list of HGChangeset."
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   682
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   683
    ^self parseLog
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   684
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   685
    "Created: / 13-11-2012 / 09:09:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
106
99be3b5a40da Added support for heads (both repository and per-branch)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 105
diff changeset
   686
    "Modified (comment): / 27-11-2012 / 21:24:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   687
!
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
   688
137
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   689
parseCommandLogChildren
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   690
    "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
   691
     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
   692
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   693
    | revsAndChildren |
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   694
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   695
    revsAndChildren := OrderedCollection new.
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   696
    [ stream atEnd ] whileFalse:[
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   697
        | rev children |
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   698
        rev := self parseNodeId. self expectLineEnd.
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   699
        stream atEnd ifFalse:[
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   700
            children := self parseNodeIdList. self expectLineEnd.
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   701
        ] ifTrue: [
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   702
            children := #().
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   703
        ].
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   704
        revsAndChildren add: (Array with: rev with: children).
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   705
    ].
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   706
    ^revsAndChildren
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   707
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   708
    "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
   709
!
379bd934f8d0 Make HGChangeset>>children dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 136
diff changeset
   710
136
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   711
parseCommandLogFile
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   712
    "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
   713
     was HGCommandParser templateLogFile. Return a list of HGChangesetId."
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   714
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   715
    | ids |
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   716
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   717
    ids := OrderedCollection new.
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   718
    [ stream atEnd ] whileFalse:[
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   719
        ids add: self parseNodeId. self expectLineEnd.
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   720
    ].
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   721
    ^ids
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   722
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   723
    "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
   724
!
2d1512dde043 Added HGWorkingCopyFile>>revisions.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 135
diff changeset
   725
177
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   726
parseCommandMerge
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   727
    "Parse output of 'hg update' command. "
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   728
219
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   729
    | info c |
177
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   730
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   731
    info := HGMergeInfo new.
180
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   732
    [ stream peek isDigit ] whileFalse:[
276
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   733
        [ 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
   734
        c == $m ifTrue:[
180
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   735
            self parseMergePath: info.
7b70d26f28da More work on merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 177
diff changeset
   736
        ] ifFalse:[
276
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   737
            c == $r ifTrue:[
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   738
                self parseMergeRemoteChanged: info
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   739
            ] ifFalse:[
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   740
                c == $l ifTrue:[
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   741
                    self parseMergeLocalChanged: info
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   742
                ] ifFalse:[
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   743
                    self error:'Unexpected merge line'
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   744
                ]
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   745
            ]
8fcaf8f2e51b Bugfix: merge command output parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 230
diff changeset
   746
        ]
177
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   747
    ].
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   748
    self parseMergeSummary: info.
219
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   749
    c := stream next.
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   750
    c == $( ifTrue:[
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   751
        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
   752
        self expectLineEnd.
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   753
        ^info
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   754
    ].
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   755
    c == $u ifTrue:[
220
fe6e6870b720 Bugfix of bugfix of HGCommandParser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 219
diff changeset
   756
        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
   757
        self expectLineEnd.
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   758
        ^info
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   759
    ].
475366f8ba6f Bugfix: HGCommandParser>>parseCommandMerge: handle correctly clear merges.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 218
diff changeset
   760
    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
   761
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   762
    "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
   763
    "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
   764
!
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   765
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   766
parseCommandPull
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   767
    "Parse output of 'hg pull' command. "
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   768
    "
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   769
     Ex:
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   770
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   771
     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
   772
     searching for changes
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   773
     abort: push creates new remote head 0c8c5633f1ed!!
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   774
     (you should pull and merge or use push -f to force)
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   775
    "
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   776
    | c |
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   777
    
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   778
    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
   779
    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
   780
    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
   781
        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
   782
        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
   783
        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
   784
    ].
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   785
    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
   786
        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
   787
        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
   788
        ^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
   789
    ].
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   790
    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
   791
        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
   792
        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
   793
        ^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
   794
    ].
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   795
    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
   796
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   797
    "Created: / 04-02-2013 / 15:35:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
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
   798
    "Modified: / 14-02-2013 / 15:25: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
   799
!
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   800
151
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   801
parseCommandPush
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   802
    "Parse output of 'hg push' command. "
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   803
    "
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   804
     Ex:
151
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   805
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   806
     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
   807
     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
   808
    "
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   809
    | c |
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   810
    
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   811
    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
   812
    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
   813
    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
   814
    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
   815
        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
   816
        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
   817
        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
   818
    ].
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   819
    c == $n ifTrue:[
228
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   820
        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
   821
        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
   822
        ^HGPushPullInfo new
228
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   823
    ] ifFalse:[
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   824
        ^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
   825
    ].
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
   826
    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
   827
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   828
    "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
   829
    "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
   830
!
527a1e85aef8 Support for 'autopush' in commit dialog.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 145
diff changeset
   831
177
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   832
parseCommandResolveList
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   833
    "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
   834
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   835
    | statuses |
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   836
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   837
    statuses := Dictionary new.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   838
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   839
    [ stream atEnd ] whileFalse:[
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   840
        | status path |
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   841
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   842
        status := stream next.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   843
        (status == $U or:[status == $R]) ifFalse:[
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   844
            self error:'Unknown resolution status: ', status.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   845
        ].
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   846
        self expectSpace.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   847
        path := self parsePath.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   848
        statuses at: path put: status.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   849
        self expectLineEnd.
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   850
    ].
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   851
    ^statuses
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   852
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   853
    "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
   854
!
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   855
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
   856
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
   857
    "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
   858
     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
   859
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
   860
    ^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
   861
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
   862
    "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
   863
!
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
   864
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   865
parseCommandStatus
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   866
    | statusesAndPaths |
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   867
    statusesAndPaths := OrderedCollection new.
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   868
    [ stream atEnd ] whileFalse:[
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   869
        | status path |
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   870
88
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   871
        stream peek == Character space ifTrue:[
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   872
            statusesAndPaths last first"status" isAdded ifTrue:[
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   873
                stream next.
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   874
                self expectSpace.
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   875
                path := self nextLine.
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   876
                statusesAndPaths last at:1 put: (HGStatus copied source: path)
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   877
            ] ifFalse:[
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   878
                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
   879
            ]
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   880
        ] ifFalse:[
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   881
            status := HGStatus forCode: self next.
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   882
            self expectSpace.
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   883
            path := self nextLine.
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   884
            statusesAndPaths add: { status . path }
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 80
diff changeset
   885
        ].
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   886
    ].
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   887
    ^ statusesAndPaths
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   888
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   889
    "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
   890
    "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
   891
!
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   892
177
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   893
parseCommandUpdate
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   894
    "Parse output of 'hg update' command. "
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   895
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   896
    ^self parseMergeSummary
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   897
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   898
    "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
   899
!
1b0ddad9770e Initial support for merging.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 169
diff changeset
   900
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   901
parseCommandVersion
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   902
    "Parse output of 'hg --version'"
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   903
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   904
    "
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   905
    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
   906
    (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
   907
    
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   908
    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
   909
    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
   910
    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
   911
    "
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   912
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   913
    | major minor revision |
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   914
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   915
    self 
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   916
        expect:'Mercurial'; skipSeparators;
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   917
        expect:'Distributed'; skipSeparators;
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   918
        expect:'SCM'; skipSeparators;
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   919
        expect:$(; skipSeparators;
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   920
        expect:'version'.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   921
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   922
    major := self parseInteger.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   923
    self expect:$..
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   924
    minor := self parseInteger.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   925
    stream peek == $. ifTrue:[
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   926
        stream next.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   927
        revision := self parseInteger.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   928
    ].
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   929
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   930
    self skipSeparators.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   931
    self expect:$).
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   932
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   933
    ^(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
   934
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
   935
    "Created: / 19-11-2012 / 20:19:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   936
! !
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
   937
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   938
!HGCommandParser methodsFor:'parsing - errors'!
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   939
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   940
parseError
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   941
    ^self parseErrorClass: HGCommandError
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   942
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   943
    "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
   944
!
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   945
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   946
parseError: parseBlock
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   947
    [ stream atEnd ] whileFalse:[
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   948
        | word |
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   949
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   950
        word := stream upTo: $:.
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   951
        stream next. "/eat space
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   952
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   953
        word = 'abort' ifTrue:[
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   954
            ^parseBlock value: stream nextLine        
215
165ce6502156 Temporary commit: added notification propagation. Added Push/Pull info.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 214
diff changeset
   955
        ] ifFalse:[
303
aee999e9dc25 Bugfixes in push parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 276
diff changeset
   956
            "Special hack for mercurial_keyring extension, sigh..."
aee999e9dc25 Bugfixes in push parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 276
diff changeset
   957
            (word endsWith: 'mercurial_keyring.py') ifTrue:[
aee999e9dc25 Bugfixes in push parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 276
diff changeset
   958
                (stream nextLine endsWith: 'UserWarning: Basic Auth Realm was unquoted') ifTrue:[
aee999e9dc25 Bugfixes in push parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 276
diff changeset
   959
                    stream nextLine.
aee999e9dc25 Bugfixes in push parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 276
diff changeset
   960
                ] ifFalse:[
aee999e9dc25 Bugfixes in push parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 276
diff changeset
   961
                    self breakPoint: #jv.
aee999e9dc25 Bugfixes in push parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 276
diff changeset
   962
                ]
aee999e9dc25 Bugfixes in push parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 276
diff changeset
   963
            ] ifFalse:[
aee999e9dc25 Bugfixes in push parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 276
diff changeset
   964
                self breakPoint: #jv.
aee999e9dc25 Bugfixes in push parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 276
diff changeset
   965
            ].
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   966
        ]
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   967
    ].
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   968
    ^nil
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   969
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   970
    "Created: / 04-02-2013 / 12:21:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
303
aee999e9dc25 Bugfixes in push parsing.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 276
diff changeset
   971
    "Modified: / 02-07-2013 / 01:14:27 / 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
   972
!
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   973
228
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   974
parseErrorBranches
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   975
    [ stream atEnd ] whileFalse:[
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   976
        | c word |
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   977
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   978
        c := stream next.
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   979
        c == $i ifTrue:[
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   980
            self expect: 'nvalidating branch cache (tip differs)'.
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   981
        ] ifFalse:[
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   982
            c == $a ifTrue:[
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   983
                word := stream upTo: $:.
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   984
                stream next. "/eat space
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   985
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   986
                word = 'bort' ifTrue:[
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   987
                    self propagate: HGCommandError message: stream nextLine
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   988
                ] ifFalse:[
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   989
                    self breakPoint: #jv.
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   990
                ]
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   991
            ]
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   992
        ]
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   993
    ].
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   994
    ^nil
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   995
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   996
    "Created: / 06-02-2013 / 19:18:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   997
!
e00b7d71e234 Bugfix in parsing 'push' and 'branches' command output.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 222
diff changeset
   998
214
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
   999
parseErrorClass: errorClass
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1000
    "Generic error output parse. Returns an initialized
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1001
     error (instance of errorClass) if an error occures,
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1002
     nil if not.
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1003
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1004
     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
  1005
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1006
    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
  1007
        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
  1008
    ].
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1009
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1010
    "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
  1011
    "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
  1012
!
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1013
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1014
parseErrorCommit
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1015
    ^self parseErrorClass: HGCommitError
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1016
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1017
    "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
  1018
!
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1019
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1020
parseErrorPush
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1021
    ^self parseError: [:msg |
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1022
        | errCls |
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1023
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1024
        (msg startsWith: 'push creates new remote head') ifTrue:[
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1025
            errCls := HGPushWouldCreateNewHeadError
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1026
        ] ifFalse:[
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1027
            errCls := HGPushError
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1028
        ].
216
0a3821d4bdb6 Error & notification handling & propagating unified. Fixes in push/pull error handling.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 215
diff changeset
  1029
        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
  1030
    ].
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1031
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1032
    "Created: / 04-02-2013 / 12:49:45 / 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
  1033
    "Modified: / 04-02-2013 / 23:45:29 / 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
  1034
! !
175e450bb8dd Better error handling in HGCommand (part 1).
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 210
diff changeset
  1035
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1036
!HGCommandParser methodsFor:'parsing-utils'!
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1037
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1038
expect: aStringOrChar
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1039
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1040
    | c |
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1041
    aStringOrChar isCharacter ifTrue:[
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1042
        (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
  1043
            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
  1044
        ].
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1045
        ^self.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1046
    ].
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1047
    aStringOrChar isString ifTrue:[
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1048
        aStringOrChar do:[:expected|
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1049
            (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
  1050
                self error:('Expected ''%1''.' bindWith: aStringOrChar).
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1051
            ].
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1052
        ].
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1053
        ^self.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1054
    ].
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1055
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1056
    self error:'Invalid expected value'.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1057
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1058
    "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
  1059
!
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1060
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1061
expectLineEnd
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1062
    self expect: Character cr.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1063
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1064
    "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
  1065
!
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1066
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1067
expectSpace
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1068
    self expect: Character space.
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1069
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1070
    "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
  1071
!
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1072
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1073
next
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1074
    ^stream next.
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1075
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1076
    "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
  1077
!
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1078
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1079
nextLine
38
c3d02ed6a645 - HGWorkingCopyFile
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 36
diff changeset
  1080
    ^stream nextLine
36
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1081
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1082
    "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
  1083
    "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
  1084
!
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1085
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1086
skipSeparators
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1087
    stream skipSeparators
39
10e693b3e034 - Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 38
diff changeset
  1088
80
8f300696b26b Added configurable path to 'hg' command.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 77
diff changeset
  1089
    "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
  1090
! !
41cb88196e69 - HGTests
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 34
diff changeset
  1091
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
  1092
!HGCommandParser class methodsFor:'documentation'!
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
  1093
54
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 51
diff changeset
  1094
version_HG
115
b1ed2d29054b version_HG changed to return string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
  1095
b1ed2d29054b version_HG changed to return string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 106
diff changeset
  1096
    ^ '$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
  1097
!
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 51
diff changeset
  1098
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
  1099
version_SVN
69
17045d49309f Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 54
diff changeset
  1100
    ^ '§Id::                                                                                                                        §'
34
0ef61b36cfa7 - First bits
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
  1101
! !
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 180
diff changeset
  1102