SVN__WorkingCopy.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 14 Mar 2012 18:46:28 +0100
changeset 1065 35d1106a2336
parent 1063 75f4338d821a
child 1101 ffc2b5e1104f
permissions -rw-r--r--
added: #commit:files:
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
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   232
    ^ Smalltalk 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   233
        at:(ProjectDefinition initialClassNameForDefinitionOf:self package) 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   234
                asSymbol.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   235
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   236
    "Created: / 15-06-2009 / 12:41:20 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   237
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   238
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   239
packageExtensions
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   240
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   241
    ^ProjectDefinition searchForExtensionsWithProject: self package
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   242
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   243
    "Created: / 31-03-2008 / 13:06:13 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   244
    "Modified: / 11-04-2008 / 08:25:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   245
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   246
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   247
packageExtensionsChanged
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   248
    packageExtensionsChanged :=
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   249
        (packageExtensionsChanged == true)
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   250
            or:[self computePackageExtensionsChanged].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   251
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   252
    ^ packageExtensionsChanged
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   253
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   254
    "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
   255
    "Modified: / 21-04-2010 / 23:30:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   256
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   257
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   258
packageExtensionsFiltered:aBlock
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   259
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   260
    ^self packageExtensions select:aBlock
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   261
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   262
    "Created: / 11-06-2009 / 13:37:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   263
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   264
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   265
path
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   266
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   267
    ^ path
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   268
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   269
    "Created: / 31-03-2008 / 12:42:42 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   270
    "Modified: / 21-08-2009 / 17:47:30 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   271
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   272
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   273
path:aStringOrFilename
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   274
    path := aStringOrFilename asFilename.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   275
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   276
    "Created: / 31-03-2008 / 12:42:42 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   277
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   278
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   279
pathBase
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   280
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   281
    ^self manager workingCopyBase.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   282
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   283
    "Created: / 11-06-2009 / 13:32:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   284
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   285
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   286
repository
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   287
    ^ repository
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   288
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   289
    "Created: / 31-03-2008 / 12:42:22 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   290
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   291
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   292
repository:aRepository
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   293
    repository := aRepository.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   294
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   295
    "Created: / 31-03-2008 / 12:42:22 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   296
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   297
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   298
url
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   299
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   300
    ^branch url
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   301
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   302
    "Created: / 31-03-2008 / 13:05:01 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   303
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   304
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   305
!WorkingCopy methodsFor:'accessing - change sets'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   306
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   307
changeSet
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   308
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   309
    ^self changeSetIgnoreAutoloaded: false
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   310
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   311
    "Created: / 23-03-2009 / 18:57:16 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   312
    "Modified: / 12-08-2009 / 14:26:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   313
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   314
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   315
changeSetForContainer: containerName
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   316
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   317
    ^(ChangeSet fromStream:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   318
        (self containerReadStreamFor: containerName))
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   319
        name: containerName;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   320
        yourself
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   321
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   322
    "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
   323
    "Modified: / 07-07-2011 / 21:47:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   324
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   325
1027
1f9bcfa5013b - added compare against HEAD & compare against BASE
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1006
diff changeset
   326
changeSetForContainer: containerName revision: rev
1f9bcfa5013b - added compare against HEAD & compare against BASE
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1006
diff changeset
   327
    | containerContents |
1f9bcfa5013b - added compare against HEAD & compare against BASE
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1006
diff changeset
   328
1f9bcfa5013b - added compare against HEAD & compare against BASE
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1006
diff changeset
   329
    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
   330
    ^(ChangeSet fromStream: containerContents readStream)
1f9bcfa5013b - added compare against HEAD & compare against BASE
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1006
diff changeset
   331
        name: containerName , ' (' , rev printString , ')';
1f9bcfa5013b - added compare against HEAD & compare against BASE
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1006
diff changeset
   332
        yourself
1f9bcfa5013b - added compare against HEAD & compare against BASE
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1006
diff changeset
   333
1f9bcfa5013b - added compare against HEAD & compare against BASE
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1006
diff changeset
   334
    "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
   335
