SVN__RepositoryManager.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 02 Jul 2018 08:45:59 +0200
branchjv
changeset 1186 9e617064233f
parent 1120 9b18f8241b3d
permissions -rw-r--r--
Tagged Smalltalk/X 8.0.0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
694
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
     1
"
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
     2
 Copyright (c) 2007-2010 Jan Vrany
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
     3
 Copyright (c) 2009-2010 eXept Software AG
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
     4
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
     5
 Permission is hereby granted, free of charge, to any person
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
     6
 obtaining a copy of this software and associated documentation
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
     7
 files (the 'Software'), to deal in the Software without
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
     8
 restriction, including without limitation the rights to use,
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
     9
 copy, modify, merge, publish, distribute, sublicense, and/or sell
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    10
 copies of the Software, and to permit persons to whom the
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    11
 Software is furnished to do so, subject to the following
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    12
 conditions:
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    13
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    14
 The above copyright notice and this permission notice shall be
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    15
 included in all copies or substantial portions of the Software.
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    16
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    17
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    18
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    19
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    20
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    21
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    22
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    23
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    24
 OTHER DEALINGS IN THE SOFTWARE.
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    25
"
399
edb75480eae5 *** empty log message ***
fm
parents: 345
diff changeset
    26
"{ Package: 'stx:libsvn' }"
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    27
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    28
"{ NameSpace: SVN }"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    29
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    30
Object subclass:#RepositoryManager
1120
9b18f8241b3d changed: #basicRepositoryForPackage: (do no check whether repository exists - takes too long, called too often by browser)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 938
diff changeset
    31
	instanceVariableNames:'configurations repositories workingCopyBase'
9b18f8241b3d changed: #basicRepositoryForPackage: (do no check whether repository exists - takes too long, called too often by browser)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 938
diff changeset
    32
	classVariableNames:'Current WorkingCopyBase'
9b18f8241b3d changed: #basicRepositoryForPackage: (do no check whether repository exists - takes too long, called too often by browser)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 938
diff changeset
    33
	poolDictionaries:''
9b18f8241b3d changed: #basicRepositoryForPackage: (do no check whether repository exists - takes too long, called too often by browser)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 938
diff changeset
    34
	category:'SVN-Core'
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    35
!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    36
694
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    37
!RepositoryManager class methodsFor:'documentation'!
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    38
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    39
copyright
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    40
"
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    41
 Copyright (c) 2007-2010 Jan Vrany
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    42
 Copyright (c) 2009-2010 eXept Software AG
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    43
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    44
 Permission is hereby granted, free of charge, to any person
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    45
 obtaining a copy of this software and associated documentation
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    46
 files (the 'Software'), to deal in the Software without
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    47
 restriction, including without limitation the rights to use,
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    48
 copy, modify, merge, publish, distribute, sublicense, and/or sell
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    49
 copies of the Software, and to permit persons to whom the
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    50
 Software is furnished to do so, subject to the following
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    51
 conditions:
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    52
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    53
 The above copyright notice and this permission notice shall be
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    54
 included in all copies or substantial portions of the Software.
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    55
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    56
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    57
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    58
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    59
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    60
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    61
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    62
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    63
 OTHER DEALINGS IN THE SOFTWARE.
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    64
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    65
"
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
    66
! !
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    67
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    68
!RepositoryManager class methodsFor:'instance creation'!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    69
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    70
new
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    71
    ^ self basicNew initialize.
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    72
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    73
    "Created: / 16-03-2008 / 11:53:21 / janfrog"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    74
! !
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    75
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    76
!RepositoryManager class methodsFor:'accessing'!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    77
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    78
current
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    79
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    80
    Current ifNil:
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    81
        [Current := self new].
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    82
    ^Current
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    83
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    84
    "Created: / 16-03-2008 / 11:52:11 / janfrog"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    85
    "Modified: / 07-06-2008 / 22:23:46 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    86
!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    87
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    88
disable
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    89
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    90
    self enabled: false
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    91
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    92
    "Created: / 20-04-2008 / 09:19:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    93
    "Modified: / 07-06-2008 / 22:30:10 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    94
!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    95
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    96
enable
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    97
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    98
    self enabled: true
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
    99
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   100
    "Created: / 20-04-2008 / 09:21:29 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   101
    "Modified: / 07-06-2008 / 22:30:18 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   102
