MCVersionInfo.st
author Jan Vrany <jan.vrany@labware.com>
Tue, 11 Jul 2023 12:13:27 +0100
branchjv
changeset 1173 e3dd2050492e
parent 1164 b2f0322f5c53
child 1175 194ac10b8ec3
permissions -rw-r--r--
Update class category to match package name if it does not This is needed because in Squeak / Pharo world package membership is defined by (class) category prefix. This is soo annoying...
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1109
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
     1
"
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
     2
COPYRIGHT (c) 2020 LabWare
1164
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1109
diff changeset
     3
COPYRIGHT (c) 2022 LabWare
1109
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
     4
"
2
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
"{ Package: 'stx:goodies/monticello' }"
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
1003
0ebeea1cdeeb Added MCWorkingAncestry>>ancestors:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 700
diff changeset
     7
"{ NameSpace: Smalltalk }"
0ebeea1cdeeb Added MCWorkingAncestry>>ancestors:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 700
diff changeset
     8
2
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
MCAncestry subclass:#MCVersionInfo
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
	instanceVariableNames:'id name message date time author'
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
	classVariableNames:''
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
	poolDictionaries:''
700
2f3535bb1260 category change
Claus Gittinger <cg@exept.de>
parents: 532
diff changeset
    13
	category:'SCM-Monticello-Versioning'
2
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
MCVersionInfo comment:'Adds to the record of ancestry, other identifying details.'
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
1109
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
    19
!MCVersionInfo class methodsFor:'documentation'!
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
    20
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
    21
copyright
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
    22
"
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
    23
COPYRIGHT (c) 2020 LabWare
1164
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1109
diff changeset
    24
COPYRIGHT (c) 2022 LabWare
1109
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
    25
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
    26
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
    27
"
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
    28
! !
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
    29
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
    30
!MCVersionInfo class methodsFor:'instance creation'!
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
    31
1164
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1109
diff changeset
    32
forPackage: package
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1109
diff changeset
    33
    "Return an MCVersionInfo for currently loaded (Smalltalk/X) package"                
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1109
diff changeset
    34
1109
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
    35
    ^ self new initializeWithPackage: package
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
    36
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
    37
    "Created: / 05-08-2020 / 15:34:49 / Jan Vrany <jan.vrany@labware.com>"
1164
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1109
diff changeset
    38
    "Modified (comment): / 19-09-2022 / 19:45:18 / Jan Vrany <jan.vrany@labware.com>"
1109
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
    39
! !
2
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
!MCVersionInfo class methodsFor:'as yet unclassified'!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
name: vName id: id message: message date: date time: time author: author ancestors: ancestors
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
	^ self 
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
		name: vName
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
		id: id
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
		message: message
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
		date: date
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
		time: time
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
		author: author
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
		ancestors: ancestors
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
		stepChildren: #()
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
name: vName id: id message: message date: date time: time author: author ancestors: ancestors stepChildren: stepChildren
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
	^ self new
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
		initializeWithName: vName
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
		id: id
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
		message: message
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
		date: date
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
		time: time
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
		author: author
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
		ancestors: ancestors
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
		stepChildren: stepChildren
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
! !
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
!MCVersionInfo methodsFor:'accessing'!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
1003
0ebeea1cdeeb Added MCWorkingAncestry>>ancestors:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 700
diff changeset
    69
inspector2TabAncestry
0ebeea1cdeeb Added MCWorkingAncestry>>ancestors:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 700
diff changeset
    70
    <inspector2Tab>
0ebeea1cdeeb Added MCWorkingAncestry>>ancestors:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 700
diff changeset
    71
0ebeea1cdeeb Added MCWorkingAncestry>>ancestors:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 700
diff changeset
    72
    ^ (self newInspector2Tab)
0ebeea1cdeeb Added MCWorkingAncestry>>ancestors:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 700
diff changeset
    73
        label:'Ancestry';
0ebeea1cdeeb Added MCWorkingAncestry>>ancestors:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 700
diff changeset
    74
        priority:50;