!
1f9bcfa5013b - added compare against HEAD & compare against BASE
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1006
diff changeset
   336
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   337
changeSetForUpdate
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   338
    |diffSet classesToRemove|
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   339
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   340
    diffSet := self diffSetBetweenImageAndWorkingCopy.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   341
    classesToRemove := Set new.
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   342
    ActivityNotification notify:'Computing update change set'.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   343
     "self = image, arg = revision"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   344
    ^ (diffSet onlyInArg) 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   345
        , (diffSet changed collect:[:changePair | changePair second ]) 
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   346
            , (diffSet onlyInReceiver 
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   347
                    select:[:change | change isClassDefinitionChange ]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   348
                    thenCollect:[:change | 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   349
                        classesToRemove add:change className.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   350
                        ClassRemoveChange className:change className
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   351
                    ]) 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   352
            , (diffSet onlyInReceiver 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   353
                    select:[:change | 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   354
                        change isMethodDefinitionChange 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   355
                            and:[ (classesToRemove includes:change className) not ]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   356
                    ]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   357
                    thenCollect:[:change | 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   358
                        MethodRemoveChange className:change className selector:change selector
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   359
                    ])
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   360
                 "Created: / 24-03-2009 / 08:17:19 / Jan Vrany <vranyj1@fel.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   361
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   362
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   363
changeSetIgnoreAutoloaded: ignoreAutoloaded
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   364
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   365
    | containersToIgnore changeSet |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   366
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   367
    containersToIgnore :=
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   368
        (self packageClassesFiltered:[:cls|cls isLoaded not])
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   369
            collect:[:cls|repository containerNameForClass: cls].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   370
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   371
    changeSet := ChangeSet new.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   372
    self containers do:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   373
        [:container |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   374
        (containersToIgnore includes: container)
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   375
            ifFalse:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   376
                [changeSet addAll: 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   377
                    (self changeSetForContainer: container)]].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   378
    ^changeSet
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   379
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   380
    "Created: / 12-08-2009 / 14:26:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   381
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   382
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   383
!WorkingCopy methodsFor:'accessing - containers'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   384
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   385
containerFilenameFor: containerName
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   386
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   387
    ^self path construct: containerName
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   388
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   389
    "Created: / 09-10-2008 / 20:25:02 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   390
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   391
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   392
containerReadStreamFor: containerName
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   393
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   394
    | containerFile containerStream |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   395
    containerFile := self containerFilenameFor: containerName. 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   396
    OperatingSystem isMSWINDOWSlike
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   397
        ifTrue:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   398
            ["
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   399
            Dirty hack for MS Windows:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   400
            Windows do not allow me to open some files for the first
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   401
            time (OpenError is raised). Second try after some time is usually OK.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   402
            I don't know why this happens. Claus, do you have any idea?
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   403
            "
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   404
            [ containerStream := containerFile readStream ]
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   405
                on: OpenError do: 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   406
                    [Delay waitForMilliseconds: 100. "A magic constant here :-("
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   407
                    containerStream := containerFile readStream]]
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   408
        ifFalse:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   409
            ["
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   410
            Unix behaves pretty fine :-)
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   411
            "
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   412
            containerStream := containerFile readStream].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   413
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   414
    ^containerStream
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   415
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   416
    "Created: / 09-10-2008 / 20:26:03 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   417
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   418
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   419
containerSuffixes
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   420
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   421
    ^ProgrammingLanguage all collect:[:each|each sourceFileSuffix]
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   422
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   423
    "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
   424
    "Modified: / 30-12-2009 / 18:15:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   425
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   426
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   427
containerWriteStreamFor: containerName
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   428
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   429
    ^(self containerFilenameFor: containerName) writeStream
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   430
        eolMode: #nl;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   431
        yourself
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   432
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   433
    "Created: / 09-10-2008 / 20:24:44 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   434
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   435
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   436
containerWriteStreamForExtensions: aProgrammingLanguage
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   437
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   438
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   439
    ^self containerWriteStreamFor: 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   440
        (Repository containerNameForExtensions: aProgrammingLanguage)
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   441
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   442
    "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
   443
    "Modified: / 30-12-2009 / 22:00:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   444
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   445
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   446
containers
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   447
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   448
    ^(self path directoryContents 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   449
        select:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   450
            [:container|self containerSuffixes anySatisfy:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   451
                [:suffix|container endsWith:suffix]]) asSet
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   452
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   453
    "Created: / 23-03-2009 / 18:52:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   454
    "Modified: / 12-06-2009 / 21:44:06 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   455
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   456
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   457
containersToKeep
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   458
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   459
    | containers extensions |
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   460
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   461
    containers := self packageClasses 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   462
        collect:[:cls|self repository containerNameForClass: cls].
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   463
    (extensions := self packageExtensions) notEmpty ifTrue:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   464
        [| languages |
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   465
        languages :=  (extensions collect:[:each|each programmingLanguage]) asSet.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   466
        languages do:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   467
            [:lang|containers add: (Repository containerNameForExtensions: lang)]].    
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   468
    "Keep all directories"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   469
    path directoryContents do:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   470
        [:f|
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   471
        (f ~= '.svn' and: [(path / f) isDirectory]) ifTrue:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   472
            [containers add: f]].
