[squeak-dev] The Inbox: Monticello-cmm.66240.mcz
commits at source.squeak.org
commits at source.squeak.org
Sat Feb 16 22:49:54 UTC 2019
Chris Muller uploaded a new version of Monticello to project The Inbox:
http://source.squeak.org/inbox/Monticello-cmm.66240.mcz
==================== Summary ====================
Name: Monticello-cmm.66240
Author: cmm
Time: 16 February 2019, 4:49:51.685281 pm
UUID: 435c7c35-3b22-4f66-b733-070ccd48a980
Ancestors: Monticello-eem.684
Monticello only requires monotonicity and uniqueness for its version numbers, not consecutiveness. When saving a new package, generate a unique, 6-digit versionNumber. Beginning approximately 2020-11-25T10:40:00+00:00, a 7th digit will appear -- no more than a local phone number -- which will be good until year 2038.
=============== Diff against Monticello-eem.684 ===============
Item was added:
+ ----- Method: MCAncestry>>hasAncestorNamed: (in category 'ancestry') -----
+ hasAncestorNamed: aString
+ self allAncestorsDo:
+ [ : each | aString asMCVersionName = each name ifTrue: [ ^ true ] ].
+ ^ false!
Item was added:
+ ----- Method: MCVersionName class>>newVersionNameFor: (in category 'utilities') -----
+ newVersionNameFor: branchName
+ ^ branchName, '-' , Utilities authorInitials , '.' , self newVersionNumberString!
Item was added:
+ ----- Method: MCVersionName class>>newVersionNumberString (in category 'utilities') -----
+ newVersionNumberString
+ "Answer a unique version number for use in generating the versionNumber portion of my name."
+ ^ self versionNumberFor: DateAndTime now!
Item was added:
+ ----- Method: MCVersionName class>>versionNumberFor: (in category 'private') -----
+ versionNumberFor: aDateAndTime
+ "Answer a unique version number for use in generating the versionNumber portion of my name."
+ | epoch |
+ epoch := '2019-01-01T00:00:00+00:00' asDateAndTime.
+ ^ (aDateAndTime - epoch) days * 24 * 60!
Item was changed:
MCPackageManager subclass: #MCWorkingCopy
+ instanceVariableNames: 'versionInfo ancestry repositoryGroup requiredPackages environment'
- instanceVariableNames: 'versionInfo ancestry counter repositoryGroup requiredPackages environment'
classVariableNames: ''
poolDictionaries: ''
category: 'Monticello-Versioning'!
Item was changed:
----- Method: MCWorkingCopy>>nextVersionName (in category 'private') -----
nextVersionName
| branch oldName |
ancestry ancestors isEmpty
ifTrue:
+ [ branch := package name ]
- [ counter ifNil: [ counter := 0 ].
- branch := package name ]
ifFalse:
[ oldName := ancestry ancestors first versionName.
+ branch := oldName packageAndBranchName ].
+ ^ MCVersionName newVersionNameFor: branch!
- branch := oldName packageAndBranchName.
- counter ifNil:
- [ counter := (ancestry ancestors detectMax:
- [ : eachVersionInfo | eachVersionInfo versionNumber ])
- ifNil: [ 0 ]
- ifNotNil:
- [ : highestNumbered | highestNumbered versionNumber ] ] ].
- counter := counter + 1.
- ^ branch , '-' , Utilities authorInitials , '.' , counter asString!
Item was changed:
----- Method: MCWorkingCopy>>uniqueVersionName (in category 'private') -----
uniqueVersionName
|versionName|
- counter := nil.
[versionName := self nextVersionName.
+ (self repositoryGroup includesVersionNamed: versionName) or: [ ancestry hasAncestorNamed: versionName ]] whileTrue.
- self repositoryGroup includesVersionNamed: versionName] whileTrue.
^ versionName!
More information about the Squeak-dev
mailing list
|