author | Patrik Svestka <patrik.svestka@gmail.com> |
Mon, 10 Jan 2022 14:21:17 +0100 | |
changeset 938 | 2bb53758015c |
parent 919 | db2ebeb3fa00 |
permissions | -rw-r--r-- |
210 | 1 |
" |
335
7e19ab19148b
Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
282
diff
changeset
|
2 |
stx:libscm - a new source code management library for Smalltalk/X |
509
f92210d4585b
Updated copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
372
diff
changeset
|
3 |
Copyright (C) 2012-2015 Jan Vrany |
919
db2ebeb3fa00
Fix long standing bug in parsing node ids starting with long sequence of decimal numbers
Jan Vrany <jan.vrany@labware.com>
parents:
858
diff
changeset
|
4 |
Copyright (C) 2020 LabWare |
335
7e19ab19148b
Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
282
diff
changeset
|
5 |
|
7e19ab19148b
Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
282
diff
changeset
|
6 |
This library is free software; you can redistribute it and/or |
7e19ab19148b
Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
282
diff
changeset
|
7 |
modify it under the terms of the GNU Lesser General Public |
7e19ab19148b
Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
282
diff
changeset
|
8 |
License as published by the Free Software Foundation; either |
7e19ab19148b
Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
282
diff
changeset
|
9 |
version 2.1 of the License. |
210 | 10 |
|
335
7e19ab19148b
Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
282
diff
changeset
|
11 |
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:
282
diff
changeset
|
12 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
7e19ab19148b
Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
282
diff
changeset
|
13 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
7e19ab19148b
Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
282
diff
changeset
|
14 |
Lesser General Public License for more details. |
7e19ab19148b
Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
282
diff
changeset
|
15 |
|
7e19ab19148b
Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
282
diff
changeset
|
16 |
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:
282
diff
changeset
|
17 |
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:
282
diff
changeset
|
18 |
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
210 | 19 |
" |
36 | 20 |
"{ Package: 'stx:libscm/mercurial' }" |
21 |
||
567
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
22 |
"{ NameSpace: Smalltalk }" |
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
23 |
|
103
04731ef44417
HGNodeId renamed to HGChangesetId
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
73
diff
changeset
|
24 |
ByteArray variableByteSubclass:#HGChangesetId |
39
10e693b3e034
- Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
36
diff
changeset
|
25 |
instanceVariableNames:'revno' |
36 | 26 |
classVariableNames:'NullId' |
27 |
poolDictionaries:'' |
|
28 |
category:'SCM-Mercurial-Core' |
|
29 |
! |
|
30 |
||
103
04731ef44417
HGNodeId renamed to HGChangesetId
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
73
diff
changeset
|
31 |
!HGChangesetId class methodsFor:'documentation'! |
69
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
32 |
|
210 | 33 |
copyright |
34 |
" |
|
335
7e19ab19148b
Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
282
diff
changeset
|
35 |
stx:libscm - a new source code management library for Smalltalk/X |
509
f92210d4585b
Updated copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
372
diff
changeset
|
36 |
Copyright (C) 2012-2015 Jan Vrany |
919
db2ebeb3fa00
Fix long standing bug in parsing node ids starting with long sequence of decimal numbers
Jan Vrany <jan.vrany@labware.com>
parents:
858
diff
changeset
|
37 |
Copyright (C) 2020 LabWare |
335
7e19ab19148b
Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
282
diff
changeset
|
38 |
|
7e19ab19148b
Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
282
diff
changeset
|
39 |
This library is free software; you can redistribute it and/or |
7e19ab19148b
Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
282
diff
changeset
|
40 |
modify it under the terms of the GNU Lesser General Public |
7e19ab19148b
Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
282
diff
changeset
|
41 |
License as published by the Free Software Foundation; either |
7e19ab19148b
Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
282
diff
changeset
|
42 |
version 2.1 of the License. |
210 | 43 |
|
335
7e19ab19148b
Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
282
diff
changeset
|
44 |
This library is distributed in the hope that it will be useful, |
7e19ab19148b
Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
282
diff
changeset
|
45 |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
7e19ab19148b
Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
282
diff
changeset
|
46 |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
7e19ab19148b
Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
282
diff
changeset
|
47 |
Lesser General Public License for more details. |
7e19ab19148b
Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
282
diff
changeset
|
48 |
|
7e19ab19148b
Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
282
diff
changeset
|
49 |
You should have received a copy of the GNU Lesser General Public |
7e19ab19148b
Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
282
diff
changeset
|
50 |
License along with this library; if not, write to the Free Software |
7e19ab19148b
Changed license to LGPL2.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
282
diff
changeset
|
51 |
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
210 | 52 |
" |
53 |
! |
|
54 |
||
69
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
55 |
documentation |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
56 |
" |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
57 |
Represent a changeset id in Mercurial repository. |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
58 |
|
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
59 |
!!!!!! WARNING !!!!!! |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
60 |
|
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
61 |
Due to a stupid design here, DO NOT USE put it into hashed collections!! |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
62 |
I have to change it later... |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
63 |
|
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
64 |
[author:] |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
65 |
Jan Vrany <jan.vrany@fit.cvut.cz> |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
66 |
|
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
67 |
[instance variables:] |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
68 |
|
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
69 |
[class variables:] |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
70 |
|
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
71 |
[see also:] |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
72 |
|
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
73 |
" |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
74 |
! ! |
36 | 75 |
|
103
04731ef44417
HGNodeId renamed to HGChangesetId
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
73
diff
changeset
|
76 |
!HGChangesetId class methodsFor:'instance creation'! |
36 | 77 |
|
567
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
78 |
decodeFromLiteralArray:anArray |
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
79 |
anArray size == 2 ifTrue:[ |
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
80 |
"/ HGChangesetId 'hash-string' |
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
81 |
^ self readFrom:(anArray at:2). |
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
82 |
]. |
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
83 |
|
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
84 |
^ super decodeFromLiteralArray:anArray |
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
85 |
|
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
86 |
" |
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
87 |
#(HGChangesetId 'f6f68d32de73') decodeAsLiteralArray literalArrayEncoding |
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
88 |
" |
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
89 |
|
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
90 |
"Created: / 07-09-2015 / 17:43:33 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
91 |
! |
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
92 |
|
36 | 93 |
fromBytes: aByteArrayOrString |
94 |
||
40
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
95 |
| sz | |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
96 |
|
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
97 |
sz := aByteArrayOrString size. |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
98 |
(sz ~~ 20 and:[sz ~~ 6]) ifTrue:[ |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
99 |
self error:'Node ID has either 20 or 6 bytes (short form)'. |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
100 |
^nil. |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
101 |
]. |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
102 |
^(self new: sz) replaceBytesFrom: 1 to: sz with: aByteArrayOrString startingAt: 1 |
36 | 103 |
|
104 |
"Created: / 25-09-2012 / 21:00:06 / 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
|
105 |
"Modified: / 13-11-2012 / 16:47:40 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
36 | 106 |
! |
107 |
||
108 |
fromString: aString |
|
40
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
109 |
^self readFrom: aString readStream |
36 | 110 |
|
111 |
"Created: / 10-09-2012 / 10:49:43 / 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
|
112 |
"Modified: / 13-11-2012 / 16:49:39 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
36 | 113 |
! |
114 |
||
115 |
new |
|
116 |
^self new: 20 |
|
117 |
||
118 |
"Created: / 10-09-2012 / 10:42:39 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
119 |
"Modified: / 19-10-2012 / 15:51:45 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
120 |
! |
|
121 |
||
122 |
new: size |
|
69
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
123 |
(size ~~ 0 and:[size ~~ 20 and:[size ~~ 6]]) ifTrue:[ |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
124 |
self error: 'Size of HGNodeId must be either 20 bytes or 6 bytes (short form) or 0 (revno only)'. |
40
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
125 |
^nil. |
36 | 126 |
]. |
127 |
^super new: size |
|
128 |
||
129 |
"Created: / 10-09-2012 / 10:44:00 / 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
|
130 |
"Modified: / 16-11-2012 / 21:24:52 / 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
|
131 |
! |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
132 |
|
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
133 |
readFrom: aStringOrStream |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
134 |
^self readFrom: aStringOrStream onError:[:msg|self error:msg]. |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
135 |
|
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
136 |
"Created: / 13-11-2012 / 16:56:58 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
137 |
! |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
138 |
|
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
139 |
readFrom: aStringOrStream onError: aBlock |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
140 |
"Parses node id from stream and returns it. Support both, |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
141 |
short and full node ids" |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
142 |
|
688
c3cb04bed338
Fixed a bug in changeset id parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
567
diff
changeset
|
143 |
| stream c c1 c2 sign revno hash hashPos charPos short | |
189
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
144 |
|
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
145 |
hash := ByteArray new: 20. |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
146 |
hashPos := 1. |
688
c3cb04bed338
Fixed a bug in changeset id parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
567
diff
changeset
|
147 |
charPos := 0. |
189
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
148 |
short := true. |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
149 |
revno := 0. |
40
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
150 |
|
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
151 |
stream := aStringOrStream readStream. |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
152 |
stream peek == $- ifTrue:[ |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
153 |
stream next. |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
154 |
sign := -1. |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
155 |
] ifFalse:[ |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
156 |
sign := 1. |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
157 |
]. |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
158 |
|
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
159 |
"/ Read revno... |
189
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
160 |
|
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
161 |
[ stream atEnd not and:[(c := stream peek) isDigit] ] whileTrue:[ |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
162 |
"/ Update revno |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
163 |
revno := (revno * 10) + c digitValue. |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
164 |
"/ Update hash for case we're reading hash instead..." |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
165 |
c1 isNil ifTrue:[ |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
166 |
c1 := c. |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
167 |
] ifFalse:[ |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
168 |
c2 := c. |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
169 |
hash at:hashPos put: (c1 digitValue << 4) | c2 digitValue. |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
170 |
hashPos := hashPos + 1. |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
171 |
c1 := c2 := nil. |
40
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
172 |
]. |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
173 |
stream next. |
688
c3cb04bed338
Fixed a bug in changeset id parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
567
diff
changeset
|
174 |
charPos := charPos + 1. |
40
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
175 |
]. |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
176 |
revno := revno * sign. |
688
c3cb04bed338
Fixed a bug in changeset id parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
567
diff
changeset
|
177 |
stream atEnd ifTrue:[ |
c3cb04bed338
Fixed a bug in changeset id parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
567
diff
changeset
|
178 |
"/ We might have read revno or a short hash that by chance |
c3cb04bed338
Fixed a bug in changeset id parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
567
diff
changeset
|
179 |
"/ consist of only digits and not leading with 0. In this case |
c3cb04bed338
Fixed a bug in changeset id parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
567
diff
changeset
|
180 |
"/ we actually cannot distinguish. |
c3cb04bed338
Fixed a bug in changeset id parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
567
diff
changeset
|
181 |
"/ In case we have read less than 12 characters (size of a short id), |
c3cb04bed338
Fixed a bug in changeset id parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
567
diff
changeset
|
182 |
"/ treat it as revno. A conservative guess... |
c3cb04bed338
Fixed a bug in changeset id parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
567
diff
changeset
|
183 |
charPos < 12 ifTrue:[ |
c3cb04bed338
Fixed a bug in changeset id parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
567
diff
changeset
|
184 |
^(HGChangesetId new: 0) |
c3cb04bed338
Fixed a bug in changeset id parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
567
diff
changeset
|
185 |
revno: revno; |
c3cb04bed338
Fixed a bug in changeset id parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
567
diff
changeset
|
186 |
yourself |
c3cb04bed338
Fixed a bug in changeset id parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
567
diff
changeset
|
187 |
] |
c3cb04bed338
Fixed a bug in changeset id parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
567
diff
changeset
|
188 |
]. |
c3cb04bed338
Fixed a bug in changeset id parsing
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
567
diff
changeset
|
189 |
(stream atEnd not and:[stream peek isSeparator]) ifTrue:[ |
189
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
190 |
^(HGChangesetId new: 0) |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
191 |
revno: revno; |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
192 |
yourself |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
193 |
]. |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
194 |
stream peek == $: ifTrue:[ |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
195 |
"/OK. we have read revno" |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
196 |
hashPos := 1. |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
197 |
c1 := c2 := nil. |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
198 |
stream next. "/eat : |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
199 |
] ifFalse:[ |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
200 |
revno := nil. |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
201 |
]. |
40
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
202 |
"/ Read hash |
189
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
203 |
hashPos <= 6 ifTrue:[ |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
204 |
hashPos to: 6 do:[:i| |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
205 |
stream atEnd ifTrue:[ |
738 | 206 |
^ aBlock valueWithOptionalArgument:'Unexpected end of stream, hex digit expected'. |
189
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
207 |
]. |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
208 |
c1 isNil ifTrue:[ |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
209 |
c1 := stream peek. |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
210 |
c1 isHexDigit ifFalse:[ |
738 | 211 |
^ aBlock valueWithOptionalArgument:'Hex digit ([0-9a-z]) expected but ', c1 , ' found'. |
189
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
212 |
]. |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
213 |
stream next. |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
214 |
]. |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
215 |
stream atEnd ifTrue:[ |
738 | 216 |
^ aBlock valueWithOptionalArgument:'Unexpected end of stream, hex digit expected'. |
189
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
217 |
]. |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
218 |
c2 := stream peek. |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
219 |
c2 isHexDigit ifFalse:[ |
858
dcfd093c3257
Fix bad error messages in `HGChangesetId` parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
807
diff
changeset
|
220 |
^ aBlock valueWithOptionalArgument:'Hex digit ([0-9a-z]) expected but ', c2 , ' found'. |
189
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
221 |
]. |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
222 |
hash at:i put: (c1 digitValue << 4) | c2 digitValue. |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
223 |
hashPos := i + 1. |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
224 |
c1 := c2 := nil. |
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
225 |
stream next. |
40
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
226 |
]. |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
227 |
]. |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
228 |
(stream atEnd not and:[stream peek isHexDigit]) ifTrue:[ |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
229 |
"/OK, full 40-char node id |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
230 |
short := false. |
919
db2ebeb3fa00
Fix long standing bug in parsing node ids starting with long sequence of decimal numbers
Jan Vrany <jan.vrany@labware.com>
parents:
858
diff
changeset
|
231 |
|
db2ebeb3fa00
Fix long standing bug in parsing node ids starting with long sequence of decimal numbers
Jan Vrany <jan.vrany@labware.com>
parents:
858
diff
changeset
|
232 |
"/ Process any residue from revno reading in an unlikely case the the |
db2ebeb3fa00
Fix long standing bug in parsing node ids starting with long sequence of decimal numbers
Jan Vrany <jan.vrany@labware.com>
parents:
858
diff
changeset
|
233 |
"/ full 40-char node id starts with many digits (for example: |
db2ebeb3fa00
Fix long standing bug in parsing node ids starting with long sequence of decimal numbers
Jan Vrany <jan.vrany@labware.com>
parents:
858
diff
changeset
|
234 |
"/ 524785227024787bd5479b17168071c4e14e3a89) |
db2ebeb3fa00
Fix long standing bug in parsing node ids starting with long sequence of decimal numbers
Jan Vrany <jan.vrany@labware.com>
parents:
858
diff
changeset
|
235 |
(c1 notNil and: [ c2 isNil ]) ifTrue: [ |
db2ebeb3fa00
Fix long standing bug in parsing node ids starting with long sequence of decimal numbers
Jan Vrany <jan.vrany@labware.com>
parents:
858
diff
changeset
|
236 |
c2 := stream peek. |
db2ebeb3fa00
Fix long standing bug in parsing node ids starting with long sequence of decimal numbers
Jan Vrany <jan.vrany@labware.com>
parents:
858
diff
changeset
|
237 |
c2 isHexDigit ifTrue:[ |
db2ebeb3fa00
Fix long standing bug in parsing node ids starting with long sequence of decimal numbers
Jan Vrany <jan.vrany@labware.com>
parents:
858
diff
changeset
|
238 |
stream next. "/ eat c2. |
db2ebeb3fa00
Fix long standing bug in parsing node ids starting with long sequence of decimal numbers
Jan Vrany <jan.vrany@labware.com>
parents:
858
diff
changeset
|
239 |
hash at:hashPos put: (c1 digitValue << 4) | c2 digitValue. |
db2ebeb3fa00
Fix long standing bug in parsing node ids starting with long sequence of decimal numbers
Jan Vrany <jan.vrany@labware.com>
parents:
858
diff
changeset
|
240 |
hashPos := hashPos + 1. |
db2ebeb3fa00
Fix long standing bug in parsing node ids starting with long sequence of decimal numbers
Jan Vrany <jan.vrany@labware.com>
parents:
858
diff
changeset
|
241 |
charPos := charPos + 1. |
db2ebeb3fa00
Fix long standing bug in parsing node ids starting with long sequence of decimal numbers
Jan Vrany <jan.vrany@labware.com>
parents:
858
diff
changeset
|
242 |
c1 := stream peek. |
db2ebeb3fa00
Fix long standing bug in parsing node ids starting with long sequence of decimal numbers
Jan Vrany <jan.vrany@labware.com>
parents:
858
diff
changeset
|
243 |
c2 := nil. |
db2ebeb3fa00
Fix long standing bug in parsing node ids starting with long sequence of decimal numbers
Jan Vrany <jan.vrany@labware.com>
parents:
858
diff
changeset
|
244 |
|
db2ebeb3fa00
Fix long standing bug in parsing node ids starting with long sequence of decimal numbers
Jan Vrany <jan.vrany@labware.com>
parents:
858
diff
changeset
|
245 |
]. |
db2ebeb3fa00
Fix long standing bug in parsing node ids starting with long sequence of decimal numbers
Jan Vrany <jan.vrany@labware.com>
parents:
858
diff
changeset
|
246 |
]. |
189
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
247 |
hashPos to: 20 do:[:i| |
40
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
248 |
stream atEnd ifTrue:[ |
738 | 249 |
^ aBlock valueWithOptionalArgument:'Unexpected end of stream, hex digit expected'. |
40
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
250 |
]. |
919
db2ebeb3fa00
Fix long standing bug in parsing node ids starting with long sequence of decimal numbers
Jan Vrany <jan.vrany@labware.com>
parents:
858
diff
changeset
|
251 |
c1 := stream peek. |
189
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
252 |
c1 isHexDigit ifFalse:[ |
738 | 253 |
^ aBlock valueWithOptionalArgument:'Hex digit ([0-9a-z]) expected but ', c1 , ' found'. |
40
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
254 |
]. |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
255 |
stream next. |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
256 |
stream atEnd ifTrue:[ |
738 | 257 |
^ aBlock valueWithOptionalArgument:'Unexpected end of stream, hex digit expected'. |
40
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
258 |
]. |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
259 |
c2 := stream peek. |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
260 |
c2 isHexDigit ifFalse:[ |
858
dcfd093c3257
Fix bad error messages in `HGChangesetId` parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
807
diff
changeset
|
261 |
^ aBlock valueWithOptionalArgument:'Hex digit ([0-9a-z]) expected but ', c2 , ' found'. |
40
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
262 |
]. |
189
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
263 |
hash at:i put: (c1 digitValue << 4) + c2 digitValue. |
40
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
264 |
stream next. |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
265 |
]. |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
266 |
]. |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
267 |
(revno == -1) ifTrue:[ |
47
250e5d83e34c
stc compilation fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
40
diff
changeset
|
268 |
(hash = #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] |
250e5d83e34c
stc compilation fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
40
diff
changeset
|
269 |
or:[hash = #[0 0 0 0 0 0]]) ifTrue:[ |
40
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
270 |
^self null |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
271 |
]. |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
272 |
]. |
47
250e5d83e34c
stc compilation fixes
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
40
diff
changeset
|
273 |
short ifTrue:[ |
103
04731ef44417
HGNodeId renamed to HGChangesetId
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
73
diff
changeset
|
274 |
^(HGChangesetId new: 6) |
40
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
275 |
revno: revno; |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
276 |
replaceBytesFrom: 1 to: 6 with: hash startingAt: 1; |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
277 |
yourself |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
278 |
] ifFalse:[ |
103
04731ef44417
HGNodeId renamed to HGChangesetId
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
73
diff
changeset
|
279 |
^(HGChangesetId fromBytes: hash) revno: revno. |
40
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
280 |
] |
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 |
" |
807
ef00a1303f73
Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
796
diff
changeset
|
283 |
HGChangesetId fromString:'4:6f88e1f44d9eb86e0b56ca15e30e5d786acd83c7' |
ef00a1303f73
Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
796
diff
changeset
|
284 |
HGChangesetId readFrom: '96DB65258808720D8D5EA6CB7A6A4D4F4E467325''!!' readStream |
40
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
285 |
|
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
286 |
Bad ones: |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
287 |
|
807
ef00a1303f73
Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
796
diff
changeset
|
288 |
HGChangesetId fromString:'4:6f88e1f44d9eb86e0b56ca15e30e5d786acd' |
ef00a1303f73
Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
796
diff
changeset
|
289 |
HGChangesetId fromString:'4:6f88Z1f44d9eb86e0b56ca15e30e5d786acd83c7' |
ef00a1303f73
Improved parsing of common errors (such as unknown revision)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
796
diff
changeset
|
290 |
|
40
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
291 |
" |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
292 |
|
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
293 |
"Created: / 13-11-2012 / 16:49:19 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
858
dcfd093c3257
Fix bad error messages in `HGChangesetId` parser
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
807
diff
changeset
|
294 |
"Modified: / 23-08-2018 / 10:30:25 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
919
db2ebeb3fa00
Fix long standing bug in parsing node ids starting with long sequence of decimal numbers
Jan Vrany <jan.vrany@labware.com>
parents:
858
diff
changeset
|
295 |
"Modified: / 17-12-2020 / 11:57:42 / Jan Vrany <jan.vrany@labware.com>" |
36 | 296 |
! ! |
297 |
||
103
04731ef44417
HGNodeId renamed to HGChangesetId
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
73
diff
changeset
|
298 |
!HGChangesetId class methodsFor:'accessing'! |
36 | 299 |
|
300 |
null |
|
301 |
NullId isNil ifTrue:[ |
|
39
10e693b3e034
- Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
36
diff
changeset
|
302 |
NullId := self new. |
10e693b3e034
- Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
36
diff
changeset
|
303 |
NullId revno: -1 |
36 | 304 |
]. |
305 |
^NullId |
|
306 |
||
39
10e693b3e034
- Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
36
diff
changeset
|
307 |
" |
116
b690f5845323
Class revision ID refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
308 |
HGChangesetId null |
39
10e693b3e034
- Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
36
diff
changeset
|
309 |
" |
10e693b3e034
- Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
36
diff
changeset
|
310 |
|
36 | 311 |
"Created: / 19-10-2012 / 15:51:25 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
116
b690f5845323
Class revision ID refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
312 |
"Modified (comment): / 30-11-2012 / 22:00:52 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
39
10e693b3e034
- Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
36
diff
changeset
|
313 |
! ! |
10e693b3e034
- Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
36
diff
changeset
|
314 |
|
103
04731ef44417
HGNodeId renamed to HGChangesetId
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
73
diff
changeset
|
315 |
!HGChangesetId methodsFor:'accessing'! |
39
10e693b3e034
- Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
36
diff
changeset
|
316 |
|
10e693b3e034
- Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
36
diff
changeset
|
317 |
revno |
116
b690f5845323
Class revision ID refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
318 |
^ revno |
39
10e693b3e034
- Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
36
diff
changeset
|
319 |
|
10e693b3e034
- Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
36
diff
changeset
|
320 |
"Created: / 13-11-2012 / 09:52:02 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
116
b690f5845323
Class revision ID refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
321 |
"Modified: / 30-11-2012 / 22:05:47 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
39
10e693b3e034
- Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
36
diff
changeset
|
322 |
! |
10e693b3e034
- Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
36
diff
changeset
|
323 |
|
10e693b3e034
- Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
36
diff
changeset
|
324 |
revno:anInteger |
10e693b3e034
- Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
36
diff
changeset
|
325 |
revno := anInteger. |
36 | 326 |
! ! |
327 |
||
103
04731ef44417
HGNodeId renamed to HGChangesetId
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
73
diff
changeset
|
328 |
!HGChangesetId methodsFor:'comparing'! |
40
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
329 |
|
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
330 |
= anotherId |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
331 |
|
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
332 |
self class == anotherId class ifFalse:[ ^ false]. |
69
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
333 |
(self size == 0 or:[anotherId size == 0]) ifTrue:[ |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
334 |
^(self revno == anotherId revno and:[ self revno ~~ -2 ]) |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
335 |
]. |
40
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
336 |
self size == anotherId size ifTrue:[ |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
337 |
^super = anotherId |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
338 |
]. |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
339 |
"One of them must be short, another long" |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
340 |
1 to: 6 do:[:i| |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
341 |
(self at:i) ~~ (anotherId at:i) ifTrue:[ ^ false ]. |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
342 |
]. |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
343 |
^true |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
344 |
|
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
345 |
"Created: / 13-11-2012 / 17:37:48 / 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
|
346 |
"Modified: / 16-11-2012 / 21:39:17 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
347 |
! |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
348 |
|
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
349 |
hash |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
350 |
^self size > 0 |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
351 |
ifTrue:[self computeXorHashFrom:1 to:6] |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
352 |
ifFalse:[revno hash]. |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
353 |
|
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
354 |
"Created: / 16-11-2012 / 21:45:16 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
355 |
! ! |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
356 |
|
103
04731ef44417
HGNodeId renamed to HGChangesetId
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
73
diff
changeset
|
357 |
!HGChangesetId methodsFor:'converting'! |
69
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
358 |
|
103
04731ef44417
HGNodeId renamed to HGChangesetId
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
73
diff
changeset
|
359 |
asHGChangesetId |
04731ef44417
HGNodeId renamed to HGChangesetId
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
73
diff
changeset
|
360 |
^ self |
69
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
361 |
|
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
362 |
"Created: / 16-11-2012 / 21:22:20 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
73
eb731ce2685e
Fixed HGStXTests>>test_commit_01
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
69
diff
changeset
|
363 |
! |
eb731ce2685e
Fixed HGStXTests>>test_commit_01
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
69
diff
changeset
|
364 |
|
372
5acd6d915c77
Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
335
diff
changeset
|
365 |
asHGRevset |
5acd6d915c77
Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
335
diff
changeset
|
366 |
^ self asString asHGRevset |
5acd6d915c77
Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
335
diff
changeset
|
367 |
|
5acd6d915c77
Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
335
diff
changeset
|
368 |
"Created: / 07-02-2014 / 13:03:44 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
5acd6d915c77
Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
335
diff
changeset
|
369 |
! |
5acd6d915c77
Added HGRevset to fetch revision log using hg revsets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
335
diff
changeset
|
370 |
|
73
eb731ce2685e
Fixed HGStXTests>>test_commit_01
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
69
diff
changeset
|
371 |
asString |
796
ae6b5b28acd5
Fixed `HGChangesetId >> asString` to print only commit id
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
738
diff
changeset
|
372 |
self hasRevnoOnly ifTrue:[ |
ae6b5b28acd5
Fixed `HGChangesetId >> asString` to print only commit id
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
738
diff
changeset
|
373 |
^ revno printString |
ae6b5b28acd5
Fixed `HGChangesetId >> asString` to print only commit id
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
738
diff
changeset
|
374 |
] ifFalse:[ |
ae6b5b28acd5
Fixed `HGChangesetId >> asString` to print only commit id
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
738
diff
changeset
|
375 |
^ self hexPrintString asLowercase |
ae6b5b28acd5
Fixed `HGChangesetId >> asString` to print only commit id
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
738
diff
changeset
|
376 |
]. |
73
eb731ce2685e
Fixed HGStXTests>>test_commit_01
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
69
diff
changeset
|
377 |
|
eb731ce2685e
Fixed HGStXTests>>test_commit_01
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
69
diff
changeset
|
378 |
"Created: / 17-11-2012 / 01:08:05 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
796
ae6b5b28acd5
Fixed `HGChangesetId >> asString` to print only commit id
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
738
diff
changeset
|
379 |
"Modified: / 30-10-2017 / 20:48:17 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
567
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
380 |
! |
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
381 |
|
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
382 |
literalArrayEncoding |
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
383 |
^ Array |
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
384 |
with:(self class name) |
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
385 |
with:(self printStringWithoutNumber). |
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
386 |
" |
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
387 |
#(HGChangesetId 'f6f68d32de73') decodeAsLiteralArray literalArrayEncoding |
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
388 |
" |
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
389 |
|
3f2109adb65c
Added support for monticello splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
509
diff
changeset
|
390 |
"Created: / 07-09-2015 / 17:43:55 / 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
|
391 |
! ! |
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
392 |
|
103
04731ef44417
HGNodeId renamed to HGChangesetId
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
73
diff
changeset
|
393 |
!HGChangesetId methodsFor:'printing & storing'! |
36 | 394 |
|
395 |
displayOn:aStream |
|
116
b690f5845323
Class revision ID refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
396 |
|
39
10e693b3e034
- Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
36
diff
changeset
|
397 |
^self printOn: aStream |
36 | 398 |
|
39
10e693b3e034
- Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
36
diff
changeset
|
399 |
"Created: / 13-11-2012 / 09:55:00 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
116
b690f5845323
Class revision ID refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
400 |
"Modified: / 30-11-2012 / 22:01:12 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
36 | 401 |
! |
402 |
||
403 |
printOn:aStream |
|
404 |
"append a printed representation if the receiver to the argument, aStream" |
|
405 |
||
39
10e693b3e034
- Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
36
diff
changeset
|
406 |
| rn | |
10e693b3e034
- Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
36
diff
changeset
|
407 |
|
10e693b3e034
- Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
36
diff
changeset
|
408 |
rn := self revno. |
116
b690f5845323
Class revision ID refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
409 |
rn notNil ifTrue:[ |
39
10e693b3e034
- Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
36
diff
changeset
|
410 |
rn printOn: aStream. |
116
b690f5845323
Class revision ID refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
411 |
self isEmpty ifTrue:[ ^ self ]. |
40
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
412 |
aStream nextPut: $:. |
39
10e693b3e034
- Support for commit
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
36
diff
changeset
|
413 |
]. |
40
e3699c0b00f9
Baisc support for changesets (revision log)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
39
diff
changeset
|
414 |
|
116
b690f5845323
Class revision ID refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
115
diff
changeset
|
415 |
aStream nextPutAll: (self copyTo: 6) hexPrintString asLowercase |
69
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
416 |
|
118
5a8b78ad48ae
Refactoring (part 2): Rename SCMAbstractPackageModel>>workingCopy to temporaryWorkingCopy
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
116
diff
changeset
|
417 |
"Modified: / 01-12-2012 / 00:55:49 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
280
d05631868f35
Fix for HGSourceCodeManager>>streamForExtensionFile...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
418 |
! |
d05631868f35
Fix for HGSourceCodeManager>>streamForExtensionFile...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
419 |
|
d05631868f35
Fix for HGSourceCodeManager>>streamForExtensionFile...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
420 |
printStringWithoutNumber |
d05631868f35
Fix for HGSourceCodeManager>>streamForExtensionFile...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
421 |
^(self copyTo: 6) hexPrintString asLowercase |
d05631868f35
Fix for HGSourceCodeManager>>streamForExtensionFile...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
422 |
|
d05631868f35
Fix for HGSourceCodeManager>>streamForExtensionFile...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
210
diff
changeset
|
423 |
"Created: / 27-03-2013 / 11:52:25 / 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
|
424 |
! ! |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
425 |
|
103
04731ef44417
HGNodeId renamed to HGChangesetId
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
73
diff
changeset
|
426 |
!HGChangesetId methodsFor:'queries'! |
36 | 427 |
|
69
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
428 |
hasHashOnly |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
429 |
^revno isNil |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
430 |
|
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
431 |
"Created: / 16-11-2012 / 21:54:38 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
432 |
! |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
433 |
|
194
3874039d3135
More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
189
diff
changeset
|
434 |
hasRevno |
3874039d3135
More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
189
diff
changeset
|
435 |
^revno notNil |
3874039d3135
More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
189
diff
changeset
|
436 |
|
3874039d3135
More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
189
diff
changeset
|
437 |
"Created: / 22-01-2013 / 22:30:05 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
3874039d3135
More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
189
diff
changeset
|
438 |
! |
3874039d3135
More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
189
diff
changeset
|
439 |
|
69
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
440 |
hasRevnoOnly |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
441 |
^self size == 0 |
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
442 |
|
17045d49309f
Refactoring: preparation for accessing changeset contents.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
54
diff
changeset
|
443 |
"Created: / 16-11-2012 / 21:54:18 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
282
fb71143ed353
Fixes for commiting from filebrowser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
280
diff
changeset
|
444 |
! |
fb71143ed353
Fixes for commiting from filebrowser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
280
diff
changeset
|
445 |
|
fb71143ed353
Fixes for commiting from filebrowser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
280
diff
changeset
|
446 |
isNull |
fb71143ed353
Fixes for commiting from filebrowser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
280
diff
changeset
|
447 |
^(revno isNil or:[revno == -1]) |
fb71143ed353
Fixes for commiting from filebrowser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
280
diff
changeset
|
448 |
and:[self allSatisfy:[:e|e == 0]] |
fb71143ed353
Fixes for commiting from filebrowser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
280
diff
changeset
|
449 |
|
fb71143ed353
Fixes for commiting from filebrowser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
280
diff
changeset
|
450 |
"Created: / 01-04-2013 / 13:03:14 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
36 | 451 |
! ! |
452 |
||
165
4f6432cf4240
Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
453 |
!HGChangesetId methodsFor:'testing'! |
4f6432cf4240
Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
454 |
|
194
3874039d3135
More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
189
diff
changeset
|
455 |
isFull |
3874039d3135
More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
189
diff
changeset
|
456 |
"Return true, if given changeset id is shortened" |
3874039d3135
More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
189
diff
changeset
|
457 |
|
3874039d3135
More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
189
diff
changeset
|
458 |
^self size = 20 |
3874039d3135
More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
189
diff
changeset
|
459 |
|
3874039d3135
More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
189
diff
changeset
|
460 |
"Created: / 22-01-2013 / 22:28:59 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
3874039d3135
More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
189
diff
changeset
|
461 |
! |
3874039d3135
More bugfixes regarding lazy changeset loading.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
189
diff
changeset
|
462 |
|
165
4f6432cf4240
Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
463 |
isShort |
4f6432cf4240
Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
464 |
"Return true, if given changeset id is shortened" |
4f6432cf4240
Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
465 |
|
4f6432cf4240
Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
466 |
^self size < 20 |
4f6432cf4240
Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
467 |
|
4f6432cf4240
Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
468 |
"Created: / 16-12-2012 / 00:54:19 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
4f6432cf4240
Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
469 |
! ! |
4f6432cf4240
Added support for lazy changesets.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
118
diff
changeset
|
470 |
|
103
04731ef44417
HGNodeId renamed to HGChangesetId
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
73
diff
changeset
|
471 |
!HGChangesetId class methodsFor:'documentation'! |
36 | 472 |
|
54
66045198bfbc
More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
47
diff
changeset
|
473 |
version_HG |
115
b1ed2d29054b
version_HG changed to return string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
103
diff
changeset
|
474 |
|
b1ed2d29054b
version_HG changed to return string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
103
diff
changeset
|
475 |
^ '$Changeset: <not expanded> $' |
54
66045198bfbc
More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
47
diff
changeset
|
476 |
! |
66045198bfbc
More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
47
diff
changeset
|
477 |
|
36 | 478 |
version_SVN |
738 | 479 |
^ 'Id:: ' |
36 | 480 |
! ! |
189
3d6c123a7295
HGChangesetId>>readFrom: now supports revno-only and hash-only form of CS IDs.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
165
diff
changeset
|
481 |