905
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   473
    "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
   474
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   475
    self packageDefinition classNamesAndAttributesDo: [:nm :attributes|
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   476
        attributes do:[:attr|
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   477
            (#(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
   478
                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
   479
            ]
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   480
        ]
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   481
    ].
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
   482
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   483
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   484
    ^containers asSet.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   485
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   486
    "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
   487
    "Modified: / 28-09-2011 / 17:15:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   488
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   489
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   490
containersWriteStreamForClass:cls 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   491
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   492
    ^self containerWriteStreamFor: (repository containerNameForClass:cls)
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   493
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   494
    "Created: / 09-10-2008 / 20:23:59 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   495
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   496
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   497
!WorkingCopy methodsFor:'accessing - diff sets'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   498
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   499
diffSetBetweenImageAndWorkingCopy
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   500
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   501
    | imageChangeSet revisionChangeSet |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   502
    imageChangeSet := ChangeSet forPackage: self package ignoreAutoloaded: true.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   503
    revisionChangeSet := self changeSetIgnoreAutoloaded: true.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   504
    ^imageChangeSet diffSetsAgainst: revisionChangeSet
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   505
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   506
    "Created: / 24-03-2009 / 08:17:26 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   507
    "Modified: / 12-08-2009 / 14:32:03 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   508
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   509
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   510
!WorkingCopy methodsFor:'accessing - tasks'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   511
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   512
commitTask
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   513
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   514
    ^CommitTask new workingCopy: self
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   515
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   516
    "Created: / 23-03-2009 / 11:47:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   517
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   518
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   519
mergeTask
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   520
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   521
    ^MergeTask new workingCopy: self
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   522
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   523
    "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
   524
!
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   525
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   526
updateTask
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   527
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   528
    ^UpdateTask new workingCopy: self
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   529
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   530
    "Created: / 24-03-2009 / 15:13:20 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   531
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   532
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   533
!WorkingCopy methodsFor:'commands'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   534
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   535
cat: file
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   536
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   537
    ^self cat: file revision: SVN::Revision head
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   538
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   539
    "Created: / 19-04-2008 / 10:52:22 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   540
    "Modified: / 09-10-2008 / 20:16:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   541
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   542
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   543
cat: file revision: revision
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   544
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   545
    ^CatCommand new
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   546
        workingCopy: self;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   547
        path: file;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   548
        revision: revision;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   549
        execute.
57
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
    "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
   552
    "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
   553
    "Modified: / 02-01-2010 / 13:20:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   554
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   555
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   556
checkout
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   557
    |pkgDef|
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   558
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   559
    pkgDef := self packageDefinition.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   560
    self 
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   561
        checkout:(pkgDef ifNotNil:[ pkgDef svnRevision ] ifNil:[ SVN::Revision head ])
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   562
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   563
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   564
checkout:revision 
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   565
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   566
    "Checkout a working copy. If full is true, then
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   567
     full checkout is performed, i.e., whole subtree
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   568
     is checked out. If not, only project files and
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   569
     common subdirectories are check out"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   570
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   571
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   572
    ^self checkout: revision full: false
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   573
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   574
    "Created: / 31-03-2008 / 12:57:58 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   575
    "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
   576
    "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
   577