0ebeea1cdeeb Added MCWorkingAncestry>>ancestors:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 700
diff changeset
    75
        view: [
0ebeea1cdeeb Added MCWorkingAncestry>>ancestors:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 700
diff changeset
    76
            | list view |
0ebeea1cdeeb Added MCWorkingAncestry>>ancestors:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 700
diff changeset
    77
0ebeea1cdeeb Added MCWorkingAncestry>>ancestors:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 700
diff changeset
    78
            list := PluggableHierarchicalList new.
0ebeea1cdeeb Added MCWorkingAncestry>>ancestors:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 700
diff changeset
    79
            list childBlock: [ :parent | parent ancestors ].
0ebeea1cdeeb Added MCWorkingAncestry>>ancestors:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 700
diff changeset
    80
            list labelBlock: [ :child | child name ].
0ebeea1cdeeb Added MCWorkingAncestry>>ancestors:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 700
diff changeset
    81
            list root: self.
0ebeea1cdeeb Added MCWorkingAncestry>>ancestors:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 700
diff changeset
    82
            view := ScrollableView for:HierarchicalListView.
0ebeea1cdeeb Added MCWorkingAncestry>>ancestors:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 700
diff changeset
    83
            view useDefaultIcons: false.
0ebeea1cdeeb Added MCWorkingAncestry>>ancestors:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 700
diff changeset
    84
            view list: list.
0ebeea1cdeeb Added MCWorkingAncestry>>ancestors:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 700
diff changeset
    85
            view
0ebeea1cdeeb Added MCWorkingAncestry>>ancestors:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 700
diff changeset
    86
        ];
0ebeea1cdeeb Added MCWorkingAncestry>>ancestors:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 700
diff changeset
    87
        yourself
0ebeea1cdeeb Added MCWorkingAncestry>>ancestors:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 700
diff changeset
    88
0ebeea1cdeeb Added MCWorkingAncestry>>ancestors:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 700
diff changeset
    89
    "Created: / 07-09-2015 / 15:38:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
0ebeea1cdeeb Added MCWorkingAncestry>>ancestors:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 700
diff changeset
    90
!
0ebeea1cdeeb Added MCWorkingAncestry>>ancestors:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 700
diff changeset
    91
2
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
message
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
	^ message ifNil: ['']
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
name
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
	^ name ifNil: ['<working copy>']
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
summary
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
	^ String streamContents:
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
		[:s |
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
		s
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
			nextPutAll: self summaryHeader; cr; cr;
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
			nextPutAll: self message.
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
		]
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
summaryHeader
466
853af85b57c3 changed: #summaryHeader
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
   110
        ^ String streamContents:
853af85b57c3 changed: #summaryHeader
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
   111
                [:s |
853af85b57c3 changed: #summaryHeader
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
   112
                s
853af85b57c3 changed: #summaryHeader
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
   113
                        nextPutAll: 'Name: '; nextPutAll: self name; cr.
853af85b57c3 changed: #summaryHeader
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
   114
                date ifNotNil:
853af85b57c3 changed: #summaryHeader
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
   115
                        [s
853af85b57c3 changed: #summaryHeader
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
   116
                                nextPutAll: 'Author: '; nextPutAll: author; cr;
853af85b57c3 changed: #summaryHeader
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
   117
                                nextPutAll: 'Time: '; nextPutAll:  date asString, ', ', time asString; cr].
853af85b57c3 changed: #summaryHeader
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
   118
                id ifNotNil:
853af85b57c3 changed: #summaryHeader
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
   119
                        [s nextPutAll: 'UUID: '; nextPutAll: id printString; cr].
853af85b57c3 changed: #summaryHeader
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
   120
                s
853af85b57c3 changed: #summaryHeader
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
   121
                        nextPutAll: 'Ancestors: '; nextPutAll: self ancestorString.
853af85b57c3 changed: #summaryHeader
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
   122
                self stepChildren isEmpty ifFalse:
853af85b57c3 changed: #summaryHeader
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
   123
                        [s cr; nextPutAll: 'Backported From: '; nextPutAll: self stepChildrenString].
853af85b57c3 changed: #summaryHeader
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
   124
                ]
