MCFileBasedRepository.st
author Claus Gittinger <cg@exept.de>
Sat, 20 Aug 2011 13:45:50 +0200
changeset 235 8b1ac62deee4
parent 110 8a2078b5b002
child 356 2e3d3bf8215e
permissions -rw-r--r--
added: #version_CVS
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
110
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:goodies/monticello' }"
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
MCRepository subclass:#MCFileBasedRepository
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
	instanceVariableNames:'cache allFileNames'
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
	classVariableNames:''
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
	poolDictionaries:''
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
	category:'Monticello-Repositories'
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
!MCFileBasedRepository class methodsFor:'as yet unclassified'!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
flushAllCaches
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
	self allSubInstancesDo: [:ea | ea flushCache]
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
! !
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
!MCFileBasedRepository methodsFor:'as yet unclassified'!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
allFileNames
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	self subclassResponsibility
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
allFileNamesForVersionNamed: aString
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
	^ self filterFileNames: self readableFileNames forVersionNamed: aString
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
allFileNamesOrCache
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
	^ allFileNames ifNil: [self allFileNames]
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
235
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
    31
allPackageNames
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
    32
        ^ (self readableFileNames collect: [:ea | self packageNameFromFileName: ea])
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
    33
            asSet asOrderedCollection
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
    34
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
    35
    "Created: / 16-09-2010 / 16:10:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
    36
    "Modified: / 16-09-2010 / 18:44:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
    37
!
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
    38
110
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
allVersionNames
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
	^ self readableFileNames collect: [:ea | self versionNameFromFileName: ea]
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
basicStoreVersion: aVersion
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
	self
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
		writeStreamForFileNamed: aVersion fileName
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
		do: [:s | aVersion fileOutOn: s].
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
	aVersion isCacheable ifTrue: [
235
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
    48
		cache ifNil: [cache := Dictionary new].
110
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
		cache at: aVersion fileName put: aVersion].
235
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
    50
110
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
cache
235
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
    54
	^ cache ifNil: [cache := Dictionary new]
110
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
cacheAllFileNamesDuring: aBlock
235
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
    58
	allFileNames := self allFileNames.
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
    59
	^ aBlock ensure: [allFileNames := nil]
110
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
cachedFileNames
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
	^cache == nil
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
		ifTrue: [#()]
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
		ifFalse: [cache keys]
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
canReadFileNamed: aString
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
	| reader |
235
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
    70
	reader := MCVersionReader readerClassForFileNamed: aString.
110
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
	^ reader notNil
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
closestAncestorVersionFor: anAncestry ifNone: errorBlock
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
	^ self cacheAllFileNamesDuring:
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
		[super closestAncestorVersionFor: anAncestry ifNone: errorBlock]
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
filterFileNames: aCollection forVersionNamed: aString
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
	^ aCollection select: [:ea | (self versionNameFromFileName: ea) = aString] 
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
flushCache
235
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
    84
	cache := nil
110
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
includesVersionNamed: aString
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
	^ self allVersionNames includes: aString
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
loadVersionFromFileNamed: aString
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
	^ self versionReaderForFileNamed: aString do: [:r | r version]
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
loadVersionInfoFromFileNamed: aString
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
	^ self versionReaderForFileNamed: aString do: [:r | r info]
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
	
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
maxCacheSize
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
	^ 8
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
235
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   104
notifyList
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   105
        | list |
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   106
        (self allFileNames includes: 'notify') ifFalse: [^ #()].
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   107
        ^ self readStreamForFileNamed: 'notify' do:
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   108
                [:s |
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   109
                s upToEnd asStringWithSqueakLineEndings findTokens: (String with: Character cr)]
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   110
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   111
    "Modified: / 12-09-2010 / 16:06:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
110
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
235
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   114
packageNameFromFileName: aString
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   115
        ^ (aString copyUpToLast: $-)
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   116
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   117
    "Created: / 16-09-2010 / 16:10:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   118
    "Modified: / 16-09-2010 / 18:45:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
110
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
possiblyNewerVersionsOfAnyOf: someVersions
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
	| pkgs |
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
	pkgs := Dictionary new.
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
	someVersions do: [:aVersionInfo |
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
		pkgs at: (aVersionInfo name copyUpToLast: $-)
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
			put: (aVersionInfo name copyAfterLast: $.) asNumber].
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
	^[self allVersionNames select: [:each |
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
		(pkgs at: (each copyUpToLast: $-) ifPresent: [:verNumber |
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
			verNumber < (each copyAfterLast: $.) asNumber
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
				or: [verNumber = (each copyAfterLast: $.) asNumber
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
					and: [someVersions noneSatisfy: [:v | v name = each]]]]) == true]
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
	] on: Error do: [:ex | ex return: #()]
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
readableFileNames
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
	| all cached new |
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
	all := self allFileNamesOrCache.	"from repository"
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
	cached := self cachedFileNames.	"in memory"
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
	new := all difference: cached.
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
	^ (cached asArray, new)
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
		select: [:ea | self canReadFileNamed: ea]
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
resizeCache: aDictionary
235
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   147
        [aDictionary size <= self maxCacheSize] whileFalse:
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   148
                [aDictionary removeKey: aDictionary keys asArray atRandom]
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   149
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   150
    "Modified: / 15-09-2010 / 13:15:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
110
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
versionFromFileNamed: aString
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
	| v |
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
	v := self cache at: aString ifAbsent: [self loadVersionFromFileNamed: aString].
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
	self resizeCache: cache.
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
	(v notNil and: [v isCacheable]) ifTrue: [cache at: aString put: v].
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
	^ v
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
versionInfoFromFileNamed: aString
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
	self cache at: aString ifPresent: [:v | ^ v info].
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
	^ self loadVersionInfoFromFileNamed: aString
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
versionNameFromFileName: aString
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
	^ (aString copyUpToLast: $.) copyUpTo: $(
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
versionReaderForFileNamed: aString do: aBlock
235
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   171
        ^ self
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   172
                readStreamForFileNamed: aString
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   173
                do: [:s | | class |                    
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   174
                        (class := MCVersionReader readerClassForFileNamed: aString) ifNotNil:
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   175
                                [ aBlock value: (class on: s fileName: aString)]]
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   176
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   177
    "Modified: / 12-09-2010 / 19:40:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
110
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
versionWithInfo: aVersionInfo ifAbsent: errorBlock
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
	| version |
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
	(self allFileNamesForVersionNamed: aVersionInfo name) do:
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
		[:fileName |
235
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   184
		version := self versionFromFileNamed: fileName.
110
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
		version info = aVersionInfo ifTrue: [^ version]].
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
	^ errorBlock value
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
writeStreamForFileNamed: aString do: aBlock
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
	^ self writeStreamForFileNamed: aString replace: false do: aBlock
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
! !
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
!MCFileBasedRepository class methodsFor:'documentation'!
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
version
235
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   196
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCFileBasedRepository.st,v 1.2 2011-08-20 11:45:50 cg Exp $'
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   197
!
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   198
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   199
version_CVS
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   200
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCFileBasedRepository.st,v 1.2 2011-08-20 11:45:50 cg Exp $'
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   201
!
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   202
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   203
version_SVN
8b1ac62deee4 added: #version_CVS
Claus Gittinger <cg@exept.de>
parents: 110
diff changeset
   204
    ^ '§Id: MCFileBasedRepository.st 14 2010-09-17 14:16:41Z vranyj1 §'
110
8a2078b5b002 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
! !