!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   103
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   104
enabled
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   105
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   106
    ^UserPreferences current svnEnabled
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   107
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   108
    "Created: / 20-04-2008 / 09:27:20 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   109
    "Modified: / 03-10-2008 / 11:28:42 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   110
!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   111
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   112
enabled: aBoolean
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   113
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   114
    UserPreferences current svnEnabled: aBoolean.
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   115
    self changed:#enabled
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   116
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   117
    "Created: / 20-04-2008 / 09:18:46 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   118
    "Modified: / 03-10-2008 / 11:28:55 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   119
!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   120
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   121
hasRepositoryForPackage: package
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   122
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   123
    self enabled ifFalse:[^false].
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   124
    ^self current hasRepositoryForPackage: package
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   125
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   126
    "Created: / 19-04-2008 / 10:04:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   127
    "Modified: / 07-06-2008 / 22:28:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   128
!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   129
938
76355000d9f1 Synchronized with SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 856
diff changeset
   130
repositoryForModule: module directory: dir
76355000d9f1 Synchronized with SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 856
diff changeset
   131
76355000d9f1 Synchronized with SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 856
diff changeset
   132
    ^self repositoryForPackage: (module , ':' , dir)
76355000d9f1 Synchronized with SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 856
diff changeset
   133
76355000d9f1 Synchronized with SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 856
diff changeset
   134
    "Created: / 25-05-2009 / 19:48:22 / Jan Vrany <vranyj1@fel.cvut.cz>"
76355000d9f1 Synchronized with SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 856
diff changeset
   135
    "Modified: / 16-08-2009 / 18:42:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
76355000d9f1 Synchronized with SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 856
diff changeset
   136
    "Created: / 11-10-2011 / 11:12:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
76355000d9f1 Synchronized with SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 856
diff changeset
   137
!
76355000d9f1 Synchronized with SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 856
diff changeset
   138
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   139
repositoryForPackage: package
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   140
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   141
    ^self repositoryForPackage: package onlyFromCache: false
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   142
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   143
    "Created: / 25-05-2009 / 19:48:22 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   144
    "Modified: / 16-08-2009 / 18:42:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   145
!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   146
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   147
repositoryForPackage: package onlyFromCache: aBoolean
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   148
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   149
    self enabled ifFalse:[^nil].
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   150
    ^self current repositoryForPackage: package onlyFromCache: aBoolean
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   151
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   152
    "Created: / 16-08-2009 / 18:41:47 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   153
!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   154
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   155
repositoryUrlForPackage: package
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   156
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   157
    self enabled ifFalse:[^nil].
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   158
    ^self current repositoryUrlForPackage: package
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   159
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   160
    "Created: / 25-05-2009 / 19:48:22 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   161
!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   162
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   163
reset
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   164
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   165
    self current reset.
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   166
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   167
    "Created: / 31-03-2008 / 10:55:10 / janfrog"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   168
    "Modified: / 20-03-2009 / 10:44:31 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   169
!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   170
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   171
workingCopyForPackage: package
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   172
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   173
    | repo |
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   174
    ^(repo := self repositoryForPackage: package)
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   175
        ifNil:[nil]
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   176
        ifNotNil:[repo workingCopy]
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   177
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   178
    "Created: / 13-08-2009 / 15:08:38 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   179
! !
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   180
694
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   181
!RepositoryManager class methodsFor:'others'!
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   182
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   183
version_CVS
856
543368db7673 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 793
diff changeset
   184
    ^ '$Header$'
694
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   185
! !
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   186
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   187
!RepositoryManager methodsFor:'accessing'!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   188
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   189
configurationForPackage: package
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   190
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   191
    ^self configurations
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   192
        detect: [:cfg|cfg matchesPackage: package]
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   193
        ifNone: [nil]
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   194
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   195
    "Created: / 03-10-2008 / 15:38:37 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   196
!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   197
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   198
configurations
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   199
    configurations ifNil:
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   200
        [configurations := UserPreferences current svnConfigurations].
694
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   201
    ^configurations ? #()
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   202
 
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   203
    "Created: / 26-05-2008 / 10:47:34 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   204
    "Modified: / 03-10-2008 / 13:11:20 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   205
!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   206
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   207
configurations: anObject
694
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   208
    configurations := anObject
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   209
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   210
    "Created: / 03-10-2008 / 13:10:03 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   211
