MCSmalltalkhubRepository.st
author Claus Gittinger <cg@exept.de>
Sun, 26 Aug 2018 14:44:04 +0200
changeset 1068 d31a825dfb42
parent 1057 03fb4863fcb7
child 1070 7b9c9cafec32
permissions -rw-r--r--
#OTHER by cg update
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1057
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
"{ NameSpace: Smalltalk }"
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
MCHttpRepository subclass:#MCSmalltalkhubRepository
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:'owner project'
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
	category:'SCM-Monticello-RemoteRepositories'
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
!
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
MCSmalltalkhubRepository comment:'I am specialized version of an MCHttpRepository for http://smalltalkhub.com.
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
I support a faster mcz listing that does not rely on parsing an html size.'
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
!
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
!MCSmalltalkhubRepository class methodsFor:'instance creation'!
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
owner: owner project: project 
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	^ self
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
		owner: owner
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
		project: project
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
		user: String empty
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
		password: String empty
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
!
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
owner: owner project: project user: user password: password
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
	^ self new
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
		owner: owner;
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
		project: project;
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
		user: user;
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
		password: password;
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
		yourself
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
! !
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
!MCSmalltalkhubRepository class methodsFor:'accessing'!
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
baseURL
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
	^ self smalltalkhubUrl, 'mc/'
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
!
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
description
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
	^ 'smalltalkhub.com'
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
!
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
hostName
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
	^ 'smalltalkhub.com'
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
!
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
smalltalkhubUrl
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
	^ 'http://', self hostName, '/'
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
! !
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
!MCSmalltalkhubRepository class methodsFor:'creation template'!
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
creationTemplate
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
	^self creationTemplateOwner: ''
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
		project: ''
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
		user: ''
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
		password: ''
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
!
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
creationTemplateOwner: owner project: project user: user password: password
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
	^ String streamContents: [ :s|
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
		s 
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
			nextPutAll: self name; cr;
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
			tab; nextPutAll: 'owner: '; print: owner; cr;
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
			tab; nextPutAll: 'project: '; print: project; cr;
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
			tab; nextPutAll: 'user: '; print: user; cr;
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
			tab; nextPutAll: 'password: '; print: password ].
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
! !
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
!MCSmalltalkhubRepository class methodsFor:'testing'!
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
isResponsibleFor: aUrl
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
	^ aUrl includesSubstring: self hostName
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
! !
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
!MCSmalltalkhubRepository methodsFor:'*Komitter-Models'!
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
koRemote
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
	^ KomitSmalltalkhubRemote new
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
		remote: self;
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
		yourself
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
! !
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
!MCSmalltalkhubRepository methodsFor:'accessing'!
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
location
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
	^ 'http://smalltalkhub.com/mc/', self owner, '/', self project, '/main/' 
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
!
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
location: aUrlString
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
	| pathSegments |
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
	(self class isResponsibleFor: aUrlString)
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
		ifFalse: [ Error signal: 'Please provide a smalltalkhub url' ].
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
	"extract the smalltalkhub properties from the path part in the given URL"
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
	pathSegments := aUrlString asZnUrl pathSegments reject: [ :each | each = 'mc' ].
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
	self owner: pathSegments first.
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
	self project: pathSegments second.
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
!
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
locationWithTrailingSlash
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
	^ self location
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
!
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
owner
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
	
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
	^ owner
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
!
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
owner: aString
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
	
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
	owner := aString
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
!
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
project
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
	
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
	^ project
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
!
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
project: aString
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
	
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
	project := aString
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
! !
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
!MCSmalltalkhubRepository methodsFor:'converting'!
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
asCreationTemplate
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
	^self class 
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
		creationTemplateOwner: self owner project: self project user: user password: password
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
! !
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
!MCSmalltalkhubRepository methodsFor:'interface'!
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
includesFileNamed: aString
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
	"avoid the slower default method and simply do a head request "
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
	self httpClient
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
		numberOfRetries: 0;
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
		ifFail: [ :exception | 
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
			((exception isKindOf: ZnHttpUnsuccessful) and: [ exception response isNotFound ])
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
				ifTrue: [ ^ false ].
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
			exception pass];
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
		head: (self urlForFileNamed: aString).
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
	^ true
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
!
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
includesVersionNamed: aString
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
	"directly do a filename check since squeaksource only stores mcz"
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
	^ self includesFileNamed: aString, '.mcz'
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
!
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
loadAllFileNames
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
	| client |
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
	client := self httpClient.
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
	client
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
		ifFail: [ :exception | self error: 'Could not access ', self location, ': ', exception printString ];
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
		url: self locationWithTrailingSlash;
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
		queryAt: 'format' put: 'raw';
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
		get.
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
	self assertNonBinaryResponse: client response.
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
	^ self parseFileNamesFromStream: client contents
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
!
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
parseFileNamesFromStream: aNewLineDelimitedString
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
	^ aNewLineDelimitedString 
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
		ifNil: [ ^ OrderedCollection new ]
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
		ifNotNil: [ aNewLineDelimitedString substrings: String crlf ]
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
! !
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
!MCSmalltalkhubRepository class methodsFor:'documentation'!
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
version
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
    ^ '$Header$'
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
!
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
version_CVS
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
    ^ '$Header$'
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
! !
03fb4863fcb7 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181