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