SVN__WorkingCopy.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 05 Nov 2012 01:13:28 +0100
changeset 1132 00958c45023c
parent 1123 68bc201d0f7e
child 1133 e9572eb610f8
permissions -rw-r--r--
fixed #fileOutExtensions:in:language: (filing out of Java extensions)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
     1
"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
     2
 Copyright (c) 2007-2010 Jan Vrany
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
     3
 Copyright (c) 2009-2010 eXept Software AG
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
     4
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
     5
 Permission is hereby granted, free of charge, to any person
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
     6
 obtaining a copy of this software and associated documentation
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
     7
 files (the 'Software'), to deal in the Software without
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
     8
 restriction, including without limitation the rights to use,
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
     9
 copy, modify, merge, publish, distribute, sublicense, and/or sell
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    10
 copies of the Software, and to permit persons to whom the
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    11
 Software is furnished to do so, subject to the following
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    12
 conditions:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    13
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    14
 The above copyright notice and this permission notice shall be
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    15
 included in all copies or substantial portions of the Software.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    16
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    17
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    18
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    19
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    20
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    21
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    22
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    23
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    24
 OTHER DEALINGS IN THE SOFTWARE.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    25
"
384
28457041100b *** empty log message ***
fm
parents: 316
diff changeset
    26
"{ Package: 'stx:libsvn' }"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    27
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    28
"{ NameSpace: SVN }"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    29
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    30
Object subclass:#WorkingCopy
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    31
	instanceVariableNames:'path repository branch packageClassesChanged
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    32
		packageExtensionsChanged'
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    33
	classVariableNames:''
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    34
	poolDictionaries:''
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    35
	category:'SVN-Core'
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    36
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    37
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    38
!WorkingCopy class methodsFor:'documentation'!
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    39
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    40
copyright
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    41
"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    42
 Copyright (c) 2007-2010 Jan Vrany
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    43
 Copyright (c) 2009-2010 eXept Software AG
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    44
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    45
 Permission is hereby granted, free of charge, to any person
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    46
 obtaining a copy of this software and associated documentation
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    47
 files (the 'Software'), to deal in the Software without
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    48
 restriction, including without limitation the rights to use,
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    49
 copy, modify, merge, publish, distribute, sublicense, and/or sell
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    50
 copies of the Software, and to permit persons to whom the
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    51
 Software is furnished to do so, subject to the following
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    52
 conditions:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    53
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    54
 The above copyright notice and this permission notice shall be
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    55
 included in all copies or substantial portions of the Software.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    56
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    57
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    58
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    59
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    60
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    61
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    62
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    63
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    64
 OTHER DEALINGS IN THE SOFTWARE.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    65
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    66
"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    67
! !
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    68
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    69
!WorkingCopy class methodsFor:'instance creation'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    70
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    71
branch: aBranch path: aStringOrFilename
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    72
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    73
    ^self new 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    74
        branch: aBranch; 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    75
        path: aStringOrFilename;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    76
        yourself
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    77
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    78
    "Created: / 19-08-2009 / 11:25:06 / Jan Vrany <vranyj1@fel.cvut.cz>"
998
c8ae684f562c added lost changes...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 973
diff changeset
    79
!
c8ae684f562c added lost changes...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 973
diff changeset
    80
c8ae684f562c added lost changes...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 973
diff changeset
    81
path: aStringOrFilename
c8ae684f562c added lost changes...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 973
diff changeset
    82
c8ae684f562c added lost changes...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 973
diff changeset
    83
    ^self new 
c8ae684f562c added lost changes...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 973
diff changeset
    84
        path: aStringOrFilename;
c8ae684f562c added lost changes...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 973
diff changeset
    85
        yourself
c8ae684f562c added lost changes...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 973
diff changeset
    86
c8ae684f562c added lost changes...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 973
diff changeset
    87
    "Created: / 19-08-2009 / 11:25:06 / Jan Vrany <vranyj1@fel.cvut.cz>"
c8ae684f562c added lost changes...
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 973
diff changeset
    88
    "Created: / 07-02-2012 / 22:31:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    89
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    90
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    91
!WorkingCopy class methodsFor:'others'!
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    92
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    93
version_CVS
905
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
    94
    ^ '$Header$'
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    95
! !
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
    96
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    97
!WorkingCopy methodsFor:'accessing'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    98
6453ecf86e2e initial checkin
fm
parents:
diff changeset
    99
branch
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   100
    branch ifNil:[ 
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   101
        branch := self isValid
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   102
                    ifTrue:[self branchFromWorkingCopy]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   103
                    ifFalse:[self branchFromQuery].
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   104
        branch ifNil:[branch := self defaultBranch]].
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   105
    ^ branch value
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   106
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   107
    "Created: / 31-03-2008 / 12:50:17 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   108
    "Modified: / 14-04-2008 / 12:44:25 / Jan Vrany <vranyj1@fel.cvut.cz>"
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   109
    "Modified: / 09-01-2010 / 12:10:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   110
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   111
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   112
branch: branchOrString
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   113
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   114
    branch := branchOrString isString
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   115
        ifFalse:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   116
            [repository := branchOrString repository.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   117
            branchOrString]
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   118
        ifTrue:
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   119
            ["Do it in separate thread to speedup things"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   120
            Promise value:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   121
                [branch := 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   122
                    repository branches
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   123
                        detect:[:branch|branch path = branchOrString]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   124
                        ifNone:[self error:'No such branch: ', branchOrString]]].
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   125
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   126
    "Created: / 31-03-2008 / 13:29:13 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   127
    "Modified: / 19-08-2009 / 11:22:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   128
    "Modified: / 09-01-2010 / 12:12:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   129