853af85b57c3 changed: #summaryHeader
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
   125
853af85b57c3 changed: #summaryHeader
Claus Gittinger <cg@exept.de>
parents: 2
diff changeset
   126
    "Modified: / 05-09-2011 / 09:07:31 / cg"
2
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
timeStamp
532
590f64057fea changed: #timeStamp
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   130
    Smalltalk isSmalltalkX ifTrue:[
590f64057fea changed: #timeStamp
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   131
        ^ Timestamp fromDate: date andTime: time
590f64057fea changed: #timeStamp
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   132
    ].
590f64057fea changed: #timeStamp
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   133
    ^ TimeStamp date: date time: time
590f64057fea changed: #timeStamp
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   134
590f64057fea changed: #timeStamp
Claus Gittinger <cg@exept.de>
parents: 466
diff changeset
   135
    "Modified: / 02-12-2011 / 14:36:15 / cg"
2
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
timeString
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
	^ date asString, ', ', time asString
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
! !
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
!MCVersionInfo methodsFor:'comparing'!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
= other
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
	^ other species = self species
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
		and: [other hasID: id]
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
hash
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
	^ id hash
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
! !
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
!MCVersionInfo methodsFor:'converting'!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
asDictionary
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
	^ Dictionary new
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
		at: #name put: name;
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
		at: #id put: id;
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
		at: #message put: message;
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
		at: #date put: date;
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
		at: #time put: time;
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
		at: #author put: author;
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
		at: #ancestors put: (self ancestors collect: [:a | a asDictionary]);
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
		yourself
1004
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   165
!
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   166
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   167
fromLiteralArrayEncoding: encoding
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   168
    name := encoding at: 3.
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   169
    id := UUID fromString: (encoding at: 5).
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   170
    date := Date readFrom:(encoding at: 7) format: '%y-%m-%d'.
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   171
    time := Time readFrom:(encoding at: 9) format: '%H:%m:%s.%i'.
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   172
    author :=  encoding at: 11.
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   173
    message := (encoding at: 13) asStringWithSqueakLineEndings.     
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   174
    encoding size > 13 ifTrue:[
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   175
        ancestors := (encoding at: 15) collect:[ :e | e decodeAsLiteralArray ].
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   176
    ].
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   177
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   178
    "Created: / 07-09-2015 / 17:36:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   179
    "Modified: / 08-09-2015 / 00:02:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   180
!
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   181
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   182
literalArrayEncoding
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   183
    ^ self literalArrayEncodingWithAncestors: true
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   184
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   185
    "Created: / 07-09-2015 / 17:23:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   186
!
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   187
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   188
literalArrayEncodingWithAncestors: withAncestors
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   189
    | encoding |
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   190
    encoding := Array new: 13 + (withAncestors ifTrue:[2] ifFalse:[0]).
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   191
    encoding
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   192
        at: 1 put: MCVersionInfo name;
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   193
        at: 2 put: #name:; at: 3 put: name;
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   194
        at: 4 put: #id:; at: 5 put: id printString;
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   195
        at: 6 put: #date:; at: 7 put: (date printStringFormat:'%y-%m-%d');
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   196
        at: 8 put: #time:; at: 9 put: (time printStringFormat:'%H:%m:%s.%i');
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   197
        at:10 put: #author:; at: 11 put: author;
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   198
        at:12 put: #message:; at: 13 put: (message asStringWithNativeLineEndings).
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   199
    withAncestors ifTrue:[    
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   200
        encoding at:14 put: #ancestors:; at: 15 put: (withAncestors ifTrue:[self ancestors collect:[ :e|e literalArrayEncodingWithAncestors: withAncestors ] as: Array] ifFalse:[ #() ]).
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   201
    ].
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   202
    ^ encoding.
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   203
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   204
    "Created: / 07-09-2015 / 17:22:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   205
    "Modified: / 08-09-2015 / 00:00:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   206