!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   212
694
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   213
repositories 
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   214
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   215
    ^repositories values collect:[:repo|repo value] thenSelect:[:repo|repo notNil].
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   216
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   217
    "Created: / 24-03-2010 / 22:24:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   218
!
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   219
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   220
repositoryForPackage:package 
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   221
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   222
    ^self repositoryForPackage:package onlyFromCache: false
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   223
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   224
    "Modified: / 16-08-2009 / 18:44:11 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   225
!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   226
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   227
repositoryForPackage:package onlyFromCache: onlyFromCache 
694
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   228
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   229
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   230
    "There is no repository for no project, by definition"
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   231
    package = PackageId noProjectID ifTrue:[ ^nil ].
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   232
694
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   233
    ^onlyFromCache 
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   234
        ifTrue:
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   235
            [repositories at:package ifAbsent:[nil]]
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   236
        ifFalse:
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   237
            [repositories 
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   238
                at:package 
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   239
                ifAbsentPut:
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   240
                    (MessageSend 
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   241
                        receiver: self 
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   242
                        selector: #basicRepositoryForPackage: 
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   243
                        argument: package)]
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   244
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   245
    "Modified: / 01-04-2008 / 19:08:35 / janfrog"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   246
    "Created: / 16-08-2009 / 18:43:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   247
    "Modified: / 19-08-2009 / 13:07:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
694
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   248
    "Modified: / 06-04-2010 / 11:15:17 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   249
!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   250
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   251
repositoryUrlForPackage:package 
694
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   252
    | repo |
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   253
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   254
    repo := repositories at:package ifAbsent:[ nil ].
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   255
    repo ifNotNil:[ ^ repo url ].
694
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   256
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   257
    SVN::Configuration isLoaded ifFalse:[^nil]."JV: hack for loading issue"
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   258
    repo := SVN::Configuration current repositoryFor: package.
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   259
    repo ifNil:[^nil].
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   260
    repo exists ifFalse:[^nil].
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   261
    repo manager: self.                        
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   262
    ^ repo url
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   263
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   264
    "Modified: / 01-04-2008 / 19:08:35 / janfrog"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   265
    "Created: / 25-05-2009 / 19:48:09 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   266
    "Modified: / 16-08-2009 / 16:56:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
694
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   267
    "Modified: / 25-06-2010 / 17:19:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   268
!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   269
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   270
urlBase:aString 
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   271
    |repoConf|
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   272
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   273
    repoConf := self configurations 
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   274
                detect:[:conf | conf packagePattern = '*' ]
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   275
                ifNone:[
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   276
                    self configurations add:(RepositoryConfiguration new packagePattern:'*')
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   277
                ].
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   278
    repoConf urlPattern:aString , '/%p'
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   279
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   280
    "
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   281
        SVN::RepositoryManager current urlBase:
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   282
            'http://smalltalk.felk.cvut.cz/svn'"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   283
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   284
    "Created: / 16-03-2008 / 12:09:21 / janfrog"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   285
    "Modified: / 03-10-2008 / 13:10:03 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   286
!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   287
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   288
workingCopyBase
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   289
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   290
    workingCopyBase ifNil:
694
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   291
        [WorkingCopyBase ~= nil ifTrue:[
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   292
            workingCopyBase := WorkingCopyBase
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   293
        ] ifFalse: [
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   294
            workingCopyBase := (Filename homeDirectory / '.smalltalk' / 'working-copy'
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   295
                                    / UUID genUUID printString) asString.
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   296
        ]].
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   297
    (Smalltalk packagePath last = workingCopyBase)
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   298
        ifFalse:
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   299
            [Smalltalk packagePath remove: workingCopyBase ifAbsent:[].
694
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   300
            Smalltalk packagePath addLast: workingCopyBase].
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   301
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   302
    ^ workingCopyBase
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   303
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   304
    "Created: / 16-03-2008 / 12:09:21 / janfrog"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   305
    "Modified: / 10-04-2008 / 13:25:05 / Jan Vrany <vranyj1@fel.cvut.cz>"
694
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   306
    "Modified: / 07-07-2011 / 20:24:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   307
!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   308
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   309
workingCopyBase:aString
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   310
    workingCopyBase := aString.
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   311
    self changed:#workingCopyBase
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   312
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   313
    "Created: / 16-03-2008 / 12:09:21 / janfrog"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   314
    "Modified: / 26-05-2008 / 10:34:27 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   315
