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