!
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   207
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   208
literalArrayEncodingWithoutAncestors
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   209
    ^ self literalArrayEncodingWithAncestors: false
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   210
e48adfaf3541 Added support for ancestry splicemaps.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1003
diff changeset
   211
    "Created: / 07-09-2015 / 17:47:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
! !
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
!MCVersionInfo methodsFor:'initialize-release'!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
initializeWithName: vName id: aUUID message: aString date: aDate time: aTime author: initials ancestors: aCollection stepChildren: stepCollection
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   217
	name _ vName.
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
	id _ aUUID.
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   219
	message _ aString.
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
	date _ aDate.
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   221
	time _ aTime.
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
	author _ initials.
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
	ancestors _  aCollection.
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
	stepChildren _ stepCollection
1109
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
   225
!
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
   226
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
   227
initializeWithPackage: aSymbol
1164
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1109
diff changeset
   228
    | pkgDef |
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1109
diff changeset
   229
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1109
diff changeset
   230
    pkgDef := ProjectDefinition definitionClassForPackage: aSymbol.
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1109
diff changeset
   231
    pkgDef notNil ifTrue: [ 
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1109
diff changeset
   232
        name := pkgDef monticelloPackageName ? aSymbol
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1109
diff changeset
   233
    ] ifFalse: [ 
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1109
diff changeset
   234
        name := aSymbol
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1109
diff changeset
   235
    ].
1109
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
   236
    id := UUID fromBytes: (SHA1Stream hashValueOf: name).
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
   237
    message := '<no message>'.
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
   238
    date := Date today.
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
   239
    time := Time now.
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
   240
    author := OperatingSystem getFullUserName.
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
   241
    ancestors := nil.
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
   242
    stepChildren := nil.
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
   243
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
   244
    "Created: / 05-08-2020 / 15:37:28 / Jan Vrany <jan.vrany@labware.com>"
1164
b2f0322f5c53 Use separate porters when writing out / reading in snapshots
Jan Vrany <jan.vrany@labware.com>
parents: 1109
diff changeset
   245
    "Modified: / 19-09-2022 / 19:50:34 / Jan Vrany <jan.vrany@labware.com>"
2
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   246
! !
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   247
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   248
!MCVersionInfo methodsFor:'pillaging'!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   249
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   250
author
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   251
	^ author
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   252
!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   253
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   254
date
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   255
	^ date
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   256
!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   257
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   258
id
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   259
	^ id 
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   260
!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   261
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   262
time
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   263
	^ time
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   264
! !
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   265
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   266
!MCVersionInfo methodsFor:'printing'!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   267
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   268
printOn: aStream
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   269
	super printOn: aStream.
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   270
	aStream nextPut: $(; nextPutAll: self name; nextPut: $)
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   271
	
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   272
! !
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   273
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   274
!MCVersionInfo methodsFor:'private'!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   275
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   276
hasID: aUUID
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   277
	^ id = aUUID
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   278
! !
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   279
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   280
!MCVersionInfo class methodsFor:'documentation'!
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   281
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   282
version
700
2f3535bb1260 category change
Claus Gittinger <cg@exept.de>
parents: 532
diff changeset
   283
    ^ '$Header: /cvs/stx/stx/goodies/monticello/MCVersionInfo.st,v 1.4 2012-09-11 21:30:28 cg Exp $'
1109
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
   284
!
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
   285
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
   286
version_HG
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
   287
4aad118c1257 Add utility method `MCVersionInfo >> #forPackage:`
Jan Vrany <jan.vrany@labware.com>
parents: 1004
diff changeset
   288
    ^ '$Changeset: <not expanded> $'
2
af9d766a7b67 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   289
! !
1003
0ebeea1cdeeb Added MCWorkingAncestry>>ancestors:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 700
diff changeset
   290