!
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   130
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   131
branchOrNil           
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   132
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   133
    | branches |
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   134
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   135
    branch ifNil:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   136
        [branches := repository branches.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   137
        branches size = 1 ifTrue:[^branch := branches anyOne].
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   138
        repository preferredBranch 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   139
            ifNotNil:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   140
                [branch := branches 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   141
                    detect:[:branch|branch asString = repository preferredBranch]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   142
                    ifNone:[nil]]].
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   143
    ^branch
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   144
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   145
    "Created: / 31-03-2008 / 12:50:17 / janfrog"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   146
    "Modified: / 14-04-2008 / 12:44:25 / Jan Vrany <vranyj1@fel.cvut.cz>"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   147
    "Modified: / 29-03-2010 / 13:58:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   148
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   149
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   150
commitMode
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   151
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   152
    "UI Helper"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   153
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   154
    ^self packageClassesChanged ifTrue:[#full] ifFalse:[#fast]
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   155
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   156
    "Created: / 13-08-2009 / 15:12:41 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   157
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   158
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   159
commitMode: mode
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   160
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   161
    mode == #full ifTrue:[packageClassesChanged := true].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   162
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   163
    "Created: / 13-08-2009 / 15:13:08 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   164
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   165
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   166
defaultBranch
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   167
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   168
    ^repository branches 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   169
        detect:[:branch | branch isTrunk ]
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   170
        ifNone:[self error: 'No branch!!'].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   171
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   172
    "Created: / 11-04-2008 / 13:15:34 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   173
    "Modified: / 14-04-2008 / 11:53:04 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   174
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   175
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   176
manager
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   177
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   178
    ^repository manager
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   179
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   180
    "Created: / 11-06-2009 / 13:33:17 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   181
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   182
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   183
package
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   184
1006
f318a4c6a09d Improvements for CommitDialog2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   185
    ^self branch package
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   186
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   187
    "Created: / 31-03-2008 / 13:04:52 / janfrog"
1006
f318a4c6a09d Improvements for CommitDialog2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   188
    "Modified: / 08-02-2012 / 18:25:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   189
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   190
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   191
packageClasses
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   192
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   193
    ^self packageClassesWithPrivate reject:[:cls|cls owningClass notNil]
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   194
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   195
    "Created: / 31-03-2008 / 13:06:13 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   196
    "Modified: / 23-03-2009 / 12:16:51 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   197
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   198
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   199
packageClassesChanged
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   200
    packageClassesChanged :=
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   201
        (packageClassesChanged == true)
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   202
            or:[self computePackageClassesChanged].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   203
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   204
    ^ packageClassesChanged
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   205
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   206
    "Modified: / 13-08-2009 / 10:21:19 / Jan Vrany <vranyj1@fel.cvut.cz>"
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   207
    "Modified: / 21-04-2010 / 23:29:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   208
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   209
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   210
packageClassesFiltered: classFilter
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   211
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   212
    ^self packageClasses select: [:class|classFilter value: class].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   213
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   214
    "Created: / 23-03-2009 / 12:04:18 / 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
packageClassesWithPrivate
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   218
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   219
    ^ProjectDefinition searchForClassesWithProject: self package
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   220
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   221
    "Created: / 23-03-2009 / 12:06:58 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   222
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   223
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   224
packageClassesWithPrivateFiltered: classFilter
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   225
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   226
    ^self packageClassesWithPrivate select: [:class|classFilter value: class].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   227
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   228
    "Created: / 23-03-2009 / 12:07:58 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   229
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   230
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   231
packageDefinition
1101
ffc2b5e1104f comment/format in: #computePackageExtensionsChanged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1065
diff changeset
   232
    ^LibraryDefinition definitionClassForPackage:self package createIfAbsent:true
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   233
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   234
    "Created: / 15-06-2009 / 12:41:20 / Jan Vrany <vranyj1@fel.cvut.cz>"
1101
ffc2b5e1104f comment/format in: #computePackageExtensionsChanged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1065
diff changeset
   235
    "Modified: / 04-05-2012 / 17:15:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   236
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   237
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   238
packageExtensions
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   239
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   240
    ^ProjectDefinition searchForExtensionsWithProject: self package
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   241
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   242
    "Created: / 31-03-2008 / 13:06:13 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   243
    "Modified: / 11-04-2008 / 08:25:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   244
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   245
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   246
packageExtensionsChanged
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   247
    packageExtensionsChanged :=
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   248
        (packageExtensionsChanged == true)
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   249
            or:[self computePackageExtensionsChanged].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   250
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   251
    ^ packageExtensionsChanged
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   252
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   253
    "Modified: / 13-08-2009 / 10:22:23 / Jan Vrany <vranyj1@fel.cvut.cz>"
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   254
    "Modified: / 21-04-2010 / 23:30:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   255
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   256
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   257
packageExtensionsFiltered:aBlock
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   258
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   259
    ^self packageExtensions select:aBlock
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   260
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   261
    "Created: / 11-06-2009 / 13:37:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   262
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   263
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   264
path
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   265
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   266
    ^ path
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   267
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   268
    "Created: / 31-03-2008 / 12:42:42 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   269
    "Modified: / 21-08-2009 / 17:47:30 / 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
path:aStringOrFilename
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   273
    path := aStringOrFilename asFilename.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   274
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   275
    "Created: / 31-03-2008 / 12:42:42 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   276
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   277
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   278
pathBase
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   279
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   280
    ^self manager workingCopyBase.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   281
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   282
    "Created: / 11-06-2009 / 13:32:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   283
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   284
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   285
repository
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   286
    ^ repository
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   287
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   288
    "Created: / 31-03-2008 / 12:42:22 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   289
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   290
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   291
repository:aRepository
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   292
    repository := aRepository.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   293
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   294
    "Created: / 31-03-2008 / 12:42:22 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   295
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   296
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   297
url
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   298
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   299
    ^branch url
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   300
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   301
    "Created: / 31-03-2008 / 13:05:01 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   302
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   303
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   304
!WorkingCopy methodsFor:'accessing - change sets'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   305
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   306
changeSet
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   307
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   308
    ^self changeSetIgnoreAutoloaded: false
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   309
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   310
    "Created: / 23-03-2009 / 18:57:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   311
    "Modified: / 12-08-2009 / 14:26:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   312
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   313
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   314
changeSetForContainer: containerName
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   315
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   316
    ^(ChangeSet fromStream:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   317
        (self containerReadStreamFor: containerName))
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   318
        name: containerName;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   319
        yourself
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   320
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   321
    "Created: / 09-10-2008 / 20:21:56 / Jan Vrany <vranyj1@fel.cvut.cz>"
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   322
    "Modified: / 07-07-2011 / 21:47:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   323
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   324
1027
1f9bcfa5013b - added compare against HEAD & compare against BASE
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1006
diff changeset
   325
changeSetForContainer: containerName revision: rev
1f9bcfa5013b - added compare against HEAD & compare against BASE
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1006
diff changeset
   326
    | containerContents |
1f9bcfa5013b - added compare against HEAD & compare against BASE
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1006
diff changeset
   327
1f9bcfa5013b - added compare against HEAD & compare against BASE
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1006
diff changeset
   328
    containerContents := self cat: containerName revision: rev.
1f9bcfa5013b - added compare against HEAD & compare against BASE
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1006
diff changeset
   329
    ^(ChangeSet fromStream: containerContents readStream)
1f9bcfa5013b - added compare against HEAD & compare against BASE
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1006
diff changeset
   330
        name: containerName , ' (' , rev printString , ')';
1f9bcfa5013b - added compare against HEAD & compare against BASE
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1006
diff changeset
   331
        yourself
1f9bcfa5013b - added compare against HEAD & compare against BASE
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1006
diff changeset
   332
1f9bcfa5013b - added compare against HEAD & compare against BASE
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1006
diff changeset
   333
    "Created: / 10-02-2012 / 09:57:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1f9bcfa5013b - added compare against HEAD & compare against BASE
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1006
diff changeset
   334
!
1f9bcfa5013b - added compare against HEAD & compare against BASE
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1006
diff changeset
   335
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   336
changeSetForUpdate
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   337
    |diffSet classesToRemove|
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   338
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   339
    diffSet := self diffSetBetweenImageAndWorkingCopy.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   340
    classesToRemove := Set new.
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   341
    ActivityNotification notify:'Computing update change set'.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   342
     "self = image, arg = revision"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   343
    ^ (diffSet onlyInArg) 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   344
        , (diffSet changed collect:[:changePair | changePair second ]) 
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   345
            , (diffSet onlyInReceiver 
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   346
                    select:[:change | change isClassDefinitionChange ]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   347
                    thenCollect:[:change | 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   348
                        classesToRemove add:change className.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   349
                        ClassRemoveChange className:change className
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   350
                    ]) 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   351
            , (diffSet onlyInReceiver 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   352
                    select:[:change | 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   353
                        change isMethodDefinitionChange 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   354
                            and:[ (classesToRemove includes:change className) not ]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   355
                    ]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   356
                    thenCollect:[:change | 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   357
                        MethodRemoveChange className:change className selector:change selector
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   358
                    ])
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   359
                 "Created: / 24-03-2009 / 08:17:19 / Jan Vrany <vranyj1@fel.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   360
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   361
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   362
changeSetIgnoreAutoloaded: ignoreAutoloaded
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   363
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   364
    | containersToIgnore changeSet |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   365
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   366
    containersToIgnore :=
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   367
        (self packageClassesFiltered:[:cls|cls isLoaded not])
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   368
            collect:[:cls|repository containerNameForClass: cls].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   369
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   370
    changeSet := ChangeSet new.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   371
    self containers do:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   372
        [:container |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   373
        (containersToIgnore includes: container)
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   374
            ifFalse:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   375
                [changeSet addAll: 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   376
                    (self changeSetForContainer: container)]].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   377
    ^changeSet
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   378
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   379
    "Created: / 12-08-2009 / 14:26:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   380
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   381
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   382
!WorkingCopy methodsFor:'accessing - containers'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   383
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   384
containerFilenameFor: containerName
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   385
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   386
    ^self path construct: containerName
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   387
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   388
    "Created: / 09-10-2008 / 20:25:02 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   389
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   390
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   391
containerReadStreamFor: containerName
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   392
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   393
    | containerFile containerStream |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   394
    containerFile := self containerFilenameFor: containerName. 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   395
    OperatingSystem isMSWINDOWSlike
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   396
        ifTrue:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   397
            ["
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   398
            Dirty hack for MS Windows:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   399
            Windows do not allow me to open some files for the first
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   400
            time (OpenError is raised). Second try after some time is usually OK.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   401
            I don't know why this happens. Claus, do you have any idea?
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   402
            "
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   403
            [ containerStream := containerFile readStream ]
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   404
                on: OpenError do: 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   405
                    [Delay waitForMilliseconds: 100. "A magic constant here :-("
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   406
                    containerStream := containerFile readStream]]
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   407
        ifFalse:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   408
            ["
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   409
            Unix behaves pretty fine :-)
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   410
            "
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   411
            containerStream := containerFile readStream].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   412
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   413
    ^containerStream
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   414
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   415
    "Created: / 09-10-2008 / 20:26:03 / 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
