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