! !
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   316
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   317
!RepositoryManager methodsFor:'accessing - private'!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   318
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   319
workingCopyForPackage: package
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   320
694
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   321
    ^self 
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   322
        workingCopyForPackage: package
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   323
        in: (self workingCopyBase , '/' , (package asString copy replaceAll:$: with:$/))
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   324
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   325
    "Created: / 16-03-2008 / 12:09:02 / janfrog"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   326
    "Modified: / 31-03-2008 / 12:58:44 / janfrog"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   327
    "Modified: / 11-04-2008 / 10:48:36 / Jan Vrany <vranyj1@fel.cvut.cz>"
694
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   328
    "Modified: / 10-04-2010 / 12:38:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   329
!
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   330
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   331
workingCopyForPackage: package in: directory
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   332
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   333
    ^WorkingCopy new path: directory
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   334
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   335
    "Modified: / 31-03-2008 / 12:58:44 / janfrog"
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   336
    "Modified: / 11-04-2008 / 10:48:36 / Jan Vrany <vranyj1@fel.cvut.cz>"
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   337
    "Created: / 10-04-2010 / 12:37:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   338
! !
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   339
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   340
!RepositoryManager methodsFor:'initialization'!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   341
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   342
initialize
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   343
    "Invoked when a new instance is created."
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   344
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   345
    "/ please change as required (and remove this comment)
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   346
    "/ baseUrl := nil.