containerSuffixes
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   419
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   420
    ^ProgrammingLanguage all collect:[:each|each sourceFileSuffix]
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   421
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   422
    "Created: / 23-03-2009 / 18:53:56 / Jan Vrany <vranyj1@fel.cvut.cz>"
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   423
    "Modified: / 30-12-2009 / 18:15:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   424
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   425
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   426
containerWriteStreamFor: containerName
1121
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
   427
    | filename directory |
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   428
1121
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
   429
    filename := self containerFilenameFor: containerName.
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
   430
    (directory := filename directory) exists ifFalse:[
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
   431
        directory recursiveMakeDirectory
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
   432
    ].
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
   433
    ^filename writeStream
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   434
        eolMode: #nl;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   435
        yourself
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   436
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   437
    "Created: / 09-10-2008 / 20:24:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
1121
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
   438
    "Modified: / 04-09-2012 / 23:44:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   439
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   440
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   441
containerWriteStreamForExtensions: aProgrammingLanguage
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   442
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   443
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   444
    ^self containerWriteStreamFor: 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   445
        (Repository containerNameForExtensions: aProgrammingLanguage)
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   446
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   447
    "Created: / 30-12-2009 / 18:14:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   448
    "Modified: / 30-12-2009 / 22:00:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   449
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   450
1121
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
   451
