author | Claus Gittinger <cg@exept.de> |
Fri, 18 Nov 2016 16:14:26 +0100 | |
changeset 1180 | 92753f6cc822 |
parent 1170 | a4d00e6bb9b7 |
permissions | -rw-r--r-- |
777 | 1 |
" |
2 |
Copyright (c) 2007-2010 Jan Vrany |
|
3 |
Copyright (c) 2009-2010 eXept Software AG |
|
4 |
||
5 |
Permission is hereby granted, free of charge, to any person |
|
6 |
obtaining a copy of this software and associated documentation |
|
7 |
files (the 'Software'), to deal in the Software without |
|
8 |
restriction, including without limitation the rights to use, |
|
9 |
copy, modify, merge, publish, distribute, sublicense, and/or sell |
|
10 |
copies of the Software, and to permit persons to whom the |
|
11 |
Software is furnished to do so, subject to the following |
|
12 |
conditions: |
|
13 |
||
14 |
The above copyright notice and this permission notice shall be |
|
15 |
included in all copies or substantial portions of the Software. |
|
16 |
||
17 |
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, |
|
18 |
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
|
19 |
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
|
20 |
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
|
21 |
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
|
22 |
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
|
23 |
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
|
24 |
OTHER DEALINGS IN THE SOFTWARE. |
|
25 |
" |
|
481 | 26 |
"{ Package: 'stx:libsvn' }" |
33 | 27 |
|
28 |
"{ NameSpace: SVN }" |
|
29 |
||
30 |
Object subclass:#Repository |
|
777 | 31 |
instanceVariableNames:'manager package url branches workingCopy preferredBranch' |
33 | 32 |
classVariableNames:'' |
33 |
poolDictionaries:'' |
|
34 |
category:'SVN-Core' |
|
35 |
! |
|
36 |
||
777 | 37 |
!Repository class methodsFor:'documentation'! |
38 |
||
39 |
copyright |
|
40 |
" |
|
41 |
Copyright (c) 2007-2010 Jan Vrany |
|
42 |
Copyright (c) 2009-2010 eXept Software AG |
|
43 |
||
44 |
Permission is hereby granted, free of charge, to any person |
|
45 |
obtaining a copy of this software and associated documentation |
|
46 |
files (the 'Software'), to deal in the Software without |
|
47 |
restriction, including without limitation the rights to use, |
|
48 |
copy, modify, merge, publish, distribute, sublicense, and/or sell |
|
49 |
copies of the Software, and to permit persons to whom the |
|
50 |
Software is furnished to do so, subject to the following |
|
51 |
conditions: |
|
52 |
||
53 |
The above copyright notice and this permission notice shall be |
|
54 |
included in all copies or substantial portions of the Software. |
|
55 |
||
56 |
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, |
|
57 |
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES |
|
58 |
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
|
59 |
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT |
|
60 |
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, |
|
61 |
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING |
|
62 |
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR |
|
63 |
OTHER DEALINGS IN THE SOFTWARE. |
|
64 |
||
65 |
" |
|
66 |
! ! |
|
33 | 67 |
|
68 |
!Repository class methodsFor:'instance creation'! |
|
69 |
||
777 | 70 |
new |
71 |
^ self basicNew initialize. |
|
72 |
! |
|
73 |
||
33 | 74 |
package: package url: url |
75 |
||
76 |
^self new |
|
77 |
package: package; |
|
78 |
url: url; |
|
79 |
yourself |
|
80 |
||
81 |
"Created: / 19-08-2009 / 12:24:29 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
82 |
! ! |
|
83 |
||
84 |
!Repository class methodsFor:'accessing - containers'! |
|
85 |
||
777 | 86 |
classFromContainerName: aString |
87 |
||
88 |
| className | |
|
89 |
className := (aString includes: $.) |
|
90 |
ifTrue:[aString copyTo: (aString lastIndexOf:$.) - 1] |
|
91 |
ifFalse:[aString]. |
|
92 |
className replaceAll:$_ with:$:. |
|
93 |
^Smalltalk classNamed: className |
|
94 |
||
95 |
" |
|
96 |
SVN::Repository classFromContainerName: 'Smalltalk.st' |
|
97 |
SVN::Repository classFromContainerName: 'SVN__Repository.st' |
|
98 |
SVN::Repository classFromContainerName: 'SVN__Repository.rb' |
|
99 |
SVN::Repository classFromContainerName: 'Nothing.st' |
|
100 |
||
101 |
" |
|
102 |
||
103 |
"Created: / 19-11-2009 / 15:20:04 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
104 |
! |
|
105 |
||
33 | 106 |
containerNameForClass: cls |
107 |
||
108 |
^(self containerNameWithoutSuffixForClass: cls) , '.' , cls sourceFileSuffix |
|
109 |
||
110 |
"Created: / 19-04-2008 / 17:24:38 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
111 |
"Modified: / 13-08-2009 / 15:26:22 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
112 |
! |
|
113 |
||
114 |
containerNameForExtensions |
|
115 |
||
116 |
^'extensions.st' |
|
117 |
||
118 |
"Created: / 19-04-2008 / 17:25:24 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
119 |
! |
|
120 |
||
777 | 121 |
containerNameForExtensions: language |
122 |
||
123 |
^'extensions.' , language sourceFileSuffix |
|
124 |
||
125 |
"Created: / 30-12-2009 / 22:00:08 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
126 |
! |
|
127 |
||
33 | 128 |
containerNameWithoutSuffixForClass: cls |
129 |
||
130 |
^self containerNameWithoutSuffixForClassNamed: |
|
131 |
cls theNonMetaclass fullName |
|
132 |
||
133 |
"Created: / 13-08-2009 / 15:25:36 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
134 |
! |
|
135 |
||
136 |
containerNameWithoutSuffixForClassNamed: clsName |
|
137 |
||
138 |
| containerName | |
|
139 |
containerName := clsName copyReplaceAll:$: with:$_. |
|
140 |
"/Transcript showCR:'Container for ',clsName, ' is ' , containerName. |
|
141 |
^containerName. |
|
142 |
||
143 |
"Created: / 13-08-2009 / 15:24:51 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
144 |
! ! |
|
145 |
||
777 | 146 |
!Repository class methodsFor:'others'! |
147 |
||
148 |
version_CVS |
|
828
3c752e3ab464
checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
777
diff
changeset
|
149 |
^ '$Header$' |
777 | 150 |
! ! |
151 |
||
152 |
!Repository class methodsFor:'private'! |
|
153 |
||
154 |
urlForBranches: url |
|
155 |
||
156 |
| idx | |
|
157 |
idx := url indexOfSubCollection: '%(BRANCH)'. |
|
158 |
idx == 0 ifTrue:[self error:'No %(BRANCH) in url: ', url]. |
|
159 |
(url at: idx - 1) == $/ ifTrue:[idx := idx - 1]. |
|
160 |
^url copyTo: idx - 1 |
|
161 |
||
162 |
"Created: / 23-03-2011 / 18:46:35 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
163 |
! ! |
|
164 |
||
33 | 165 |
!Repository methodsFor:'accessing'! |
166 |
||
167 |
branch |
|
168 |
||
169 |
^self workingCopy branch |
|
170 |
||
171 |
"Created: / 19-04-2008 / 18:25:39 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
172 |
! |
|
173 |
||
777 | 174 |
branchOrNil |
175 |
||
176 |
| branches branch | |
|
177 |
branches := self branches. |
|
178 |
branch := branches |
|
179 |
detect:[:branch|branch path = preferredBranch] |
|
180 |
ifNone:[nil]. |
|
181 |
branch ifNil: |
|
182 |
[branches size == 1 ifTrue:[branch := branches anyOne]]. |
|
183 |
^branch |
|
184 |
||
185 |
"Created: / 16-03-2010 / 10:47:28 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
186 |
! |
|
187 |
||
33 | 188 |
branches |
189 |
||
190 |
^self branchesAndTags reject:[:branch|branch isTag] |
|
191 |
||
192 |
"Modified: / 14-04-2008 / 11:02:07 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
193 |
! |
|
194 |
||
195 |
branchesAndTags |
|
196 |
||
777 | 197 |
^branches value |
33 | 198 |
! |
199 |
||
200 |
manager |
|
201 |
^ manager |
|
202 |
||
203 |
"Created: / 03-10-2008 / 15:41:49 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
204 |
! |
|
205 |
||
206 |
manager:aRepositoryManager |
|
207 |
manager := aRepositoryManager. |
|
208 |
||
209 |
"Created: / 03-10-2008 / 15:41:49 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
210 |
! |
|
211 |
||
212 |
package |
|
213 |
^ package |
|
214 |
||
215 |
"Created: / 15-03-2008 / 20:22:51 / janfrog" |
|
216 |
! |
|
217 |
||
218 |
package:something |
|
219 |
package := something. |
|
220 |
||
221 |
"Created: / 15-03-2008 / 20:22:51 / janfrog" |
|
222 |
! |
|
223 |
||
224 |
packageClasses |
|
225 |
||
226 |
^self workingCopy packageClasses |
|
227 |
||
228 |
"Created: / 19-04-2008 / 19:07:41 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
229 |
! |
|
230 |
||
231 |
packageExtensions |
|
232 |
||
233 |
^self workingCopy packageExtensions |
|
234 |
||
235 |
"Created: / 19-04-2008 / 19:07:52 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
236 |
! |
|
237 |
||
777 | 238 |
preferredBranch |
239 |
^ preferredBranch |
|
240 |
! |
|
241 |
||
242 |
preferredBranch:aString |
|
1081
132dcaa0a4e9
changed: #preferredBranch:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
828
diff
changeset
|
243 |
|
777 | 244 |
preferredBranch := aString. |
1081
132dcaa0a4e9
changed: #preferredBranch:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
828
diff
changeset
|
245 |
"branch string MUST end with a slash" |
1082
f08e204d2e69
changed: #preferredBranch:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1081
diff
changeset
|
246 |
(preferredBranch notNil and:[preferredBranch last ~~ $/]) ifTrue:[ |
1081
132dcaa0a4e9
changed: #preferredBranch:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
828
diff
changeset
|
247 |
preferredBranch := preferredBranch , '/' |
132dcaa0a4e9
changed: #preferredBranch:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
828
diff
changeset
|
248 |
]. |
132dcaa0a4e9
changed: #preferredBranch:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
828
diff
changeset
|
249 |
|
1082
f08e204d2e69
changed: #preferredBranch:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
1081
diff
changeset
|
250 |
"Modified: / 29-03-2012 / 17:24:33 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
777 | 251 |
! |
252 |
||
253 |
trunk |
|
254 |
||
255 |
^self branchesAndTags detect:[:b|b isTrunk] ifNone:[nil] |
|
256 |
||
257 |
"Created: / 22-11-2009 / 17:01:53 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
258 |
! |
|
259 |
||
33 | 260 |
url |
261 |
^ url |
|
262 |
||
263 |
"Created: / 15-03-2008 / 20:21:30 / janfrog" |
|
777 | 264 |
"Modified: / 14-03-2011 / 10:31:35 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
33 | 265 |
! |
266 |
||
267 |
url:aString |
|
268 |
url := aString. |
|
269 |
||
270 |
"Created: / 15-03-2008 / 20:21:30 / janfrog" |
|
271 |
! |
|
272 |
||
273 |
workingCopy |
|
777 | 274 |
|
275 |
workingCopy ifNil: |
|
276 |
[workingCopy := manager workingCopyForPackage: package. |
|
277 |
workingCopy repository: self]. |
|
278 |
^workingCopy. |
|
33 | 279 |
|
280 |
"Created: / 15-03-2008 / 20:30:13 / janfrog" |
|
777 | 281 |
"Modified: / 10-04-2010 / 12:41:56 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
33 | 282 |
! |
283 |
||
284 |
workingCopy:aWorkingCopy |
|
777 | 285 |
|
33 | 286 |
workingCopy := aWorkingCopy. |
777 | 287 |
workingCopy repository:self. |
33 | 288 |
|
289 |
"Created: / 15-03-2008 / 20:30:13 / janfrog" |
|
290 |
"Modified: / 31-03-2008 / 12:47:43 / janfrog" |
|
777 | 291 |
"Modified: / 10-04-2010 / 12:40:50 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
292 |
! |
|
293 |
||
294 |
workingCopyIn: directory |
|
295 |
||
296 |
(workingCopy notNil and:[workingCopy path = directory]) |
|
297 |
ifTrue: |
|
298 |
[^workingCopy] |
|
299 |
ifFalse: |
|
300 |
[^(manager workingCopyForPackage: package in: directory) |
|
301 |
repository: self; |
|
302 |
yourself]. |
|
303 |
||
304 |
"Created: / 10-04-2010 / 12:44:04 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
33 | 305 |
! ! |
306 |
||
307 |
!Repository methodsFor:'accessing - containers'! |
|
308 |
||
309 |
containerNameForClass:arg |
|
310 |
^ self class containerNameForClass:arg |
|
311 |
! |
|
312 |
||
777 | 313 |
containerNameForExtensions: language |
314 |
^ self class containerNameForExtensions: language |
|
315 |
||
316 |
"Created: / 30-12-2009 / 21:59:25 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
33 | 317 |
! ! |
318 |
||
319 |
!Repository methodsFor:'accessing - tasks'! |
|
320 |
||
321 |
commitTask |
|
322 |
||
323 |
^self workingCopy commitTask |
|
324 |
||
325 |
"Created: / 24-03-2009 / 15:14:31 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
326 |
! |
|
327 |
||
328 |
updateTask |
|
329 |
||
330 |
^self workingCopy updateTask |
|
331 |
||
332 |
"Created: / 24-03-2009 / 15:14:40 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
333 |
! ! |
|
334 |
||
777 | 335 |
!Repository methodsFor:'commands'! |
336 |
||
337 |
cat: file |
|
338 |
||
339 |
^self cat: file revision: SVN::Revision head |
|
340 |
||
341 |
"Created: / 19-04-2008 / 10:51:54 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
342 |
! |
|
343 |
||
344 |
cat:file revision:revision |
|
345 |
^ self workingCopy isValid |
|
346 |
ifTrue:[ self workingCopy cat:file revision:revision ] |
|
347 |
ifFalse:[ self branch cat:file revision:revision ] |
|
348 |
||
349 |
"Created: / 19-04-2008 / 10:51:54 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
350 |
"Modified: / 19-08-2009 / 10:00:59 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
351 |
"Modified: / 02-01-2010 / 13:21:42 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
352 |
! ! |
|
353 |
||
33 | 354 |
!Repository methodsFor:'comparing'! |
355 |
||
356 |
= anotherRepo |
|
357 |
||
358 |
^self class = anotherRepo class |
|
359 |
and:[self url = anotherRepo url |
|
360 |
and:[self package = anotherRepo package]] |
|
361 |
||
362 |
"Created: / 31-03-2008 / 14:39:29 / janfrog" |
|
363 |
! |
|
364 |
||
365 |
hash |
|
366 |
||
367 |
^url hash bitXor: package hash |
|
368 |
||
369 |
"Created: / 31-03-2008 / 14:39:57 / janfrog" |
|
370 |
! ! |
|
371 |
||
777 | 372 |
!Repository methodsFor:'converting'! |
373 |
||
374 |
configuration |
|
375 |
|c| |
|
376 |
||
377 |
c := Configuration newRepository. |
|
378 |
c |
|
379 |
package:package; |
|
380 |
url:url. |
|
381 |
self workingCopy branchOrNil |
|
382 |
ifNotNil:[ c branch:self workingCopy branchOrNil path ]. |
|
383 |
^ c |
|
384 |
||
385 |
"Created: / 24-03-2010 / 22:35:08 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
386 |
! ! |
|
387 |
||
33 | 388 |
!Repository methodsFor:'error reporting'! |
389 |
||
390 |
svnError: aMessage |
|
391 |
||
392 |
self error: aMessage |
|
393 |
||
394 |
"Created: / 19-03-2008 / 10:00:55 / janfrog" |
|
395 |
! ! |
|
396 |
||
777 | 397 |
!Repository methodsFor:'initialization'! |
398 |
||
399 |
initialize |
|
400 |
||
401 |
branches := CacheEntry receiver: self selector: #basicBranchesAndTags. |
|
402 |
"/ super initialize. -- commented since inherited method does nothing |
|
403 |
||
404 |
"Modified: / 10-04-2010 / 12:39:39 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
405 |
! ! |
|
406 |
||
407 |
!Repository methodsFor:'printing & storing'! |
|
408 |
||
409 |
printOn:aStream |
|
1170 | 410 |
"append a printed representation of the receiver to the argument, aStream" |
777 | 411 |
|
412 |
super printOn:aStream. |
|
1170 | 413 |
aStream |
777 | 414 |
nextPut:$(; |
415 |
nextPutAll: url; |
|
416 |
nextPut:$). |
|
417 |
||
418 |
"Modified: / 14-04-2011 / 17:43:18 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
419 |
! ! |
|
420 |
||
421 |
!Repository methodsFor:'private'! |
|
422 |
||
423 |
basicBranchesAndTags |
|
424 |
| burl topLevelDirs branches | |
|
425 |
||
426 |
burl := self urlForBranches. |
|
427 |
branches := OrderedCollection new. |
|
428 |
topLevelDirs := ListCommand list: burl. |
|
429 |
"Try trunk branch" |
|
430 |
(topLevelDirs anySatisfy: [:entry | entry path = 'trunk' ]) |
|
431 |
ifTrue: |
|
432 |
[ branches add: ((Branch new) |
|
433 |
repository: self; |
|
434 |
path: '/trunk/') ] |
|
435 |
ifFalse: |
|
436 |
[ branches add: ((Branch new) |
|
437 |
repository: self; |
|
438 |
path: ''). |
|
439 |
^ branches ]. |
|
440 |
"Try branches" |
|
441 |
(topLevelDirs anySatisfy: [:entry | entry path = 'branches' ]) |
|
442 |
ifTrue: |
|
443 |
[ (ListCommand list: burl , '/branches/') do: |
|
444 |
[:branchEntry | |
|
445 |
branches add: ((Branch new) |
|
446 |
repository: self; |
|
447 |
path: '/branches/' , branchEntry path) ] ]. |
|
448 |
"Try tags" |
|
449 |
(topLevelDirs anySatisfy: [:entry | entry path = 'tags' ]) |
|
450 |
ifTrue: |
|
451 |
[ (ListCommand list: burl , '/tags/') do: |
|
452 |
[:branchEntry | |
|
453 |
branches add: ((Branch new) |
|
454 |
repository: self; |
|
455 |
path: '/tags/' , branchEntry path) ] ]. |
|
456 |
^ branches. |
|
457 |
||
458 |
"Created: / 14-04-2008 / 11:01:15 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
459 |
"Modified: / 19-08-2009 / 13:27:48 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
460 |
"Modified: / 14-03-2011 / 10:37:09 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
461 |
! |
|
462 |
||
463 |
urlForBranch: path |
|
464 |
||
465 |
^url expandPlaceholdersWith: |
|
466 |
(Dictionary new |
|
467 |
at: 'BRANCH' put: path; |
|
468 |
yourself) |
|
469 |
||
470 |
"Created: / 14-03-2011 / 09:57:15 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
471 |
! |
|
472 |
||
473 |
urlForBranches |
|
474 |
||
475 |
^self class urlForBranches: url |
|
476 |
||
477 |
"Created: / 14-03-2011 / 09:56:13 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
478 |
"Modified: / 23-03-2011 / 18:47:09 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
479 |
! ! |
|
480 |
||
33 | 481 |
!Repository methodsFor:'queries'! |
482 |
||
483 |
exists |
|
484 |
||
485 |
^[ |
|
486 |
ListCommand new |
|
487 |
branch: self; |
|
777 | 488 |
url: self urlForBranches; |
33 | 489 |
execute. |
490 |
true |
|
777 | 491 |
] on: SVN::SVNError do:[ false ] |
33 | 492 |
|
493 |
"Created: / 16-03-2008 / 12:12:17 / janfrog" |
|
494 |
"Modified: / 19-08-2009 / 13:08:25 / Jan Vrany <vranyj1@fel.cvut.cz>" |
|
777 | 495 |
"Modified: / 14-03-2011 / 10:33:52 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
33 | 496 |
! ! |
497 |
||
498 |
!Repository class methodsFor:'documentation'! |
|
499 |
||
500 |
version |
|
828
3c752e3ab464
checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
777
diff
changeset
|
501 |
^ '$Header$' |
183 | 502 |
! |
503 |
||
504 |
version_SVN |
|
1170 | 505 |
^ '$Id$' |
33 | 506 |
! ! |
1170 | 507 |