[Pkg] The Trunk: Monticello-cmm.461.mcz

commits at source.squeak.org commits at source.squeak.org
Mon Apr 25 00:16:44 UTC 2011


Chris Muller uploaded a new version of Monticello to project The Trunk:
http://source.squeak.org/trunk/Monticello-cmm.461.mcz

==================== Summary ====================

Name: Monticello-cmm.461
Author: cmm
Time: 24 April 2011, 7:16:14.664 pm
UUID: 8bac38b5-8083-4b26-9b55-3c26fd8bc16f
Ancestors: Monticello-nice.460

- Extend support for MCConfigurations to regular MCDirectoryRepository's.
- Categorized some methods.
- Constructor method for MCDirectoryRepository.
- Fixed memory-leak; when a repository adds to its 'cache', it should always keep it resized.

=============== Diff against Monticello-nice.460 ===============

Item was added:
+ ----- Method: MCDirectoryRepository class>>creationTemplateLocation: (in category 'configuring') -----
+ creationTemplateLocation: location 
+ 	^ self name , ' path: {1}' format: {location printString}!

Item was changed:
+ ----- Method: MCDirectoryRepository class>>description (in category 'configuring') -----
- ----- Method: MCDirectoryRepository class>>description (in category 'instance creation') -----
  description
  	^ 'directory'!

Item was added:
+ ----- Method: MCDirectoryRepository class>>directory: (in category 'instance creation') -----
+ directory: aFileDirectory 
+ 	^ self new
+ 		 directory: aFileDirectory ;
+ 		 yourself!

Item was added:
+ ----- Method: MCDirectoryRepository class>>fillInTheBlankRequest (in category 'configuring') -----
+ fillInTheBlankRequest
+ 	^ 'Directory Location:'!

Item was changed:
+ ----- Method: MCDirectoryRepository class>>morphicConfigure (in category 'configuring') -----
- ----- Method: MCDirectoryRepository class>>morphicConfigure (in category 'instance creation') -----
  morphicConfigure
  	^ FileList2 modalFolderSelector ifNotNil:
  		[:directory |
  		self new directory: directory]!

Item was added:
+ ----- Method: MCDirectoryRepository class>>path: (in category 'instance creation') -----
+ path: fullyQualifiedName 
+ 	^ self directory: (FileDirectory on: fullyQualifiedName)!

Item was changed:
+ ----- Method: MCDirectoryRepository>>allFileNames (in category 'accessing') -----
- ----- Method: MCDirectoryRepository>>allFileNames (in category 'as yet unclassified') -----
  allFileNames
  	^ (directory entries sortBy: [:a :b | a modificationTime >= b modificationTime]) collect: [:ea | ea name asMCVersionName]!

Item was added:
+ ----- Method: MCDirectoryRepository>>creationTemplate (in category 'accessing') -----
+ creationTemplate
+ 	^ super creationTemplate
+ 		ifNil:
+ 			[ self creationTemplate: (self class creationTemplateLocation: self directory pathName).
+ 			creationTemplate ]!

Item was changed:
+ ----- Method: MCDirectoryRepository>>description (in category 'accessing') -----
- ----- Method: MCDirectoryRepository>>description (in category 'as yet unclassified') -----
  description
  	^ directory pathName!

Item was changed:
+ ----- Method: MCDirectoryRepository>>directory (in category 'accessing') -----
- ----- Method: MCDirectoryRepository>>directory (in category 'as yet unclassified') -----
  directory
  	^ directory!

Item was changed:
+ ----- Method: MCDirectoryRepository>>directory: (in category 'accessing') -----
- ----- Method: MCDirectoryRepository>>directory: (in category 'as yet unclassified') -----
  directory: aDirectory
  	directory := aDirectory!

Item was changed:
+ ----- Method: MCDirectoryRepository>>initialize (in category 'accessing') -----
- ----- Method: MCDirectoryRepository>>initialize (in category 'as yet unclassified') -----
  initialize
  	directory := FileDirectory default!