containerWriteStreamForExtensions: aProgrammingLanguage javaClass: aJavaClass
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
   452
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
   453
    ^self containerWriteStreamFor: 
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
   454
        ('java' , Filename separator , 'extensions' , Filename separator , 
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
   455
            ((aJavaClass name copyReplaceAll: $/ with: (Filename separator)) , '.' ,aProgrammingLanguage sourceFileSuffix))
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
   456
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
   457
    "Created: / 04-09-2012 / 23:17:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
   458
!
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
   459
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   460
containers
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   461
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   462
    ^(self path directoryContents 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   463
        select:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   464
            [:container|self containerSuffixes anySatisfy:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   465
                [:suffix|container endsWith:suffix]]) asSet
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   466
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   467
    "Created: / 23-03-2009 / 18:52:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   468
    "Modified: / 12-06-2009 / 21:44:06 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   469
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   470
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   471
containersToKeep
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   472
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   473
    | containers extensions |
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   474
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   475
    containers := self packageClasses 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   476
        collect:[:cls|self repository containerNameForClass: cls].
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   477
    (extensions := self packageExtensions) notEmpty ifTrue:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   478
        [| languages |
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   479
        languages :=  (extensions collect:[:each|each programmingLanguage]) asSet.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   480
        languages do:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   481
            [:lang|containers add: (Repository containerNameForExtensions: lang)]].    
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   482
    "Keep all directories"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   483
    path directoryContents do:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   484
        [:f|
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   485
        (f ~= '.svn' and: [(path / f) isDirectory]) ifTrue:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   486
            [containers add: f]].
905
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   487
    "Keep all .st files that are for with other operating systems"
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   488
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   489
    self packageDefinition classNamesAndAttributesDo: [:nm :attributes|
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   490
        attributes do:[:attr|
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   491
            (#(win32 unix vms autoload) includes: attr) ifTrue:[
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   492
                containers add: ((SVN::Repository containerNameWithoutSuffixForClassNamed: nm) , '.st')
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   493
            ]
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   494
        ]
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   495
    ].
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   496
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   497
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   498
    ^containers asSet.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   499
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   500
    "Created: / 12-06-2009 / 21:27:12 / Jan Vrany <vranyj1@fel.cvut.cz>"
905
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   501
    "Modified: / 28-09-2011 / 17:15:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   502
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   503
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   504
containersWriteStreamForClass:cls 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   505
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   506
    ^self containerWriteStreamFor: (repository containerNameForClass:cls)
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   507
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   508
    "Created: / 09-10-2008 / 20:23:59 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   509
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   510
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   511
!WorkingCopy methodsFor:'accessing - diff sets'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   512
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   513
diffSetBetweenImageAndWorkingCopy
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   514
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   515
    | imageChangeSet revisionChangeSet |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   516
    imageChangeSet := ChangeSet forPackage: self package ignoreAutoloaded: true.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   517
    revisionChangeSet := self changeSetIgnoreAutoloaded: true.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   518
    ^imageChangeSet diffSetsAgainst: revisionChangeSet
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   519
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   520
    "Created: / 24-03-2009 / 08:17:26 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   521
    "Modified: / 12-08-2009 / 14:32:03 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   522
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   523
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   524
!WorkingCopy methodsFor:'accessing - tasks'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   525
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   526
commitTask
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   527
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   528
    ^CommitTask new workingCopy: self
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   529
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   530
    "Created: / 23-03-2009 / 11:47:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   531
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   532
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   533
mergeTask
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   534
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   535
    ^MergeTask new workingCopy: self
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   536
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   537
    "Created: / 25-11-2009 / 17:16:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   538
!
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   539
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   540
updateTask
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   541
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   542
    ^UpdateTask new workingCopy: self
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   543
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   544
    "Created: / 24-03-2009 / 15:13:20 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   545
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   546
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   547
!WorkingCopy methodsFor:'commands'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   548
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   549
cat: file
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   550
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   551
    ^self cat: file revision: SVN::Revision head
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   552
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   553
    "Created: / 19-04-2008 / 10:52:22 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   554
    "Modified: / 09-10-2008 / 20:16:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   555
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   556
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   557
cat: file revision: revision
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   558
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   559
    ^CatCommand new
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   560
        workingCopy: self;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   561
        path: file;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   562
        revision: revision;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   563
        execute.
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   564
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   565
    "Created: / 19-04-2008 / 10:51:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   566
    "Modified: / 19-08-2009 / 10:00:59 / Jan Vrany <vranyj1@fel.cvut.cz>"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   567
    "Modified: / 02-01-2010 / 13:20:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   568
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   569
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   570
checkout
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   571
    |pkgDef|
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   572
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   573
    pkgDef := self packageDefinition.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   574
    self 
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   575
        checkout:(pkgDef ifNotNil:[ pkgDef svnRevision ] ifNil:[ SVN::Revision head ])
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   576
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   577
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   578
checkout:revision 
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   579
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   580
    "Checkout a working copy. If full is true, then
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   581
     full checkout is performed, i.e., whole subtree
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   582
     is checked out. If not, only project files and
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   583
     common subdirectories are check out"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   584
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   585
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   586
    ^self checkout: revision full: false
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   587
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   588
    "Created: / 31-03-2008 / 12:57:58 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   589
    "Modified: / 21-08-2009 / 17:45:43 / Jan Vrany <vranyj1@fel.cvut.cz>"
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   590
    "Modified: / 25-04-2011 / 15:19:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   591