!
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   578
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   579
checkout:revision full: full
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   580
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   581
    "Checkout a working copy. If full is true, then
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   582
     full checkout is performed, i.e., whole subtree
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   583
     is checked out. If not, only project files and
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   584
     common subdirectories are check out"
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
    |checkoutInfo pkg |
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   587
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   588
    pkg := self package.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   589
    self 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   590
        synchronized:[
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   591
            self ensurePathExists.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   592
            ActivityNotification notify:'Checking out ' , pkg.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   593
            full ifTrue:[
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   594
                checkoutInfo := (CheckoutCommand new)
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   595
                                    revision:revision;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   596
                                    depth: 'infinity';
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   597
                                    workingCopy:self;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   598
                                    execute
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   599
            ] ifFalse:[
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   600
                "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
   601
                 inifinite depth on subpackages. This requires to
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   602
                 split this method..."
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   603
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   604
                | subdirs |
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   605
                checkoutInfo := (CheckoutCommand new)
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   606
                                    revision:revision;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   607
                                    depth: 'immediates';
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   608
                                    workingCopy:self;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   609
                                    execute.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   610
                "Checkout common subdirs"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   611
                subdirs := #('resources' 'bitmaps' 'autopackage' 'builder')
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   612
                                select:[:e| (path / e) isDirectory].
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   613
                checkoutInfo addAll:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   614
                    (UpdateCommand new
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   615
                        workingCopy: self;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   616
                        setDepth: 'infinity';
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   617
                        paths: subdirs;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   618
                        execute
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   619
                    ).
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   620
                "Checkout nested packages"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   621
                subdirs := OrderedCollection new.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   622
                Smalltalk allProjectIDs do:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   623
                    [:each |
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   624
                    (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
   625
                        [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
   626
                subdirs notEmpty ifTrue:[
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   627
                    subdirs := subdirs asSortedCollection:[:a :b| a size < b size].
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   628
                    checkoutInfo addAll:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   629
                        (UpdateCommand new
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   630
                            workingCopy: self;
970
821fe8d5f76d changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 905
diff changeset
   631
                            setDepth: 'empty';
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   632
                            paths: subdirs;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   633
                            execute
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   634
                    ).
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   635
                ]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   636
            ]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   637
        ].
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   638
    ^ checkoutInfo
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   639
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   640
    "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
   641
    "Created: / 25-04-2011 / 15:19:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
970
821fe8d5f76d changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 905
diff changeset
   642
    "Modified (format): / 24-01-2012 / 18:05:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   643
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   644
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   645
cleanup
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   646
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   647
    self ensurePathExists.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   648
    self isValid ifFalse:[^self].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   649
    ^CleanupCommand new
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   650
        workingCopy: self path;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   651
        execute.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   652
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   653
    "Created: / 08-11-2008 / 08:12:50 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   654
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   655
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   656
commit:message 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   657
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   658
    ^self commitTask
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   659
        message: message;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   660
        do
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   661
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   662
    "Created: / 31-03-2008 / 13:11:15 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   663
    "Modified: / 07-04-2008 / 08:52:13 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   664
    "Modified: / 23-03-2009 / 11:48:06 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   665
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   666
1065
35d1106a2336 added: #commit:files:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1063
diff changeset
   667
commit:message files: files
35d1106a2336 added: #commit:files:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1063
diff changeset
   668
35d1106a2336 added: #commit:files:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1063
diff changeset
   669
    ^self commitTask
35d1106a2336 added: #commit:files:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1063
diff changeset
   670
        message: message;
35d1106a2336 added: #commit:files:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1063
diff changeset
   671
        paths: files;
35d1106a2336 added: #commit:files:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1063
diff changeset
   672
        do
35d1106a2336 added: #commit:files:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1063
diff changeset
   673
35d1106a2336 added: #commit:files:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1063
diff changeset
   674
    "Created: / 31-03-2008 / 13:11:15 / janfrog"
35d1106a2336 added: #commit:files:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1063
diff changeset
   675
    "Modified: / 07-04-2008 / 08:52:13 / janfrog"
35d1106a2336 added: #commit:files:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1063
diff changeset
   676
    "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
   677
    "Created: / 14-03-2012 / 17:15:25 / jv"
35d1106a2336 added: #commit:files:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1063
diff changeset
   678
!
35d1106a2336 added: #commit:files:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1063
diff changeset
   679
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   680
info: paths
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   681
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   682
    ^SVN::InfoCommand new
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   683
        workingCopy: self;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   684
        paths: paths;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   685
        execute
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   686
!
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   687
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   688
log
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   689
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   690
    ^self branch log
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   691
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   692
    "Created: / 19-04-2008 / 10:52:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   693
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   694
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   695
log: aString
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   696
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   697
    ^self branch log: aString
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   698
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   699
    "Created: / 19-04-2008 / 10:53:06 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   700
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   701
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   702
revert
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   703
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   704
    self ensurePathExists.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   705
    self isValid ifFalse:[^self checkout].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   706
    ^RevertCommand new
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   707
        workingCopy: self path;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   708
        execute.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   709
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   710
    "Created: / 22-10-2008 / 16:46:18 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   711
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   712
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   713
revert: containers
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   714
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   715
    | revertInfo |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   716
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   717
    self ensurePathExists.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   718
    self isValid ifFalse:[^self checkout].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   719
    self synchronized:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   720
        [revertInfo := RevertCommand new
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   721
                            workingCopy: self;
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   722
                            paths: containers;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   723
                            execute].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   724
    ^revertInfo
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   725
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   726
    "Created: / 03-11-2008 / 21:20:38 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   727
    "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
   728
    "Modified: / 05-12-2009 / 20:16:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   729
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   730
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   731
status
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   732
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   733
    | status |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   734
    self ensureIsValid.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   735
    self synchronized:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   736
        [status := StatusCommand new
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   737
                    workingCopy: self;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   738
                    execute].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   739
    ^status
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   740
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   741
    "Created: / 11-04-2008 / 09:22:13 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   742
    "Modified: / 19-08-2009 / 14:35:49 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   743
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   744
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   745
update
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   746
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   747
    | updateInfo |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   748
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   749
    self ensurePathExists.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   750
    self isValid ifFalse:[^self checkout].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   751
    self synchronized:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   752
        [updateInfo := UpdateCommand new
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   753
                            workingCopy: self path;
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   754
                            execute].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   755
    ^updateInfo
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   756
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   757
    "Created: / 21-05-2008 / 09:44:56 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   758
    "Modified: / 19-08-2009 / 12:25:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   759
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   760
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   761
!WorkingCopy methodsFor:'error reporting'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   762
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   763
error
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   764
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   765
    self error:'Unknown error'
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   766
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   767
    "Created: / 31-03-2008 / 12:44:06 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   768
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   769
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   770
error: aString
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   771
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   772
    WCError raiseWith:#error: errorString:aString
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   773
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   774
    "Created: / 31-03-2008 / 12:43:51 / janfrog"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   775
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   776
795
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   777
!WorkingCopy methodsFor:'inspecting'!
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   778
1043
63ec5f7c5762 Added #browse
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1027
diff changeset
   779
browse
63ec5f7c5762 Added #browse
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1027
diff changeset
   780
    "Opens a file browser on the working copy"
63ec5f7c5762 Added #browse
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1027
diff changeset
   781
63ec5f7c5762 Added #browse
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1027
diff changeset
   782
    UserPreferences current fileBrowserClass
63ec5f7c5762 Added #browse
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1027
diff changeset
   783
        openOnDirectory: path asFilename
63ec5f7c5762 Added #browse
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1027
diff changeset
   784
63ec5f7c5762 Added #browse
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1027
diff changeset
   785
    "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
   786
!
63ec5f7c5762 Added #browse
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1027
diff changeset
   787
795
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   788
inspector2TabBrowser
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   789
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   790
    self exists ifTrue:[
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   791
        ^self newInspector2Tab
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   792
           label: 'Working copy';
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   793
            priority: 35;
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   794
            application: (SVN::WorkingCopyBrowser on: self)
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   795
    ] ifFalse:[
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   796
        ^self newInspector2Tab
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   797
           label: 'Working copy';
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   798
           priority: 35;
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   799
           view: (Label new label:'Not yet checked out'; yourself)    
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   800
    ]
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   801
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   802
    "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
   803
    "Modified: / 13-09-2011 / 11:56:28 / cg"
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   804
! !
79b13f902c1b changed: #inspector2TabBrowser
Claus Gittinger <cg@exept.de>
parents: 678
diff changeset
   805
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   806
!WorkingCopy methodsFor:'private'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   807
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   808
branchFromQuery
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   809
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   810
    ^BranchQuery new 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   811
        repository: repository;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   812
        raiseRequest.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   813
!
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   814
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   815
branchFromWorkingCopy
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   816
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   817
    | info bpath |
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   818
    info := (self info:#('.')) anyOne.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   819
    bpath := info url copyFrom: info root size + 1.
1006
f318a4c6a09d Improvements for CommitDialog2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   820
    repository isNil ifTrue:[
f318a4c6a09d Improvements for CommitDialog2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   821
        repository := Repository package: nil url: info root.
f318a4c6a09d Improvements for CommitDialog2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   822
    ].
f318a4c6a09d Improvements for CommitDialog2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   823
    ^path isEmptyOrNil
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   824
        ifTrue:[nil]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   825
        ifFalse:[Branch repository: repository path: bpath].
1006
f318a4c6a09d Improvements for CommitDialog2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   826
f318a4c6a09d Improvements for CommitDialog2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 998
diff changeset
   827
    "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
   828
!
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   829
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   830
commited
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   831
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   832
    packageExtensionsChanged := false.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   833
    packageClassesChanged := false.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   834
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   835
    "Created: / 13-08-2009 / 10:23:19 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   836
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   837
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   838
computePackageClassesChanged
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   839
    "
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   840
        Answers true iff package classes differs from
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   841
        those listed in ProjectDefinition>>classNamesAndAttributes"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   842
    
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   843
    |listedClasses realClasses|
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   844
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   845
    self packageDefinition ifNil:[^true].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   846
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   847
    listedClasses := self packageDefinition allClassNames.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   848
    realClasses := self  packageClasses collect:[:cls | cls fullName ].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   849
    listedClasses size ~= realClasses size 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   850
        ifTrue:[^ true].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   851
    (realClasses allSatisfy:[:realClass | listedClasses includes:realClass ])
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   852
        ifFalse:[^true].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   853
    ^false
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   854
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   855
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   856
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   857
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   858
    "
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   859
        (CommitTask new package: 'stx:libsvn')
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   860
            computePackageClassesChanged
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   861
        (CommitTask new package: 'cvut:fel/smallruby')
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   862
            computePackageClassesChanged
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   863
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   864
    "
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   865
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   866
    "Created: / 16-06-2009 / 10:08:28 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   867
    "Modified: / 18-08-2009 / 10:47:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   868
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   869
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   870
computePackageExtensionsChanged
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   871
    "
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   872
        Answers true iff package extension method differs from
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   873
        those listed in ProjectDefinition>>extensionMethodNames"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   874
    
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   875
    |listedExtensions listedExtensionsDictionary realExtensions|
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   876
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   877
    realExtensions := self  packageExtensions.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   878
    listedExtensions := self  packageDefinition 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   879
                extensionMethodNames.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   880
    (listedExtensions size / 2) ~= realExtensions size ifTrue:[
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   881
        ^ true
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   882
    ].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   883
    listedExtensionsDictionary := Dictionary new.
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   884
    listedExtensions 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   885
        pairWiseDo:[:className :selector | 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   886
            (listedExtensionsDictionary at:className
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   887
                ifAbsentPut:[ OrderedCollection new ]) add:selector
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   888
        ].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   889
    ^ (realExtensions 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   890
        allSatisfy:[:mth | 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   891
            (listedExtensionsDictionary includesKey:mth mclass name) 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   892
                and:[ (listedExtensionsDictionary at:mth mclass name) includes:mth selector ]
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   893
        ]) 
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   894
            not
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   895
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   896
    "
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   897
        (CommitTask new package: 'stx:libsvn')
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   898
            packageExtensionsHasChanged"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   899
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   900
    "Created: / 16-06-2009 / 10:11:01 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   901
    "Modified: / 13-08-2009 / 10:27:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   902
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   903
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   904
ensureIsValid
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   905
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   906
    self isValid ifFalse:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   907
        [self checkout].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   908
    self isValid ifFalse:[self error:'Cannot create working copy']
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   909
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   910
    "Created: / 08-04-2008 / 14:19:28 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   911
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   912
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   913
ensureMethodsHasAbsoluteSourceFiles
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   914
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   915
    Smalltalk allClassesDo:
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   916
        [:cls| | tryLocalSourceFirst makeLocalSource |
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   917
        makeLocalSource :=  
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   918
            [:mth|
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   919
            mth package = self package ifTrue:
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   920
                [mth makeSourceFileAbsolute]].
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   921
        tryLocalSourceFirst := Class tryLocalSourceFirst.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   922
        Class tryLocalSourceFirst: true.
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   923
        cls methodsDo: makeLocalSource.
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   924
        cls class methodsDo: makeLocalSource.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   925
        Class tryLocalSourceFirst: tryLocalSourceFirst.].
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   926
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   927
    "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
   928
    "Modified: / 09-01-2010 / 16:07:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   929
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   930
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   931
ensurePathExists
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   932
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   933
     [path exists ifFalse:
1063
75f4338d821a changed: #ensurePathExists
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1043
diff changeset
   934
        ["/self ensureMethodsHasAbsoluteSourceFiles.
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   935
        path recursiveMakeDirectory
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   936
        ]]
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   937
        on: Smalltalk::Error do:[:ex|self error:'Cannot create working copy'].
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   938
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   939
    "Created: / 08-04-2008 / 14:26:56 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   940
    "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
   941
    "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
   942
    "Modified: / 14-03-2012 / 11:17:21 / jv"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   943
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   944
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   945
!WorkingCopy methodsFor:'private - file out'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   946
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   947
fileOutClass:cls
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   948
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   949
    |stream|
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   950
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   951
    [stream := self  containersWriteStreamForClass:cls.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   952
    self fileOutClass:cls on:stream]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   953
        ensure:[ stream ifNotNil:[ stream close ]]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   954
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   955
    "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
   956
    "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
   957
!
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   958
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   959
fileOutClass:cls on:clsStream
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   960
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   961
"/    cls methodDictionary do:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   962
"/        [:each|each makeLocalStringSource].
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   963
"/
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   964
"/    cls class methodDictionary do:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   965
"/        [:each|each makeLocalStringSource].
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   966
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   967
    SVNSourceCodeManager
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   968
                fileOutSourceCodeOf:cls 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   969
                                 on:clsStream 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   970
                      withTimeStamp:false 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   971
                     withInitialize:true 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   972
                     withDefinition:true
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   973
                       methodFilter:[:mth | mth package = self package ]
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
    "
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   976
        String streamContents:[:s|
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   977
            (SVN::RepositoryManager repositoryForPackage: Setup::ML package)
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   978
                workingCopy
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   979
                fileOutClass: Setup::ML on: s
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   980
        ]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   981
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   982
    "
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   983
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   984
    "Created: / 19-04-2008 / 09:58:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
   985
    "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
   986
    "Modified: / 07-07-2011 / 20:21:59 / jv"
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   987
    "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
   988
!
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   989
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   990
fileOutExtensions: extensionMethods
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   991
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   992
    ProgrammingLanguage all do:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   993
        [:lang| | stream methods |
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   994
        methods := extensionMethods select:[:mth|mth programmingLanguage = lang].
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   995
        methods notEmpty ifTrue:
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   996
            [ActivityNotification notify:'Filing out extension methods (', lang name , ')'.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   997
            stream := self containerWriteStreamForExtensions: lang.
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   998
            [self fileOutExtensions: methods on:stream language: lang]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
   999
                ensure:[ stream close ]]].
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
    "Created: / 30-12-2009 / 19:01:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1002
!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1003
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1004
fileOutExtensions: extensionMethods on:stream language: language 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1005
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1006
    extensionMethods do:[:each|each makeLocalStringSource].
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1007
973
3cbefbe6ddc2 changed: #fileOutExtensions:on:language:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 970
diff changeset
  1008
    "Special hack for Smalltalk - use SourceCodeManager routine"
3cbefbe6ddc2 changed: #fileOutExtensions:on:language:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 970
diff changeset
  1009
    language isSmalltalk ifTrue:[
3cbefbe6ddc2 changed: #fileOutExtensions:on:language:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 970
diff changeset
  1010
        "JV@2012-02-02: HACK HACK: Use respondsTo: to avoid DNU in
3cbefbe6ddc2 changed: #fileOutExtensions:on:language:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 970
diff changeset
  1011
         exept HEAD (I've forked libbasic3), sigh"
3cbefbe6ddc2 changed: #fileOutExtensions:on:language:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 970
diff changeset
  1012
        (SVNSourceCodeManager respondsTo: #fileOutSourceCodeExtensions:package:on:) ifTrue:[
3cbefbe6ddc2 changed: #fileOutExtensions:on:language:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 970
diff changeset
  1013
            SVNSourceCodeManager fileOutSourceCodeExtensions: extensionMethods package: self package on: stream.
3cbefbe6ddc2 changed: #fileOutExtensions:on:language:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 970
diff changeset
  1014
            ^self
3cbefbe6ddc2 changed: #fileOutExtensions:on:language:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 970
diff changeset
  1015
        ].
3cbefbe6ddc2 changed: #fileOutExtensions:on:language:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 970
diff changeset
  1016
    ].
3cbefbe6ddc2 changed: #fileOutExtensions:on:language:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 970
diff changeset
  1017
3cbefbe6ddc2 changed: #fileOutExtensions:on:language:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 970
diff changeset
  1018
    "/ Generic fileout "
3cbefbe6ddc2 changed: #fileOutExtensions:on:language:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 970
diff changeset
  1019
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1020
    language sourceFileWriterClass new
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1021
        fileOutPackageDefinition: self package on: stream;
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1022
        fileOutMethods: extensionMethods on: stream
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1023
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1024
    "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
  1025
    "Created: / 30-12-2009 / 19:01:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
973
3cbefbe6ddc2 changed: #fileOutExtensions:on:language:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 970
diff changeset
  1026
    "Modified: / 02-02-2012 / 16:05:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1027
! !
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1028
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1029
!WorkingCopy methodsFor:'queries'!
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1030
678
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1031
exists
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1032
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1033
    ^self isValid
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1034
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1035
    "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
  1036
!
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1037
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1038
hasBranch
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1039
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1040
    branch ifNotNil:[^true].
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1041
    ^repository preferredBranch 
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1042
        ifNotNil:[self branchOrNil notNil]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1043
        ifNil:[repository branches size == 1]
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1044
b63530301573 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 384
diff changeset
  1045
    "Modified: / 29-03-2010 / 13:57:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1046
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1047
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1048
!WorkingCopy methodsFor:'testing'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1049
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1050
isValid
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1051
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1052
    | svnMetadataDir |
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1053
970
821fe8d5f76d changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 905
diff changeset
  1054
    svnMetadataDir := self path / '.svn'.
821fe8d5f76d changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 905
diff changeset
  1055
    svnMetadataDir exists ifFalse:[ ^false ].
821fe8d5f76d changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 905
diff changeset
  1056
    (svnMetadataDir / 'entries') exists  ifFalse:[ ^false ].
821fe8d5f76d changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 905
diff changeset
  1057
    (svnMetadataDir / 'text-base') exists ifFalse:[ ^false ].
821fe8d5f76d changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 905
diff changeset
  1058
821fe8d5f76d changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 905
diff changeset
  1059
    self path directoryContents size = 1 ifTrue:[ ^ false ].
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1060
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1061
    ^true
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1062
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1063
    "Created: / 08-04-2008 / 14:17:03 / Jan Vrany <vranyj1@fel.cvut.cz>"
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1064
    "Modified: / 16-07-2009 / 13:57:03 / Jan Vrany <vranyj1@fel.cvut.cz>"
970
821fe8d5f76d changed:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 905
diff changeset
  1065
    "Modified: / 24-01-2012 / 18:10:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1066
! !
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1067
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1068
!WorkingCopy class methodsFor:'documentation'!
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1069
905
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
  1070
version
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
  1071
    ^ '$Header$'
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
  1072
!
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
  1073
137
c262be330384 changed: #version_SVN
fm
parents: 57
diff changeset
  1074
version_SVN
905
58dc08c9d3b4 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 795
diff changeset
  1075
    ^ '§Id: SVN__WorkingCopy.st 371 2011-09-28 18:47:07Z vranyj1 §'
57
6453ecf86e2e initial checkin
fm
parents:
diff changeset
  1076
! !