Item was changed:
+ ----- Method: MCDirectoryRepository>>isValid (in category 'accessing') -----
- ----- Method: MCDirectoryRepository>>isValid (in category 'as yet unclassified') -----
  isValid
  	^directory exists!

Item was changed:
+ ----- Method: MCDirectoryRepository>>readStreamForFileNamed:do: (in category 'accessing') -----
- ----- Method: MCDirectoryRepository>>readStreamForFileNamed:do: (in category 'as yet unclassified') -----
  readStreamForFileNamed: aString do: aBlock
  	| file val |
  	file := FileStream readOnlyFileNamed: (directory fullNameFor: aString).
  	val := aBlock value: file.
  	file close.
  	^ val!

Item was changed:
+ ----- Method: MCDirectoryRepository>>writeStreamForFileNamed:replace:do: (in category 'accessing') -----
- ----- Method: MCDirectoryRepository>>writeStreamForFileNamed:replace:do: (in category 'as yet unclassified') -----
  writeStreamForFileNamed: aString replace: aBoolean do: aBlock
  	| file sel |
  	sel := aBoolean ifTrue: [#forceNewFileNamed:] ifFalse: [#newFileNamed:].
  	file := FileStream perform: sel with: (directory fullNameFor: aString).
  	aBlock value: file.
  	file close.!

Item was changed:
+ ----- Method: MCFileBasedRepository class>>cleanUp (in category 'release') -----
- ----- Method: MCFileBasedRepository class>>cleanUp (in category 'class initialization') -----
  cleanUp
  	"Flush caches"
  
  	self flushAllCaches.!

Item was changed:
+ ----- Method: MCFileBasedRepository class>>flushAllCaches (in category 'release') -----
- ----- Method: MCFileBasedRepository class>>flushAllCaches (in category 'as yet unclassified') -----
  flushAllCaches
  	self allSubInstancesDo: [:ea | ea flushCache]!

Item was changed:
  ----- Method: MCFileBasedRepository>>basicStoreVersion: (in category 'overriding') -----
+ basicStoreVersion: aMCVersionOrConfiguration 
- basicStoreVersion: aVersion
  	self
+ 		writeStreamForFileNamed: aMCVersionOrConfiguration fileName
+ 		do: [ : s | aMCVersionOrConfiguration fileOutOn: s ].
+ 	aMCVersionOrConfiguration isCacheable ifTrue:
+ 		[ cache ifNil: [ cache := Dictionary new ].
+ 		self resizeCache: cache.
+ 		cache
+ 			at: aMCVersionOrConfiguration fileName
+ 			put: aMCVersionOrConfiguration ]!
- 		writeStreamForFileNamed: aVersion fileName
- 		do: [:s | aVersion fileOutOn: s].
- 	aVersion isCacheable ifTrue: [
- 		cache ifNil: [cache := Dictionary new].
- 		cache at: aVersion fileName put: aVersion].
- !

Item was changed:
+ ----- Method: MCHttpRepository class>>creationTemplate (in category 'ui-support') -----
- ----- Method: MCHttpRepository class>>creationTemplate (in category 'as yet unclassified') -----
  creationTemplate
  	^self creationTemplateLocation: 'http://www.squeaksource.com/ProjectName'
  		user: 'squeak'
  		password: 'squeak'
  !

Item was changed:
+ ----- Method: MCHttpRepository class>>creationTemplateLocation:user:password: (in category 'ui-support') -----
- ----- Method: MCHttpRepository class>>creationTemplateLocation:user:password: (in category 'as yet unclassified') -----
  creationTemplateLocation: location user: user password: password
  	^
  'MCHttpRepository
  	location: {1}
  	user: {2}
  	password: {3}' format: {location printString. user printString. password printString}!

Item was changed:
+ ----- Method: MCHttpRepository class>>description (in category 'ui-support') -----
- ----- Method: MCHttpRepository class>>description (in category 'as yet unclassified') -----
  description
  	^ 'HTTP'!

Item was changed:
+ ----- Method: MCHttpRepository class>>fillInTheBlankRequest (in category 'ui-support') -----
- ----- Method: MCHttpRepository class>>fillInTheBlankRequest (in category 'as yet unclassified') -----
  fillInTheBlankRequest
  	^ 'HTTP Repository:'
  			!

Item was changed:
+ ----- Method: MCHttpRepository class>>location:user:password: (in category 'ui-support') -----
- ----- Method: MCHttpRepository class>>location:user:password: (in category 'as yet unclassified') -----
  location: location user: user password: password
  	^ self new
  		location: location;
  		user: user;
  		password: password!

Item was changed:
+ ----- Method: MCHttpRepository class>>morphicConfigure (in category 'ui-support') -----
- ----- Method: MCHttpRepository class>>morphicConfigure (in category 'as yet unclassified') -----
  morphicConfigure
  	^ self fillInTheBlankConfigure!

Item was changed:
  ----- Method: MCRepository class>>location:username:password: (in category 'instance creation') -----
  location: urlOrPath username: user password: pass
  	"Answer an MCRepository for the given url or path. Accepted locations are:
  		- http, and ftp urls (i.e., http://source.squeak.org/trunk)
  		- directory paths (i.e., C:\Squeak\packages)
  		- directory matches (i.e., C:\Squeak\packages\*)
  	If provided, the supplied user name and password will be used."
  
  	| url |
  	(urlOrPath findString: '://') > 0 ifTrue:[
  		url := urlOrPath asUrl.
  		url scheme caseOf: {
  			['ftp'] -> [^MCFtpRepository 
  							host: url authority
  							 directory: url pathString allButFirst
  							user: user 
  							password: user].
  			['http'] -> [^MCHttpRepository 
  							location: urlOrPath 
  							user: user 
  							password: pass].
  		} otherwise:[^self error: 'Unsupported scheme: ', url scheme].
  	].
  
  	(urlOrPath endsWith: '*') ifTrue:[
  		^MCSubDirectoryRepository new 
  				directory: (FileDirectory on: urlOrPath allButLast)].
  
+ 	^MCDirectoryRepository
- 	^MCDirectoryRepository new 
  			directory: (FileDirectory on: urlOrPath)!

Item was changed:
  ----- Method: MCRepository>>creationTemplate: (in category 'accessing') -----
+ creationTemplate: aString 
+ 	creationTemplate := aString!
- creationTemplate: aString
- 	self creationTemplate ifNotNil: [ self error: 'Creation template already set for this MCRepository instance.' ].
- 	
- 	creationTemplate := aString.!

Item was changed:
  ----- Method: MCRepository>>storeVersion: (in category 'accessing') -----
+ storeVersion: aMCVersionOrConfiguration
+ 	self basicStoreVersion: (self prepareVersionForStorage: aMCVersionOrConfiguration).
+ 	self sendNotificationsForVersion: aMCVersionOrConfiguration!
- storeVersion: aVersion
- 	self basicStoreVersion: (self prepareVersionForStorage: aVersion).
- 	self sendNotificationsForVersion: aVersion!

Item was changed:
  ----- Method: MCVersionReader class>>loadVersionFile: (in category 'file services') -----
+ loadVersionFile: fileName 
- loadVersionFile: fileName
  	| version |
  	version := self versionFromFile: fileName.
+ 	version workingCopy repositoryGroup addRepository: (MCDirectoryRepository path: (FileDirectory dirPathFor: fileName)).
+ 	version load!
- 	version workingCopy repositoryGroup addRepository:
- 		(MCDirectoryRepository new directory:
- 			(FileDirectory on: (FileDirectory dirPathFor: fileName))).
- 	version load.
- !

Item was changed:
  ----- Method: MCVersionReader class>>loadVersionStream:fromDirectory: (in category '*monticello-file services') -----
  loadVersionStream: stream fromDirectory: directory
  	| version |
  	version := self versionFromStream: stream.
  	directory isRemoteDirectory ifFalse: [
  	version workingCopy repositoryGroup addRepository:
+ 		(MCDirectoryRepository directory: directory). ].
- 		(MCDirectoryRepository new directory: directory). ].
  	version load.
  !



More information about the Packages mailing list