!
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   592
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   593
checkout:revision full: full
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   594
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   595
    "Checkout a working copy. If full is true, then
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   596
     full checkout is performed, i.e., whole subtree
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   597
     is checked out. If not, only project files and
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   598
     common subdirectories are check out"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   599
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   600
    |checkoutInfo pkg |
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   601
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   602
    pkg := self package.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   603
    self 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   604
        synchronized:[
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   605
            self ensurePathExists.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   606
            ActivityNotification notify:'Checking out ' , pkg.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   607
            full ifTrue:[
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   608
                checkoutInfo := (CheckoutCommand new)
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   609
                                    revision:revision;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   610
                                    depth: 'infinity';
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   611
                                    workingCopy:self;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   612
                                    execute
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   613
            ] ifFalse:[
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   614
                "JV@2011-06-13: TODO: rewrite it so it does not set
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   615
                 inifinite depth on subpackages. This requires to
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   616
                 split this method..."
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   617
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   618
                | subdirs |
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   619
                checkoutInfo := (CheckoutCommand new)
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   620
                                    revision:revision;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   621
                                    depth: 'immediates';
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   622
                                    workingCopy:self;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   623
                                    execute.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   624
                "Checkout common subdirs"
1121
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
   625
                subdirs := #('resources' 'bitmaps' 'autopackage' 'builder' 'java')
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   626
                                select:[:e| (path / e) isDirectory].
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   627
                checkoutInfo addAll:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   628
                    (UpdateCommand new
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   629
                        workingCopy: self;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   630
                        setDepth: 'infinity';
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   631
                        paths: subdirs;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   632
                        execute
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   633
                    ).
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   634
                "Checkout nested packages"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   635
                subdirs := OrderedCollection new.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   636
                Smalltalk allProjectIDs do:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   637
                    [:each |
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   638
                    (each size > pkg size and:[(each at: pkg size + 1) == $/ and:[each startsWith: pkg]]) ifTrue:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   639
                        [subdirs add: ((each copyFrom: self package size + 2) replaceAll:$/ with: Filename separator)]].
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   640
                subdirs notEmpty ifTrue:[
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   641
                    subdirs := subdirs asSortedCollection:[:a :b| a size < b size].
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   642
                    checkoutInfo addAll:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   643
                        (UpdateCommand new
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   644
                            workingCopy: self;
970
821fe8d5f76d changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 905
diff changeset
   645
                            setDepth: 'empty';
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   646
                            paths: subdirs;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   647
                            execute
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   648
                    ).
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   649
                ]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   650
            ]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   651
        ].
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   652
    ^ checkoutInfo
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   653
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   654
    "Modified: / 21-08-2009 / 17:45:43 / Jan Vrany <vranyj1@fel.cvut.cz>"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   655
    "Created: / 25-04-2011 / 15:19:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1121
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
   656
    "Modified: / 04-09-2012 / 23:25:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   657
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   658
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   659
cleanup
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   660
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   661
    self ensurePathExists.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   662
    self isValid ifFalse:[^self].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   663
    ^CleanupCommand new
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   664
        workingCopy: self path;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   665
        execute.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   666
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   667
    "Created: / 08-11-2008 / 08:12:50 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   668
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   669
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   670
commit:message 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   671
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   672
    ^self commitTask
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   673
        message: message;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   674
        do
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   675
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   676
    "Created: / 31-03-2008 / 13:11:15 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   677
    "Modified: / 07-04-2008 / 08:52:13 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   678
    "Modified: / 23-03-2009 / 11:48:06 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   679
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   680
1065
35d1106a2336 added: #commit:files:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1063
diff changeset
   681
commit:message files: files
35d1106a2336 added: #commit:files:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1063
diff changeset
   682
35d1106a2336 added: #commit:files:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1063
diff changeset
   683
    ^self commitTask
35d1106a2336 added: #commit:files:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1063
diff changeset
   684
        message: message;
35d1106a2336 added: #commit:files:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1063
diff changeset
   685
        paths: files;
35d1106a2336 added: #commit:files:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1063
diff changeset
   686
        do
35d1106a2336 added: #commit:files:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1063
diff changeset
   687
35d1106a2336 added: #commit:files:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1063
diff changeset
   688
    "Created: / 31-03-2008 / 13:11:15 / janfrog"
35d1106a2336 added: #commit:files:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1063
diff changeset
   689
    "Modified: / 07-04-2008 / 08:52:13 / janfrog"
35d1106a2336 added: #commit:files:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1063
diff changeset
   690
    "Modified: / 23-03-2009 / 11:48:06 / Jan Vrany <vranyj1@fel.cvut.cz>"
35d1106a2336 added: #commit:files:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1063
diff changeset
   691
    "Created: / 14-03-2012 / 17:15:25 / jv"
35d1106a2336 added: #commit:files:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1063
diff changeset
   692
!
35d1106a2336 added: #commit:files:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1063
diff changeset
   693
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   694
info: paths
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   695
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   696
    ^SVN::InfoCommand new
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   697
        workingCopy: self;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   698
        paths: paths;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   699
        execute
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   700
!
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   701
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   702
log
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   703
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   704
    ^self branch log
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   705
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   706
    "Created: / 19-04-2008 / 10:52:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   707
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   708
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   709
log: aString
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   710
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   711
    ^self branch log: aString
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   712
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   713
    "Created: / 19-04-2008 / 10:53:06 / 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
revert
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   717
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   718
    self ensurePathExists.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   719
    self isValid ifFalse:[^self checkout].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   720
    ^RevertCommand new
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   721
        workingCopy: self path;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   722
        execute.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   723
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   724
    "Created: / 22-10-2008 / 16:46:18 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   725
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   726
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   727
revert: containers
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   728
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   729
    | revertInfo |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   730
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   731
    self ensurePathExists.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   732
    self isValid ifFalse:[^self checkout].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   733
    self synchronized:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   734
        [revertInfo := RevertCommand new
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   735
                            workingCopy: self;
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   736
                            paths: containers;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   737
                            execute].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   738
    ^revertInfo
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   739
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   740
    "Created: / 03-11-2008 / 21:20:38 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   741
    "Modified: / 07-11-2008 / 08:54:38 / Jan Vrany <vranyj1@fel.cvut.cz>"
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   742
    "Modified: / 05-12-2009 / 20:16:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   743
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   744
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   745
status
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   746
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   747
    | status |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   748
    self ensureIsValid.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   749
    self synchronized:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   750
        [status := StatusCommand new
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   751
                    workingCopy: self;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   752
                    execute].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   753
    ^status
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   754
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   755
    "Created: / 11-04-2008 / 09:22:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   756
    "Modified: / 19-08-2009 / 14:35:49 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   757
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   758
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   759
update
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   760
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   761
    | updateInfo |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   762
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   763
    self ensurePathExists.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   764
    self isValid ifFalse:[^self checkout].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   765
    self synchronized:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   766
        [updateInfo := UpdateCommand new
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   767
                            workingCopy: self path;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   768
                            execute].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   769
    ^updateInfo
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   770
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   771
    "Created: / 21-05-2008 / 09:44:56 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   772
    "Modified: / 19-08-2009 / 12:25:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   773
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   774
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   775
!WorkingCopy methodsFor:'error reporting'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   776
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   777
error
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   778
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   779
    self error:'Unknown error'
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   780
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   781
    "Created: / 31-03-2008 / 12:44:06 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   782
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   783
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   784
error: aString
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   785
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   786
    WCError raiseWith:#error: errorString:aString
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   787
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   788
    "Created: / 31-03-2008 / 12:43:51 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   789
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   790
795
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   791
!WorkingCopy methodsFor:'inspecting'!
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   792
1043
63ec5f7c5762 Added #browse
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1027
diff changeset
   793