694
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   347
    repositories := Cache new.
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   348
    Smalltalk addDependent: self.
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   349
    Smalltalk addExitBlock:(MessageSend receiver: self selector: #aboutToQuit).
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   350
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   351
    "/ super initialize.   -- commented since inherited method does nothing
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   352
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   353
    "Created: / 16-03-2008 / 11:53:21 / janfrog"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   354
    "Modified: / 31-03-2008 / 10:54:28 / janfrog"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   355
    "Modified: / 16-06-2009 / 12:39:26 / Jan Vrany <vranyj1@fel.cvut.cz>"
694
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   356
    "Modified: / 22-12-2009 / 20:20:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   357
!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   358
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   359
reset
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   360
694
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   361
    repositories := Cache new.
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   362
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   363
    "Created: / 10-04-2008 / 12:41:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
694
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   364
    "Modified: / 22-12-2009 / 20:23:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   365
!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   366
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   367
resetConfigurations
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   368
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   369
    configurations := nil
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   370
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   371
    "Created: / 25-05-2009 / 18:59:53 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   372
!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   373
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   374
resetForPackage: packageId
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   375
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   376
    repositories removeKey: packageId ifAbsent:[]
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   377
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   378
    "Created: / 08-04-2009 / 22:37:46 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   379
! !
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   380
694
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   381
!RepositoryManager methodsFor:'private'!
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   382
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   383
basicRepositoryForPackage:package 
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   384
    | repo |
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   385
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   386
    "There is no repository for no project, by definition"
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   387
    package = PackageId noProjectID ifTrue:[ ^nil ].
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   388
    "/Old Config Scheme
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   389
    "
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   390
    repo ifNotNil:[ ^ repo ].
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   391
    cfg := self configurationForPackage: package.
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   392
    cfg ifNotNil:
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   393
        [repo := (Repository new)
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   394
                    manager: self;
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   395
                    url:(cfg urlForPackage:package);
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   396
                    package:package].
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   397
    repo ifNil:[ ^ nil ].
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   398
    "
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   399
    "/New Config Scheme
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   400
        SVN::Configuration isLoaded ifFalse:[^nil]."JV: hack for loading issue"
793
c5be702c9fa0 initial checkin
Claus Gittinger <cg@exept.de>
parents: 694
diff changeset
   401
    SVN::Configuration current isNil ifTrue:[^ nil].
694
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   402
    repo := SVN::Configuration current repositoryFor: package.
1120
9b18f8241b3d changed: #basicRepositoryForPackage: (do no check whether repository exists - takes too long, called too often by browser)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 938
diff changeset
   403
    repo isNil ifTrue:[^nil].
9b18f8241b3d changed: #basicRepositoryForPackage: (do no check whether repository exists - takes too long, called too often by browser)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 938
diff changeset
   404
"/    repo exists ifFalse:[^nil].
694
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   405
    repo manager: self.                        
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   406
    ^ repo
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   407
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   408
    "Modified: / 01-04-2008 / 19:08:35 / janfrog"
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   409
    "Created: / 16-08-2009 / 18:43:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   410
    "Modified: / 19-08-2009 / 13:07:45 / Jan Vrany <vranyj1@fel.cvut.cz>"
793
c5be702c9fa0 initial checkin
Claus Gittinger <cg@exept.de>
parents: 694
diff changeset
   411
    "Modified: / 23-08-2011 / 18:38:53 / cg"
1120
9b18f8241b3d changed: #basicRepositoryForPackage: (do no check whether repository exists - takes too long, called too often by browser)
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 938
diff changeset
   412
    "Modified: / 17-08-2012 / 11:08:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
694
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   413
! !
e4a1c3265ff5 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 399
diff changeset
   414
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   415
!RepositoryManager methodsFor:'queries'!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   416
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   417
hasRepositoryForPackage: package
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   418
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   419
    ^(self repositoryForPackage: package) notNil
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   420
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   421
    "Created: / 31-03-2008 / 15:11:23 / janfrog"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   422
! !
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   423
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   424
!RepositoryManager methodsFor:'updating'!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   425
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   426
aboutToQuit
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   427
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   428
    "
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   429
     This is send by Smalltalk before the virtual machine
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   430
     terminates. If there is no image, removes working copy.
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   431
    "
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   432
125
3baffe7212b9 changed: #aboutToQuit
fm
parents: 123
diff changeset
   433
    workingCopyBase isNil ifTrue: [^self].
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   434
    workingCopyBase asFilename exists ifFalse:[^self].
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   435
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   436
    ObjectMemory imageName  
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   437
        ifNil:
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   438
            ["Windows hack..."
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   439
            [workingCopyBase asFilename recursiveRemove]
123
0d6389e1ce93 changed: #aboutToQuit
fm
parents: 44
diff changeset
   440
                on:Smalltalk::Error do:
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   441
                    [Delay waitForMilliseconds: 20.
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   442
                    [workingCopyBase asFilename recursiveRemove]
123
0d6389e1ce93 changed: #aboutToQuit
fm
parents: 44
diff changeset
   443
                        on:Smalltalk::Error do:
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   444
                            [Delay waitForMilliseconds: 40.
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   445
                            [workingCopyBase asFilename recursiveRemove]
123
0d6389e1ce93 changed: #aboutToQuit
fm
parents: 44
diff changeset
   446
                                on:Smalltalk::Error do:["nothing"]]]]
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   447
        ifNotNil:
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   448
            [| imagesStream |
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   449
            [imagesStream := (workingCopyBase asFilename / 'images.txt') appendStream.
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   450
            imagesStream nextPutLine: ObjectMemory imageName printString]
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   451
                ensure:[imagesStream ifNotNil:[imagesStream close]]]
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   452
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   453
    "Created: / 16-06-2009 / 13:36:21 / Jan Vrany <vranyj1@fel.cvut.cz>"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   454
    "Modified: / 16-07-2009 / 13:54:04 / Jan Vrany <vranyj1@fel.cvut.cz>"
123
0d6389e1ce93 changed: #aboutToQuit
fm
parents: 44
diff changeset
   455
    "Modified: / 22-09-2009 / 15:55:57 / Felix Madrid <fm@exept.de>"
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   456
!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   457
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   458
class: class renamedFrom: oldName to: newName
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   459
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   460
    "Created: / 31-03-2008 / 11:06:11 / janfrog"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   461
!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   462
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   463
update: aspect with: param from: sender
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   464
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   465
    (aspect = #classRename)
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   466
        ifTrue:[self class: param first renamedFrom: param second to: param first fullName]
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   467
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   468
    "Created: / 31-03-2008 / 10:54:55 / janfrog"
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   469
! !
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   470
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   471
!RepositoryManager class methodsFor:'documentation'!
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   472
856
543368db7673 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 793
diff changeset
   473
version
543368db7673 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 793
diff changeset
   474
    ^ '$Header$'
543368db7673 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 793
diff changeset
   475
!
543368db7673 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 793
diff changeset
   476
146
897448c47b51 changed: #version_SVN
fm
parents: 125
diff changeset
   477
version_SVN
938
76355000d9f1 Synchronized with SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 856
diff changeset
   478
    ^ '§Id: SVN__RepositoryManager.st 384 2011-10-12 11:01:11Z vranyj1 §'
44
ff3ea1febe73 initial checkin
fm
parents:
diff changeset
   479
! !