SVN__WorkingCopy.st
author fm
Thu, 08 Oct 2009 14:00:26 +0200
changeset 316 4f2b6467ccdf
parent 137 c262be330384
child 384 28457041100b
permissions -rw-r--r--
update #version_SVN with § as keyword expansion character
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
     1
"{ Package: 'cvut:stx/goodies/libsvn' }"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
     2
6453ecf86e2e initial checkin
fm
parents:
diff changeset
     3
"{ NameSpace: SVN }"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
     4
6453ecf86e2e initial checkin
fm
parents:
diff changeset
     5
Object subclass:#WorkingCopy
6453ecf86e2e initial checkin
fm
parents:
diff changeset
     6
	instanceVariableNames:'path repository branch packageClassesChanged
6453ecf86e2e initial checkin
fm
parents:
diff changeset
     7
		packageExtensionsChanged'
6453ecf86e2e initial checkin
fm
parents:
diff changeset
     8
	classVariableNames:''
6453ecf86e2e initial checkin
fm
parents:
diff changeset
     9
	poolDictionaries:''
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    10
	category:'SVN-Core'
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    11
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    12
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    13
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    14
!WorkingCopy class methodsFor:'instance creation'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    15
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    16
branch: aBranch path: aStringOrFilename
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    17
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    18
    ^self new 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    19
        branch: aBranch; 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    20
        path: aStringOrFilename;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    21
        yourself
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    22
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    23
    "Created: / 19-08-2009 / 11:25:06 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    24
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    25
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    26
!WorkingCopy methodsFor:'accessing'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    27
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    28
branch
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    29
    branch ifNil:[ 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    30
        branch := BranchQuery new 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    31
                    repository: repository;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    32
                    raiseRequest.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    33
        branch ifNil:[branch := self defaultBranch]].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    34
    ^ branch
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    35
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    36
    "Created: / 31-03-2008 / 12:50:17 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    37
    "Modified: / 14-04-2008 / 12:44:25 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    38
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    39
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    40
branch: branchOrString
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    41
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    42
    branch := branchOrString isString
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    43
        ifFalse:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    44
            [repository := branchOrString repository.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    45
            branchOrString]
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    46
        ifTrue:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    47
            [repository branches
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    48
                detect:[:branch|branch path = branchOrString]
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    49
                ifNone:[self error:'No such branch: ', branchOrString]].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    50
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    51
    "Created: / 31-03-2008 / 13:29:13 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    52
    "Modified: / 19-08-2009 / 11:22:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    53
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    54
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    55
commitMode
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    56
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    57
    "UI Helper"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    58
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    59
    ^self packageClassesChanged ifTrue:[#full] ifFalse:[#fast]
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    60
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    61
    "Created: / 13-08-2009 / 15:12:41 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    62
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    63
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    64
commitMode: mode
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    65
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    66
    mode == #full ifTrue:[packageClassesChanged := true].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    67
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    68
    "Created: / 13-08-2009 / 15:13:08 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    69
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    70
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    71
defaultBranch
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    72
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    73
    ^repository branches 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    74
        detect:[:branch | branch isTrunk ]
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    75
        ifNone:[self error: 'No branch!!'].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    76
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    77
    "Created: / 11-04-2008 / 13:15:34 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    78
    "Modified: / 14-04-2008 / 11:53:04 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    79
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    80
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    81
manager
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    82
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    83
    ^repository manager
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    84
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    85
    "Created: / 11-06-2009 / 13:33:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    86
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    87
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    88
package
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    89
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    90
    ^repository package
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    91
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    92
    "Created: / 31-03-2008 / 13:04:52 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    93
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    94
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    95
packageClasses
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    96
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    97
    ^self packageClassesWithPrivate reject:[:cls|cls owningClass notNil]
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    98
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    99
    "Created: / 31-03-2008 / 13:06:13 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   100
    "Modified: / 23-03-2009 / 12:16:51 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   101
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   102
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   103
packageClassesChanged
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   104
    packageClassesChanged :=
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   105
        packageClassesChanged 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   106
            or:[self computePackageClassesChanged].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   107
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   108
    ^ packageClassesChanged
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   109
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   110
    "Modified: / 13-08-2009 / 10:21:19 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   111
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   112
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   113
packageClassesFiltered: classFilter
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   114
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   115
    ^self packageClasses select: [:class|classFilter value: class].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   116
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   117
    "Created: / 23-03-2009 / 12:04:18 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   118
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   119
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   120
packageClassesWithPrivate
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   121
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   122
    ^ProjectDefinition searchForClassesWithProject: self package
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   123
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   124
    "Created: / 23-03-2009 / 12:06:58 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   125
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   126
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   127
packageClassesWithPrivateFiltered: classFilter
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   128
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   129
    ^self packageClassesWithPrivate select: [:class|classFilter value: class].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   130
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   131
    "Created: / 23-03-2009 / 12:07:58 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   132
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   133
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   134
packageDefinition
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   135
    ^ Smalltalk 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   136
        at:(ProjectDefinition initialClassNameForDefinitionOf:self package) 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   137
                asSymbol.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   138
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   139
    "Created: / 15-06-2009 / 12:41:20 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   140
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   141
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   142
packageExtensions
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   143
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   144
    ^ProjectDefinition searchForExtensionsWithProject: self package
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   145
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   146
    "Created: / 31-03-2008 / 13:06:13 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   147
    "Modified: / 11-04-2008 / 08:25:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   148
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   149
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   150
packageExtensionsChanged
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   151
    packageExtensionsChanged :=
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   152
        packageExtensionsChanged
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   153
            or:[self computePackageExtensionsChanged].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   154
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   155
    ^ packageExtensionsChanged
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   156
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   157
    "Modified: / 13-08-2009 / 10:22:23 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   158
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   159
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   160
packageExtensionsFiltered:aBlock
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   161
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   162
    ^self packageExtensions select:aBlock
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   163
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   164
    "Created: / 11-06-2009 / 13:37:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   165
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   166
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   167
path
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   168
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   169
    ^ path
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   170
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   171
    "Created: / 31-03-2008 / 12:42:42 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   172
    "Modified: / 21-08-2009 / 17:47:30 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   173
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   174
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   175
path:aStringOrFilename
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   176
    path := aStringOrFilename asFilename.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   177
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   178
    "Created: / 31-03-2008 / 12:42:42 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   179
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   180
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   181
pathBase
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   182
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   183
    ^self manager workingCopyBase.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   184
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   185
    "Created: / 11-06-2009 / 13:32:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   186
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   187
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   188
repository
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   189
    ^ repository
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   190
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   191
    "Created: / 31-03-2008 / 12:42:22 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   192
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   193
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   194
repository:aRepository
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   195
    repository := aRepository.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   196
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   197
    "Created: / 31-03-2008 / 12:42:22 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   198
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   199
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   200
url
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   201
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   202
    ^branch url
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   203
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   204
    "Created: / 31-03-2008 / 13:05:01 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   205
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   206
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   207
!WorkingCopy methodsFor:'accessing - change sets'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   208
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   209
changeSet
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   210
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   211
    ^self changeSetIgnoreAutoloaded: false
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   212
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   213
    "Created: / 23-03-2009 / 18:57:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   214
    "Modified: / 12-08-2009 / 14:26:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   215
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   216
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   217
changeSetForContainer: containerName
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   218
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   219
    ^ChangeSet fromStream:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   220
        (self containerReadStreamFor: containerName)
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   221
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   222
    "Created: / 09-10-2008 / 20:21:56 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   223
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   224
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   225
changeSetForUpdate
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   226
    |diffSet classesToRemove|
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   227
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   228
    diffSet := self diffSetBetweenImageAndWorkingCopy.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   229
    classesToRemove := Set new.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   230
    SVN::ActivityNotification notify:'Computing update change set'.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   231
    "self = image, arg = revision"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   232
    ^(diffSet onlyInArg) ,
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   233
        (diffSet changed collect:[:changePair | changePair second ])
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   234
            , (diffSet onlyInReceiver 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   235
                select:[:change | change isClassDefinitionChange ]
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   236
                thenCollect:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   237
                    [:change |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   238
                    classesToRemove add:change className.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   239
                    ClassRemoveChange className:change className])
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   240
                , (diffSet onlyInReceiver 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   241
                        select:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   242
                            [:change | 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   243
                            change isMethodDefinitionChange 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   244
                                and:[ (classesToRemove includes:change className) not ]]
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   245
                            thenCollect:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   246
                                [:change | 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   247
                                MethodRemoveChange className:change className selector:change selector])
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   248
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   249
    "Created: / 24-03-2009 / 08:17:19 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   250
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   251
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   252
changeSetIgnoreAutoloaded: ignoreAutoloaded
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   253
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   254
    | containersToIgnore changeSet |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   255
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   256
    containersToIgnore :=
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   257
        (self packageClassesFiltered:[:cls|cls isLoaded not])
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   258
            collect:[:cls|repository containerNameForClass: cls].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   259
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   260
    changeSet := ChangeSet new.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   261
    self containers do:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   262
        [:container |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   263
        (containersToIgnore includes: container)
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   264
            ifFalse:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   265
                [changeSet addAll: 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   266
                    (self changeSetForContainer: container)]].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   267
    ^changeSet
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   268
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   269
    "Created: / 12-08-2009 / 14:26:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   270
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   271
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   272
!WorkingCopy methodsFor:'accessing - containers'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   273
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   274
containerFilenameFor: containerName
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   275
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   276
    ^self path construct: containerName
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   277
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   278
    "Created: / 09-10-2008 / 20:25:02 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   279
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   280
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   281
containerReadStreamFor: containerName
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   282
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   283
    | containerFile containerStream |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   284
    containerFile := self containerFilenameFor: containerName. 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   285
    OperatingSystem isMSWINDOWSlike
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   286
        ifTrue:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   287
            ["
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   288
            Dirty hack for MS Windows:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   289
            Windows do not allow me to open some files for the first
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   290
            time (OpenError is raised). Second try after some time is usually OK.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   291
            I don't know why this happens. Claus, do you have any idea?
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   292
            "
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   293
            [ containerStream := containerFile readStream ]
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   294
                on: OpenError do: 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   295
                    [Delay waitForMilliseconds: 100. "A magic constant here :-("
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   296
                    containerStream := containerFile readStream]]
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   297
        ifFalse:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   298
            ["
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   299
            Unix behaves pretty fine :-)
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   300
            "
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   301
            containerStream := containerFile readStream].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   302
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   303
    ^containerStream
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   304
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   305
    "Created: / 09-10-2008 / 20:26:03 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   306
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   307
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   308
containerSuffixes
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   309
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   310
    ^#(
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   311
          'st'   "Smalltalk"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   312
        "/'js'   "JavaScript - not yet supported"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   313
        "/'rb'   "Ruby - not yet supported"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   314
        "/'pas'  "Pascal - not yet supported"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   315
    )
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   316
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   317
    "Created: / 23-03-2009 / 18:53:56 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   318
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   319
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   320
containerWriteStreamFor: containerName
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   321
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   322
    ^(self containerFilenameFor: containerName) writeStream
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   323
        eolMode: #nl;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   324
        yourself
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   325
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   326
    "Created: / 09-10-2008 / 20:24:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   327
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   328
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   329
containerWriteStreamForExtensions
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   330
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   331
    ^self containerWriteStreamFor: 'extensions.st'
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   332
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   333
    "Created: / 09-10-2008 / 20:23:47 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   334
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   335
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   336
containers
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   337
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   338
    ^(self path directoryContents 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   339
        select:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   340
            [:container|self containerSuffixes anySatisfy:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   341
                [:suffix|container endsWith:suffix]]) asSet
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   342
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   343
    "Created: / 23-03-2009 / 18:52:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   344
    "Modified: / 12-06-2009 / 21:44:06 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   345
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   346
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   347
containersToKeep
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   348
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   349
    | containers |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   350
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   351
    containers := self packageClasses 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   352
        collect:[:cls|self repository containerNameForClass: cls].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   353
    self packageExtensions isEmpty ifFalse:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   354
        [containers add: self repository containerNameForExtensions].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   355
    ^containers asSet.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   356
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   357
    "Created: / 12-06-2009 / 21:27:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   358
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   359
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   360
containersWriteStreamForClass:cls 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   361
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   362
    ^self containerWriteStreamFor: (repository containerNameForClass:cls)
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   363
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   364
    "Created: / 09-10-2008 / 20:23:59 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   365
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   366
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   367
!WorkingCopy methodsFor:'accessing - diff sets'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   368
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   369
diffSetBetweenImageAndWorkingCopy
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   370
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   371
    | imageChangeSet revisionChangeSet |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   372
    imageChangeSet := ChangeSet forPackage: self package ignoreAutoloaded: true.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   373
    revisionChangeSet := self changeSetIgnoreAutoloaded: true.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   374
    ^imageChangeSet diffSetsAgainst: revisionChangeSet
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   375
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   376
    "Created: / 24-03-2009 / 08:17:26 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   377
    "Modified: / 12-08-2009 / 14:32:03 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   378
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   379
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   380
!WorkingCopy methodsFor:'accessing - tasks'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   381
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   382
commitTask
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   383
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   384
    ^CommitTask new workingCopy: self
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   385
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   386
    "Created: / 23-03-2009 / 11:47:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   387
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   388
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   389
updateTask
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   390
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   391
    ^UpdateTask new workingCopy: self
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   392
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   393
    "Created: / 24-03-2009 / 15:13:20 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   394
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   395
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   396
!WorkingCopy methodsFor:'commands'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   397
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   398
cat: file
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   399
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   400
    ^self cat: file revision: Revision head
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   401
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   402
    "Created: / 19-04-2008 / 10:52:22 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   403
    "Modified: / 09-10-2008 / 20:16:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   404
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   405
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   406
cat: file revision: revision
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   407
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   408
    ^self branch cat: file revision: revision
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   409
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   410
    "Created: / 19-04-2008 / 10:52:34 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   411
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   412
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   413
checkout
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   414
    |pkgDef|
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   415
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   416
    pkgDef := self packageDefinition.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   417
    self 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   418
        checkout:(pkgDef ifNotNil:[ pkgDef svnRevision ] ifNil:[ Revision head ])
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   419
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   420
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   421
checkout: revision
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   422
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   423
    | checkoutInfo |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   424
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   425
    self synchronized:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   426
        [self ensurePathExists.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   427
        SVN::ActivityNotification notify:'Checking out ' , self package.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   428
        checkoutInfo := CheckoutCommand new
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   429
                            revision: revision;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   430
                            workingCopy: self;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   431
                            execute].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   432
    ^checkoutInfo
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   433
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   434
    "Created: / 31-03-2008 / 12:57:58 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   435
    "Modified: / 21-08-2009 / 17:45:43 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   436
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   437
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   438
cleanup
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   439
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   440
    self ensurePathExists.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   441
    self isValid ifFalse:[^self].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   442
    ^CleanupCommand new
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   443
        workingCopy: self path;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   444
        execute.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   445
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   446
    "Created: / 08-11-2008 / 08:12:50 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   447
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   448
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   449
commit:message 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   450
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   451
    ^self commitTask
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   452
        message: message;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   453
        do
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   454
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   455
    "Created: / 31-03-2008 / 13:11:15 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   456
    "Modified: / 07-04-2008 / 08:52:13 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   457
    "Modified: / 23-03-2009 / 11:48:06 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   458
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   459
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   460
log
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   461
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   462
    ^self branch log
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   463
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   464
    "Created: / 19-04-2008 / 10:52:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   465
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   466
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   467
log: aString
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   468
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   469
    ^self branch log: aString
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   470
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   471
    "Created: / 19-04-2008 / 10:53:06 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   472
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   473
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   474
revert
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   475
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   476
    self ensurePathExists.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   477
    self isValid ifFalse:[^self checkout].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   478
    ^RevertCommand new
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   479
        workingCopy: self path;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   480
        execute.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   481
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   482
    "Created: / 22-10-2008 / 16:46:18 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   483
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   484
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   485
revert: containers
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   486
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   487
    | revertInfo |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   488
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   489
    self ensurePathExists.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   490
    self isValid ifFalse:[^self checkout].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   491
    self synchronized:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   492
        [revertInfo := RevertCommand new
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   493
                            workingCopy: self path;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   494
                            paths: containers;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   495
                            execute].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   496
    ^revertInfo
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   497
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   498
    "Created: / 03-11-2008 / 21:20:38 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   499
    "Modified: / 07-11-2008 / 08:54:38 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   500
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   501
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   502
status
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   503
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   504
    | status |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   505
    self ensureIsValid.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   506
    self synchronized:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   507
        [status := StatusCommand new
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   508
                    workingCopy: self;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   509
                    execute].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   510
    ^status
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   511
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   512
    "Created: / 11-04-2008 / 09:22:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   513
    "Modified: / 19-08-2009 / 14:35:49 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   514
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   515
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   516
update
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   517
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   518
    | updateInfo |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   519
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   520
    self ensurePathExists.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   521
    self isValid ifFalse:[^self checkout].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   522
    self synchronized:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   523
        [updateInfo := UpdateCommand new
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   524
                            workingCopy: self path;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   525
                            execute].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   526
    ^updateInfo
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   527
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   528
    "Created: / 21-05-2008 / 09:44:56 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   529
    "Modified: / 19-08-2009 / 12:25:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   530
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   531
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   532
!WorkingCopy methodsFor:'error reporting'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   533
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   534
error
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   535
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   536
    self error:'Unknown error'
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   537
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   538
    "Created: / 31-03-2008 / 12:44:06 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   539
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   540
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   541
error: aString
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   542
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   543
    WCError raiseWith:#error: errorString:aString
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   544
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   545
    "Created: / 31-03-2008 / 12:43:51 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   546
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   547
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   548
!WorkingCopy methodsFor:'private'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   549
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   550
commited
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   551
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   552
    packageExtensionsChanged := false.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   553
    packageClassesChanged := false.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   554
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   555
    "Created: / 13-08-2009 / 10:23:19 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   556
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   557
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   558
computePackageClassesChanged
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   559
    "
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   560
        Answers true iff package classes differs from
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   561
        those listed in ProjectDefinition>>classNamesAndAttributes"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   562
    
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   563
    |listedClasses realClasses|
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   564
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   565
    self packageDefinition ifNil:[^true].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   566
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   567
    listedClasses := self packageDefinition allClassNames.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   568
    realClasses := self  packageClasses collect:[:cls | cls fullName ].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   569
    listedClasses size ~= realClasses size 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   570
        ifTrue:[^ true].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   571
    (realClasses allSatisfy:[:realClass | listedClasses includes:realClass ])
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   572
        ifFalse:[^true].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   573
    ^false
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   574
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   575
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   576
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   577
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   578
    "
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   579
        (CommitTask new package: 'stx:goodies/libsvn')
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   580
            computePackageClassesChanged
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   581
        (CommitTask new package: 'cvut:fel/smallruby')
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   582
            computePackageClassesChanged
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   583
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   584
    "
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   585
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   586
    "Created: / 16-06-2009 / 10:08:28 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   587
    "Modified: / 18-08-2009 / 10:47:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   588
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   589
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   590
computePackageExtensionsChanged
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   591
    "
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   592
        Answers true iff package extension method differs from
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   593
        those listed in ProjectDefinition>>extensionMethodNames"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   594
    
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   595
    |listedExtensions listedExtensionsDictionary realExtensions|
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   596
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   597
    realExtensions := self  packageExtensions.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   598
    listedExtensions := self  packageDefinition 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   599
                extensionMethodNames.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   600
    (listedExtensions size / 2) ~= realExtensions size ifTrue:[
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   601
        ^ true
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   602
    ].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   603
    listedExtensionsDictionary := Dictionary new.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   604
    listedExtensions 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   605
        pairWiseDo:[:className :selector | 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   606
            (listedExtensionsDictionary at:className
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   607
                ifAbsentPut:[ OrderedCollection new ]) add:selector
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   608
        ].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   609
    ^ (realExtensions 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   610
        allSatisfy:[:mth | 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   611
            (listedExtensionsDictionary includesKey:mth mclass name) 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   612
                and:[ (listedExtensionsDictionary at:mth mclass name) includes:mth selector ]
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   613
        ]) 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   614
            not
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   615
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   616
    "
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   617
        (CommitTask new package: 'stx:goodies/libsvn')
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   618
            packageExtensionsHasChanged"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   619
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   620
    "Created: / 16-06-2009 / 10:11:01 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   621
    "Modified: / 13-08-2009 / 10:27:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   622
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   623
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   624
ensureIsValid
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   625
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   626
    self isValid ifFalse:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   627
        [self checkout].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   628
    self isValid ifFalse:[self error:'Cannot create working copy']
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   629
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   630
    "Created: / 08-04-2008 / 14:19:28 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   631
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   632
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   633
ensureMethodsHasAbsoluteSourceFiles
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   634
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   635
    Smalltalk allClassesDo:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   636
        [:cls| | makeLocalSource |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   637
        makeLocalSource :=  
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   638
            [:mth|
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   639
            mth package = self package ifTrue:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   640
                [mth makeSourceFileAbsolute]].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   641
        cls methodsDo: makeLocalSource.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   642
        cls class methodsDo: makeLocalSource].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   643
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   644
    "Created: / 21-08-2009 / 17:33:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   645
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   646
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   647
ensurePathExists
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   648
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   649
     [path exists ifFalse:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   650
        [self ensureMethodsHasAbsoluteSourceFiles
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   651
        path recursiveMakeDirectory
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   652
        ]]
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   653
        on: Smalltalk::Error do:[:ex|self error:'Cannot create working copy'].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   654
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   655
    "Created: / 08-04-2008 / 14:26:56 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   656
    "Modified: / 21-08-2009 / 17:46:05 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   657
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   658
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   659
!WorkingCopy methodsFor:'private - file out'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   660
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   661
fileOutClass:cls on:clsStream
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   662
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   663
    cls 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   664
        fileOutOn:clsStream
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   665
        withTimeStamp:false
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   666
        withInitialize:true
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   667
        withDefinition:true
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   668
        methodFilter:[:mth | mth package = self package ]
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   669
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   670
    "Created: / 19-04-2008 / 09:58:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   671
    "Modified: / 11-06-2009 / 16:18:19 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   672
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   673
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   674
fileOutExtensionsOn:extensionsStream 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   675
    extensionsStream
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   676
        nextPutAll:'"$Id$"';
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   677
        cr;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   678
        nextPutAll:'"{ Package: ''' , self package , ''' }"';
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   679
        cr;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   680
        cr;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   681
        nextPut:$!!;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   682
        cr;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   683
        cr.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   684
    ^ self packageExtensions do:[:mth | 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   685
        mth mclass fileOutMethod:mth on:extensionsStream
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   686
    ]
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   687
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   688
    "Created: / 19-04-2008 / 10:17:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   689
    "Modified: / 15-06-2009 / 11:55:26 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   690
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   691
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   692
!WorkingCopy methodsFor:'testing'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   693
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   694
isValid
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   695
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   696
    | svnMetadataDir |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   697
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   698
    svnMetadataDir := self path construct: '.svn'.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   699
    svnMetadataDir exists ifFalse:[^false].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   700
    (svnMetadataDir construct: 'entries') exists 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   701
        ifFalse:[^false].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   702
    (svnMetadataDir construct: 'text-base') exists 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   703
        ifFalse:[^false].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   704
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   705
    ^true
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   706
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   707
    "Created: / 08-04-2008 / 14:17:03 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   708
    "Modified: / 16-07-2009 / 13:57:03 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   709
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   710
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   711
!WorkingCopy class methodsFor:'documentation'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   712
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   713
version
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   714
    ^ '$Header$'
137
c262be330384 changed: #version_SVN
fm
parents: 57
diff changeset
   715
!
c262be330384 changed: #version_SVN
fm
parents: 57
diff changeset
   716
c262be330384 changed: #version_SVN
fm
parents: 57
diff changeset
   717
version_CVS
c262be330384 changed: #version_SVN
fm
parents: 57
diff changeset
   718
    ^ '$Header$'
c262be330384 changed: #version_SVN
fm
parents: 57
diff changeset
   719
!
c262be330384 changed: #version_SVN
fm
parents: 57
diff changeset
   720
c262be330384 changed: #version_SVN
fm
parents: 57
diff changeset
   721
version_SVN
316
4f2b6467ccdf update #version_SVN with § as keyword expansion character
fm
parents: 137
diff changeset
   722
    ^'§Id: SVN__WorkingCopy.st 112 2009-08-22 10:09:13Z vranyj1 §'
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   723
! !