browse
63ec5f7c5762 Added #browse
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1027
diff changeset
   794
    "Opens a file browser on the working copy"
63ec5f7c5762 Added #browse
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1027
diff changeset
   795
63ec5f7c5762 Added #browse
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1027
diff changeset
   796
    UserPreferences current fileBrowserClass
63ec5f7c5762 Added #browse
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1027
diff changeset
   797
        openOnDirectory: path asFilename
63ec5f7c5762 Added #browse
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1027
diff changeset
   798
63ec5f7c5762 Added #browse
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1027
diff changeset
   799
    "Created: / 04-02-2012 / 17:14:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
63ec5f7c5762 Added #browse
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1027
diff changeset
   800
!
63ec5f7c5762 Added #browse
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1027
diff changeset
   801
795
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   802
inspector2TabBrowser
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   803
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   804
    self exists ifTrue:[
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   805
        ^self newInspector2Tab
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   806
           label: 'Working copy';
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   807
            priority: 35;
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   808
            application: (SVN::WorkingCopyBrowser on: self)
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   809
    ] ifFalse:[
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   810
        ^self newInspector2Tab
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   811
           label: 'Working copy';
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   812
           priority: 35;
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   813
           view: (Label new label:'Not yet checked out'; yourself)    
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   814
    ]
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   815
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   816
    "Modified: / 14-04-2011 / 17:42:02 / Jan Vrany <jan.vrany@fit.cvut.cz>"
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   817
    "Modified: / 13-09-2011 / 11:56:28 / cg"
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   818
! !
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   819
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   820
!WorkingCopy methodsFor:'private'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   821
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   822
branchFromQuery
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   823
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   824
    ^BranchQuery new 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   825
        repository: repository;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   826
        raiseRequest.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   827
!
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   828
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   829
branchFromWorkingCopy
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   830
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   831
    | info bpath |
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   832
    info := (self info:#('.')) anyOne.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   833
    bpath := info url copyFrom: info root size + 1.
1006
f318a4c6a09d Improvements for CommitDialog2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   834
    repository isNil ifTrue:[
f318a4c6a09d Improvements for CommitDialog2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   835
        repository := Repository package: nil url: info root.
f318a4c6a09d Improvements for CommitDialog2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   836
    ].
f318a4c6a09d Improvements for CommitDialog2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   837
    ^path isEmptyOrNil
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   838
        ifTrue:[nil]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   839
        ifFalse:[Branch repository: repository path: bpath].
1006
f318a4c6a09d Improvements for CommitDialog2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   840
f318a4c6a09d Improvements for CommitDialog2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   841
    "Modified: / 08-02-2012 / 18:20:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   842
!
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   843
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   844
commited
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   845
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   846
    packageExtensionsChanged := false.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   847
    packageClassesChanged := false.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   848
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   849
    "Created: / 13-08-2009 / 10:23:19 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   850
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   851
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   852
computePackageClassesChanged
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   853
    "
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   854
        Answers true iff package classes differs from
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   855
        those listed in ProjectDefinition>>classNamesAndAttributes"
1123
68bc201d0f7e changed: #computePackageClassesChanged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1121
diff changeset
   856
68bc201d0f7e changed: #computePackageClassesChanged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1121
diff changeset
   857
    |listedClasses realClasses pkgDef |
68bc201d0f7e changed: #computePackageClassesChanged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1121
diff changeset
   858
68bc201d0f7e changed: #computePackageClassesChanged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1121
diff changeset
   859
    (pkgDef := self packageDefinition) isNil ifTrue:[^true].
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   860
1123
68bc201d0f7e changed: #computePackageClassesChanged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1121
diff changeset
   861
    listedClasses :=    pkgDef compiled_classNames_common ,
68bc201d0f7e changed: #computePackageClassesChanged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1121
diff changeset
   862
                        pkgDef compiled_classNamesForPlatform ,
68bc201d0f7e changed: #computePackageClassesChanged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1121
diff changeset
   863
                        pkgDef autoloaded_classNames.
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   864
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   865
    realClasses := self  packageClasses collect:[:cls | cls fullName ].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   866
    listedClasses size ~= realClasses size 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   867
        ifTrue:[^ true].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   868
    (realClasses allSatisfy:[:realClass | listedClasses includes:realClass ])
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   869
        ifFalse:[^true].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   870
    ^false
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   871
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   872
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   873
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   874
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   875
    "
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   876
        (CommitTask new package: 'stx:libsvn')
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   877
            computePackageClassesChanged
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   878
        (CommitTask new package: 'cvut:fel/smallruby')
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   879
            computePackageClassesChanged
1123
68bc201d0f7e changed: #computePackageClassesChanged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1121
diff changeset
   880
        (SVN::RepositoryManager workingCopyForPackage: #'stx:libbasic')
68bc201d0f7e changed: #computePackageClassesChanged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1121
diff changeset
   881
            computePackageClassesChanged 
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   882
    "
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   883
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   884
    "Created: / 16-06-2009 / 10:08:28 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   885
    "Modified: / 18-08-2009 / 10:47:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
1123
68bc201d0f7e changed: #computePackageClassesChanged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1121
diff changeset
   886
    "Modified (comment): / 07-09-2012 / 11:43:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   887
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   888
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   889
computePackageExtensionsChanged
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   890
    "
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   891
        Answers true iff package extension method differs from
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   892
        those listed in ProjectDefinition>>extensionMethodNames"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   893
    
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   894
    |listedExtensions listedExtensionsDictionary realExtensions|
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   895
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   896
    realExtensions := self  packageExtensions.
1101
ffc2b5e1104f comment/format in: #computePackageExtensionsChanged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1065
diff changeset
   897
    listedExtensions := self packageDefinition 
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   898
                extensionMethodNames.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   899
    (listedExtensions size / 2) ~= realExtensions size ifTrue:[
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   900
        ^ true
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   901
    ].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   902
    listedExtensionsDictionary := Dictionary new.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   903
    listedExtensions 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   904
        pairWiseDo:[:className :selector | 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   905
            (listedExtensionsDictionary at:className
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   906
                ifAbsentPut:[ OrderedCollection new ]) add:selector
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   907
        ].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   908
    ^ (realExtensions 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   909
        allSatisfy:[:mth | 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   910
            (listedExtensionsDictionary includesKey:mth mclass name) 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   911
                and:[ (listedExtensionsDictionary at:mth mclass name) includes:mth selector ]
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   912
        ]) 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   913
            not
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   914
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   915
    "
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   916
        (CommitTask new package: 'stx:libsvn')
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   917
            packageExtensionsHasChanged"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   918
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   919
    "Created: / 16-06-2009 / 10:11:01 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   920
    "Modified: / 13-08-2009 / 10:27:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
1101
ffc2b5e1104f comment/format in: #computePackageExtensionsChanged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1065
diff changeset
   921
    "Modified (format): / 04-05-2012 / 17:12:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   922
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   923
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   924
ensureIsValid
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   925
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   926
    self isValid ifFalse:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   927
        [self checkout].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   928
    self isValid ifFalse:[self error:'Cannot create working copy']
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   929
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   930
    "Created: / 08-04-2008 / 14:19:28 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   931
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   932
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   933
ensureMethodsHasAbsoluteSourceFiles
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   934
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   935
    Smalltalk allClassesDo:
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   936
        [:cls| | tryLocalSourceFirst makeLocalSource |
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   937
        makeLocalSource :=  
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   938
            [:mth|
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   939
            mth package = self package ifTrue:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   940
                [mth makeSourceFileAbsolute]].
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   941
        tryLocalSourceFirst := Class tryLocalSourceFirst.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   942
        Class tryLocalSourceFirst: true.
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   943
        cls methodsDo: makeLocalSource.
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   944
        cls class methodsDo: makeLocalSource.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   945
        Class tryLocalSourceFirst: tryLocalSourceFirst.].
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   946
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   947
    "Created: / 21-08-2009 / 17:33:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   948
    "Modified: / 09-01-2010 / 16:07:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   949
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   950
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   951
ensurePathExists
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   952
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   953
     [path exists ifFalse:
1063
75f4338d821a changed: #ensurePathExists
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1043
diff changeset
   954
        ["/self ensureMethodsHasAbsoluteSourceFiles.
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   955
        path recursiveMakeDirectory
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   956
        ]]
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   957
        on: Smalltalk::Error do:[:ex|self error:'Cannot create working copy'].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   958
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   959
    "Created: / 08-04-2008 / 14:26:56 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   960
    "Modified: / 21-08-2009 / 17:46:05 / Jan Vrany <vranyj1@fel.cvut.cz>"
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   961
    "Modified: / 09-01-2010 / 16:07:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1063
75f4338d821a changed: #ensurePathExists
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1043
diff changeset
   962
    "Modified: / 14-03-2012 / 11:17:21 / jv"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   963
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   964
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   965
!WorkingCopy methodsFor:'private - file out'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   966
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   967
fileOutClass:cls
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   968
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   969
    |stream|
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   970
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   971
    [stream := self  containersWriteStreamForClass:cls.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   972
    self fileOutClass:cls on:stream]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   973
        ensure:[ stream ifNotNil:[ stream close ]]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   974
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   975
    "Modified: / 11-06-2009 / 16:18:19 / Jan Vrany <vranyj1@fel.cvut.cz>"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   976
    "Created: / 30-12-2009 / 19:04:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   977
!
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   978
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   979
fileOutClass:cls on:clsStream
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   980
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   981
"/    cls methodDictionary do:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   982
"/        [:each|each makeLocalStringSource].
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   983
"/
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   984
"/    cls class methodDictionary do:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   985
"/        [:each|each makeLocalStringSource].
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   986
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   987
    SVNSourceCodeManager
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   988
                fileOutSourceCodeOf:cls 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   989
                                 on:clsStream 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   990
                      withTimeStamp:false 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   991
                     withInitialize:true 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   992
                     withDefinition:true
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   993
                       methodFilter:[:mth | mth package = self package ]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   994
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   995
    "
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   996
        String streamContents:[:s|
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   997
            (SVN::RepositoryManager repositoryForPackage: Setup::ML package)
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   998
                workingCopy
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   999
                fileOutClass: Setup::ML on: s
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1000
        ]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1001
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1002
    "
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1003
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1004
    "Created: / 19-04-2008 / 09:58:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1005
    "Modified: / 11-06-2009 / 16:18:19 / Jan Vrany <vranyj1@fel.cvut.cz>"
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1006
    "Modified: / 07-07-2011 / 20:21:59 / jv"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1007
    "Modified (format): / 07-07-2011 / 20:29:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1008
!
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1009
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1010
fileOutExtensions: extensionMethods
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1011
1121
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1012
    ^self fileOutExtensions: extensionMethods in: self path
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1013
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1014
    "Created: / 30-12-2009 / 19:01:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1015
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1016
1121
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1017
fileOutExtensions: extensionMethods in: directory
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1018
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1019
    ProgrammingLanguage all do:[:lang| 
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1020
        | stream methods |
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1021
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1022
        methods := extensionMethods select:[:mth|mth programmingLanguage = lang].
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1023
        methods notEmpty ifTrue: [
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1024
            ActivityNotification notify:'Filing out extension methods (', lang name , ')'.
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1025
            self fileOutExtensions: methods in: directory language: lang
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1026
        ]
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1027
    ]
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1028
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1029
    "Created: / 04-09-2012 / 22:56:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1030
!
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1031
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1032
fileOutExtensions: extensionMethods in: directory language: lang
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1033
    "Given a directory, files out extensions methods in given language.
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1034
     Takes care about Java extensions, as they are filed out separately
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1035
     in per-classe .st file in <package dir>/java/extensions/<package>/<java classname>.st"
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1036
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1037
    | stream nonJavaExtensionsMethod javaExtensionsMethods |
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1038
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1039
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1040
    stream := self containerWriteStreamForExtensions: lang.
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1041
    [
1132
00958c45023c fixed #fileOutExtensions:in:language: (filing out of Java extensions)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1123
diff changeset
  1042
        nonJavaExtensionsMethod := extensionMethods reject:[:each|each mclass theNonMetaclass isJavaClass].
1121
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1043
        self fileOutExtensions: nonJavaExtensionsMethod on: stream language: lang.
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1044
    ] ensure:[
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1045
        stream close
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1046
    ].
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1047
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1048
    javaExtensionsMethods := Dictionary new.
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1049
    extensionMethods do:[:mthd|
1132
00958c45023c fixed #fileOutExtensions:in:language: (filing out of Java extensions)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1123
diff changeset
  1050
        mthd mclass  theNonMetaclass isJavaClass ifTrue:[
1121
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1051
            (javaExtensionsMethods at: mthd mclass ifAbsentPut:[OrderedCollection new]) add: mthd.
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1052
        ].
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1053
    ].
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1054
    javaExtensionsMethods keysAndValuesDo:[:cls :methods|
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1055
        [
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1056
            stream := self containerWriteStreamForExtensions: lang javaClass: cls.
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1057
            self fileOutExtensions: methods on: stream language: lang.
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1058
        ] ensure:[
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1059
            stream close.
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1060
        ]
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1061
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1062
    ]
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1063
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1064
    "Created: / 04-09-2012 / 23:05:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1132
00958c45023c fixed #fileOutExtensions:in:language: (filing out of Java extensions)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1123
diff changeset
  1065
    "Modified: / 05-11-2012 / 00:09:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1121
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1066
!
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1067
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1068
fileOutExtensions: extensionMethods on:stream language: language 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1069
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1070
    extensionMethods do:[:each|each makeLocalStringSource].
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1071
973
3cbefbe6ddc2 changed: #fileOutExtensions:on:language:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 970
diff changeset
  1072
    "Special hack for Smalltalk - use SourceCodeManager routine"
1121
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1073
    (language isSmalltalk and:[extensionMethods anyOne mclass isJavaClass not]) ifTrue:[
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1074
        SVNSourceCodeManager fileOutSourceCodeExtensions: extensionMethods package: self package on: stream.
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1075
        ^self.
973
3cbefbe6ddc2 changed: #fileOutExtensions:on:language:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 970
diff changeset
  1076
    ].
3cbefbe6ddc2 changed: #fileOutExtensions:on:language:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 970
diff changeset
  1077
3cbefbe6ddc2 changed: #fileOutExtensions:on:language:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 970
diff changeset
  1078
    "/ Generic fileout "
3cbefbe6ddc2 changed: #fileOutExtensions:on:language:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 970
diff changeset
  1079
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1080
    language sourceFileWriterClass new
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1081
        fileOutPackageDefinition: self package on: stream;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1082
        fileOutMethods: extensionMethods on: stream
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1083
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1084
    "Modified: / 15-06-2009 / 11:55:26 / Jan Vrany <vranyj1@fel.cvut.cz>"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1085
    "Created: / 30-12-2009 / 19:01:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1121
58f2f87dd37e Support for Java extension methods
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1101
diff changeset
  1086
    "Modified: / 04-09-2012 / 23:48:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1087
! !
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1088
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1089
!WorkingCopy methodsFor:'queries'!
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1090
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1091
exists
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1092
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1093
    ^self isValid
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1094
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1095
    "Created: / 09-12-2010 / 23:36:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1096
!
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1097
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1098
hasBranch
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1099
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1100
    branch ifNotNil:[^true].
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1101
    ^repository preferredBranch 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1102
        ifNotNil:[self branchOrNil notNil]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1103
        ifNil:[repository branches size == 1]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1104
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1105
    "Modified: / 29-03-2010 / 13:57:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1106
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1107
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1108
!WorkingCopy methodsFor:'testing'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1109
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1110
isValid
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1111
1101
ffc2b5e1104f comment/format in: #computePackageExtensionsChanged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1065
diff changeset
  1112
    | svnMetadataDir contents |
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1113
970
821fe8d5f76d changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 905
diff changeset
  1114
    svnMetadataDir := self path / '.svn'.
821fe8d5f76d changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 905
diff changeset
  1115
    svnMetadataDir exists ifFalse:[ ^false ].
821fe8d5f76d changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 905
diff changeset
  1116
    (svnMetadataDir / 'entries') exists  ifFalse:[ ^false ].
821fe8d5f76d changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 905
diff changeset
  1117
    (svnMetadataDir / 'text-base') exists ifFalse:[ ^false ].
821fe8d5f76d changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 905
diff changeset
  1118
1101
ffc2b5e1104f comment/format in: #computePackageExtensionsChanged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1065
diff changeset
  1119
    ((contents := self path directoryContents) size = 1 
ffc2b5e1104f comment/format in: #computePackageExtensionsChanged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1065
diff changeset
  1120
        and:[contents anElement ~= '.svn']) ifTrue:[ ^ false ].
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1121
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1122
    ^true
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1123
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1124
    "Created: / 08-04-2008 / 14:17:03 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1125
    "Modified: / 16-07-2009 / 13:57:03 / Jan Vrany <vranyj1@fel.cvut.cz>"
1101
ffc2b5e1104f comment/format in: #computePackageExtensionsChanged
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1065
diff changeset
  1126
    "Modified: / 04-05-2012 / 17:12:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1127
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1128
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1129
!WorkingCopy class methodsFor:'documentation'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1130
905
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
  1131
version
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
  1132
    ^ '$Header$'
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
  1133
!
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
  1134
137
c262be330384 changed: #version_SVN
fm
parents: 57
diff changeset
  1135
version_SVN
905
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
  1136
    ^ '§Id: SVN__WorkingCopy.st 371 2011-09-28 18:47:07Z vranyj1 §'
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1137
! !