SVN__Repository.st
author Claus Gittinger <cg@exept.de>
Fri, 18 Nov 2016 16:14:26 +0100
changeset 1180 92753f6cc822
parent 1170 a4d00e6bb9b7
permissions -rw-r--r--
#REFACTORING by cg class: SVNSourceCodeManager SVNVersionInfo is private
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
     1
"
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
     2
 Copyright (c) 2007-2010 Jan Vrany
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
     3
 Copyright (c) 2009-2010 eXept Software AG
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
     4
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
     5
 Permission is hereby granted, free of charge, to any person
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
     6
 obtaining a copy of this software and associated documentation
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
     7
 files (the 'Software'), to deal in the Software without
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
     8
 restriction, including without limitation the rights to use,
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
     9
 copy, modify, merge, publish, distribute, sublicense, and/or sell
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    10
 copies of the Software, and to permit persons to whom the
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    11
 Software is furnished to do so, subject to the following
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    12
 conditions:
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    13
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    14
 The above copyright notice and this permission notice shall be
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    15
 included in all copies or substantial portions of the Software.
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    16
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    17
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    18
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    19
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    20
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    21
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    22
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    23
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    24
 OTHER DEALINGS IN THE SOFTWARE.
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    25
"
481
175de20d9238 *** empty log message ***
fm
parents: 287
diff changeset
    26
"{ Package: 'stx:libsvn' }"
33
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
    27
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
    28
"{ NameSpace: SVN }"
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
    29
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
    30
Object subclass:#Repository
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    31
	instanceVariableNames:'manager package url branches workingCopy preferredBranch'
33
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
    32
	classVariableNames:''
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
    33
	poolDictionaries:''
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
    34
	category:'SVN-Core'
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
    35
!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
    36
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    37
!Repository class methodsFor:'documentation'!
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    38
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    39
copyright
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    40
"
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    41
 Copyright (c) 2007-2010 Jan Vrany
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    42
 Copyright (c) 2009-2010 eXept Software AG
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    43
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    44
 Permission is hereby granted, free of charge, to any person
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    45
 obtaining a copy of this software and associated documentation
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    46
 files (the 'Software'), to deal in the Software without
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    47
 restriction, including without limitation the rights to use,
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    48
 copy, modify, merge, publish, distribute, sublicense, and/or sell
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    49
 copies of the Software, and to permit persons to whom the
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    50
 Software is furnished to do so, subject to the following
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    51
 conditions:
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    52
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    53
 The above copyright notice and this permission notice shall be
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    54
 included in all copies or substantial portions of the Software.
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    55
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    56
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    57
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    58
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    59
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    60
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    61
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    62
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    63
 OTHER DEALINGS IN THE SOFTWARE.
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    64
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    65
"
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    66
! !
33
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
    67
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
    68
!Repository class methodsFor:'instance creation'!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
    69
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    70
new
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    71
    ^ self basicNew initialize.
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    72
!
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    73
33
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
    74
package: package url: url
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
    75
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
    76
    ^self new 
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
    77
        package: package;
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
    78
        url: url; 
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
    79
        yourself
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
    80
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
    81
    "Created: / 19-08-2009 / 12:24:29 / Jan Vrany <vranyj1@fel.cvut.cz>"
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
    82
! !
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
    83
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
    84
!Repository class methodsFor:'accessing - containers'!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
    85
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    86
classFromContainerName: aString
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    87
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    88
    | className |
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    89
    className := (aString includes: $.) 
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    90
                    ifTrue:[aString copyTo: (aString lastIndexOf:$.) - 1]
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    91
                    ifFalse:[aString].
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    92
    className replaceAll:$_ with:$:.
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    93
    ^Smalltalk classNamed: className
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    94
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    95
    "
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    96
        SVN::Repository classFromContainerName: 'Smalltalk.st'   
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    97
        SVN::Repository classFromContainerName: 'SVN__Repository.st'  
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    98
        SVN::Repository classFromContainerName: 'SVN__Repository.rb'  
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
    99
        SVN::Repository classFromContainerName: 'Nothing.st'   
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   100
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   101
    "
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   102
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   103
    "Created: / 19-11-2009 / 15:20:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   104
!
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   105
33
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   106
containerNameForClass: cls
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   107
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   108
    ^(self containerNameWithoutSuffixForClass: cls) , '.' , cls sourceFileSuffix
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   109
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   110
    "Created: / 19-04-2008 / 17:24:38 / Jan Vrany <vranyj1@fel.cvut.cz>"
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   111
    "Modified: / 13-08-2009 / 15:26:22 / Jan Vrany <vranyj1@fel.cvut.cz>"
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   112
!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   113
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   114
containerNameForExtensions
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   115
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   116
    ^'extensions.st'
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   117
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   118
    "Created: / 19-04-2008 / 17:25:24 / Jan Vrany <vranyj1@fel.cvut.cz>"
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   119
!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   120
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   121
containerNameForExtensions: language
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   122
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   123
    ^'extensions.' , language sourceFileSuffix
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   124
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   125
    "Created: / 30-12-2009 / 22:00:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   126
!
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   127
33
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   128
containerNameWithoutSuffixForClass: cls
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   129
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   130
    ^self containerNameWithoutSuffixForClassNamed: 
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   131
        cls theNonMetaclass fullName
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   132
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   133
    "Created: / 13-08-2009 / 15:25:36 / Jan Vrany <vranyj1@fel.cvut.cz>"
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   134
!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   135
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   136
containerNameWithoutSuffixForClassNamed: clsName
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   137
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   138
    | containerName |
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   139
    containerName := clsName copyReplaceAll:$: with:$_.
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   140
    "/Transcript showCR:'Container for ',clsName,  ' is ' , containerName.
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   141
    ^containerName.
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   142
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   143
    "Created: / 13-08-2009 / 15:24:51 / Jan Vrany <vranyj1@fel.cvut.cz>"
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   144
! !
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   145
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   146
!Repository class methodsFor:'others'!
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   147
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   148
version_CVS
828
3c752e3ab464 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 777
diff changeset
   149
    ^ '$Header$'
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   150
! !
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   151
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   152
!Repository class methodsFor:'private'!
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   153
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   154
urlForBranches: url
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   155
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   156
    | idx |
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   157
    idx := url indexOfSubCollection: '%(BRANCH)'.
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   158
    idx == 0 ifTrue:[self error:'No %(BRANCH) in url: ', url].
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   159
    (url at: idx - 1) == $/ ifTrue:[idx := idx - 1].
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   160
    ^url copyTo: idx - 1
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   161
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   162
    "Created: / 23-03-2011 / 18:46:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   163
! !
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   164
33
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   165
!Repository methodsFor:'accessing'!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   166
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   167
branch
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   168
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   169
    ^self workingCopy branch
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   170
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   171
    "Created: / 19-04-2008 / 18:25:39 / Jan Vrany <vranyj1@fel.cvut.cz>"
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   172
!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   173
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   174
branchOrNil
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   175
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   176
    | branches branch |
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   177
    branches := self branches.
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   178
    branch := branches 
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   179
                detect:[:branch|branch path = preferredBranch]
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   180
                ifNone:[nil].
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   181
    branch ifNil:
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   182
        [branches size == 1 ifTrue:[branch := branches anyOne]].
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   183
    ^branch
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   184
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   185
    "Created: / 16-03-2010 / 10:47:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   186
!
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   187
33
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   188
branches
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   189
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   190
    ^self branchesAndTags reject:[:branch|branch isTag]
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   191
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   192
    "Modified: / 14-04-2008 / 11:02:07 / Jan Vrany <vranyj1@fel.cvut.cz>"
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   193
!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   194
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   195
branchesAndTags
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   196
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   197
    ^branches value
33
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   198
!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   199
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   200
manager
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   201
    ^ manager
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   202
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   203
    "Created: / 03-10-2008 / 15:41:49 / Jan Vrany <vranyj1@fel.cvut.cz>"
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   204
!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   205
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   206
manager:aRepositoryManager
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   207
    manager := aRepositoryManager.
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   208
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   209
    "Created: / 03-10-2008 / 15:41:49 / Jan Vrany <vranyj1@fel.cvut.cz>"
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   210
!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   211
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   212
package
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   213
    ^ package
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   214
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   215
    "Created: / 15-03-2008 / 20:22:51 / janfrog"
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   216
!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   217
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   218
package:something
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   219
    package := something.
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   220
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   221
    "Created: / 15-03-2008 / 20:22:51 / janfrog"
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   222
!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   223
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   224
packageClasses
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   225
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   226
    ^self workingCopy packageClasses
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   227
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   228
    "Created: / 19-04-2008 / 19:07:41 / Jan Vrany <vranyj1@fel.cvut.cz>"
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   229
!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   230
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   231
packageExtensions
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   232
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   233
    ^self workingCopy packageExtensions
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   234
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   235
    "Created: / 19-04-2008 / 19:07:52 / Jan Vrany <vranyj1@fel.cvut.cz>"
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   236
!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   237
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   238
preferredBranch
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   239
    ^ preferredBranch
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   240
!
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   241
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   242
preferredBranch:aString
1081
132dcaa0a4e9 changed: #preferredBranch:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 828
diff changeset
   243
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   244
    preferredBranch := aString.
1081
132dcaa0a4e9 changed: #preferredBranch:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 828
diff changeset
   245
    "branch string MUST end with a slash"
1082
f08e204d2e69 changed: #preferredBranch:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1081
diff changeset
   246
    (preferredBranch notNil and:[preferredBranch last ~~ $/]) ifTrue:[
1081
132dcaa0a4e9 changed: #preferredBranch:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 828
diff changeset
   247
        preferredBranch := preferredBranch , '/'
132dcaa0a4e9 changed: #preferredBranch:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 828
diff changeset
   248
    ].
132dcaa0a4e9 changed: #preferredBranch:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 828
diff changeset
   249
1082
f08e204d2e69 changed: #preferredBranch:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1081
diff changeset
   250
    "Modified: / 29-03-2012 / 17:24:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   251
!
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   252
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   253
trunk
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   254
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   255
    ^self branchesAndTags detect:[:b|b isTrunk] ifNone:[nil]
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   256
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   257
    "Created: / 22-11-2009 / 17:01:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   258
!
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   259
33
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   260
url
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   261
    ^ url
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   262
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   263
    "Created: / 15-03-2008 / 20:21:30 / janfrog"
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   264
    "Modified: / 14-03-2011 / 10:31:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
33
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   265
!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   266
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   267
url:aString
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   268
    url := aString.
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   269
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   270
    "Created: / 15-03-2008 / 20:21:30 / janfrog"
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   271
!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   272
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   273
workingCopy
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   274
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   275
    workingCopy ifNil:
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   276
        [workingCopy := manager workingCopyForPackage: package.
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   277
        workingCopy repository: self].
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   278
    ^workingCopy.
33
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   279
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   280
    "Created: / 15-03-2008 / 20:30:13 / janfrog"
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   281
    "Modified: / 10-04-2010 / 12:41:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
33
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   282
!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   283
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   284
workingCopy:aWorkingCopy 
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   285
33
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   286
    workingCopy := aWorkingCopy.
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   287
    workingCopy repository:self.
33
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   288
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   289
    "Created: / 15-03-2008 / 20:30:13 / janfrog"
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   290
    "Modified: / 31-03-2008 / 12:47:43 / janfrog"
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   291
    "Modified: / 10-04-2010 / 12:40:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   292
!
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   293
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   294
workingCopyIn: directory
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   295
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   296
    (workingCopy notNil and:[workingCopy path = directory])
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   297
        ifTrue:
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   298
            [^workingCopy]
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   299
        ifFalse:
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   300
            [^(manager workingCopyForPackage: package in: directory)
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   301
                repository: self;
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   302
                yourself].
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   303
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   304
    "Created: / 10-04-2010 / 12:44:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
33
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   305
! !
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   306
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   307
!Repository methodsFor:'accessing - containers'!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   308
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   309
containerNameForClass:arg
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   310
    ^ self class containerNameForClass:arg
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   311
!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   312
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   313
containerNameForExtensions: language
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   314
    ^ self class containerNameForExtensions: language
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   315
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   316
    "Created: / 30-12-2009 / 21:59:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
33
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   317
! !
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   318
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   319
!Repository methodsFor:'accessing - tasks'!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   320
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   321
commitTask
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   322
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   323
    ^self workingCopy commitTask
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   324
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   325
    "Created: / 24-03-2009 / 15:14:31 / Jan Vrany <vranyj1@fel.cvut.cz>"
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   326
!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   327
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   328
updateTask
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   329
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   330
    ^self workingCopy updateTask
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   331
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   332
    "Created: / 24-03-2009 / 15:14:40 / Jan Vrany <vranyj1@fel.cvut.cz>"
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   333
! !
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   334
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   335
!Repository methodsFor:'commands'!
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   336
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   337
cat: file
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   338
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   339
    ^self cat: file revision: SVN::Revision head
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   340
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   341
    "Created: / 19-04-2008 / 10:51:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   342
!
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   343
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   344
cat:file revision:revision 
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   345
    ^ self workingCopy isValid 
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   346
        ifTrue:[ self workingCopy cat:file revision:revision ]
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   347
        ifFalse:[ self branch cat:file revision:revision ]
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   348
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   349
    "Created: / 19-04-2008 / 10:51:54 / Jan Vrany <vranyj1@fel.cvut.cz>"
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   350
    "Modified: / 19-08-2009 / 10:00:59 / Jan Vrany <vranyj1@fel.cvut.cz>"
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   351
    "Modified: / 02-01-2010 / 13:21:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   352
! !
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   353
33
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   354
!Repository methodsFor:'comparing'!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   355
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   356
= anotherRepo
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   357
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   358
    ^self class = anotherRepo class
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   359
        and:[self url = anotherRepo url
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   360
            and:[self package = anotherRepo package]]
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   361
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   362
    "Created: / 31-03-2008 / 14:39:29 / janfrog"
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   363
!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   364
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   365
hash
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   366
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   367
    ^url hash bitXor: package hash
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   368
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   369
    "Created: / 31-03-2008 / 14:39:57 / janfrog"
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   370
! !
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   371
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   372
!Repository methodsFor:'converting'!
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   373
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   374
configuration
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   375
    |c|
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   376
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   377
    c := Configuration newRepository.
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   378
    c
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   379
        package:package;
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   380
        url:url.
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   381
    self workingCopy branchOrNil 
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   382
        ifNotNil:[ c branch:self workingCopy branchOrNil path ].
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   383
    ^ c
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   384
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   385
    "Created: / 24-03-2010 / 22:35:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   386
! !
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   387
33
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   388
!Repository methodsFor:'error reporting'!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   389
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   390
svnError: aMessage
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   391
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   392
    self error: aMessage
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   393
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   394
    "Created: / 19-03-2008 / 10:00:55 / janfrog"
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   395
! !
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   396
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   397
!Repository methodsFor:'initialization'!
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   398
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   399
initialize
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   400
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   401
    branches := CacheEntry receiver: self selector: #basicBranchesAndTags.
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   402
    "/ super initialize.   -- commented since inherited method does nothing
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   403
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   404
    "Modified: / 10-04-2010 / 12:39:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   405
! !
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   406
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   407
!Repository methodsFor:'printing & storing'!
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   408
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   409
printOn:aStream
1170
a4d00e6bb9b7 #OTHER by mawalch
mawalch
parents: 1082
diff changeset
   410
    "append a printed representation of the receiver to the argument, aStream"
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   411
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   412
    super printOn:aStream.
1170
a4d00e6bb9b7 #OTHER by mawalch
mawalch
parents: 1082
diff changeset
   413
    aStream
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   414
        nextPut:$(;
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   415
        nextPutAll: url;
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   416
        nextPut:$).
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   417
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   418
    "Modified: / 14-04-2011 / 17:43:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   419
! !
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   420
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   421
!Repository methodsFor:'private'!
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   422
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   423
basicBranchesAndTags
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   424
    | burl topLevelDirs  branches |
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   425
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   426
    burl := self urlForBranches.
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   427
    branches := OrderedCollection new.
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   428
    topLevelDirs := ListCommand list: burl.
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   429
     "Try trunk branch"
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   430
    (topLevelDirs anySatisfy: [:entry | entry path = 'trunk' ]) 
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   431
        ifTrue: 
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   432
            [ branches add: ((Branch new)
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   433
                        repository: self;
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   434
                        path: '/trunk/') ]
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   435
        ifFalse: 
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   436
            [ branches add: ((Branch new)
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   437
                        repository: self;
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   438
                        path: '').
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   439
            ^ branches ].
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   440
     "Try  branches"
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   441
    (topLevelDirs anySatisfy: [:entry | entry path = 'branches' ]) 
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   442
        ifTrue: 
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   443
            [ (ListCommand list: burl , '/branches/') do: 
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   444
                    [:branchEntry | 
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   445
                    branches add: ((Branch new)
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   446
                                repository: self;
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   447
                                path: '/branches/' , branchEntry path) ] ].
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   448
     "Try tags"
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   449
    (topLevelDirs anySatisfy: [:entry | entry path = 'tags' ]) 
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   450
        ifTrue: 
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   451
            [ (ListCommand list: burl , '/tags/') do: 
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   452
                    [:branchEntry | 
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   453
                    branches add: ((Branch new)
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   454
                                repository: self;
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   455
                                path: '/tags/' , branchEntry path) ] ].
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   456
    ^ branches.
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   457
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   458
    "Created: / 14-04-2008 / 11:01:15 / Jan Vrany <vranyj1@fel.cvut.cz>"
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   459
    "Modified: / 19-08-2009 / 13:27:48 / Jan Vrany <vranyj1@fel.cvut.cz>"
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   460
    "Modified: / 14-03-2011 / 10:37:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   461
!
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   462
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   463
urlForBranch: path
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   464
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   465
    ^url expandPlaceholdersWith: 
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   466
        (Dictionary new     
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   467
            at: 'BRANCH' put: path;
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   468
            yourself)
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   469
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   470
    "Created: / 14-03-2011 / 09:57:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   471
!
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   472
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   473
urlForBranches
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   474
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   475
    ^self class urlForBranches: url
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   476
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   477
    "Created: / 14-03-2011 / 09:56:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   478
    "Modified: / 23-03-2011 / 18:47:09 / Jan Vrany <jan.vrany@fit.cvut.cz>"
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   479
! !
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   480
33
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   481
!Repository methodsFor:'queries'!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   482
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   483
exists
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   484
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   485
    ^[
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   486
        ListCommand new
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   487
            branch: self;
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   488
            url: self urlForBranches;
33
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   489
            execute.
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   490
        true
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   491
    ] on: SVN::SVNError do:[ false ]
33
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   492
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   493
    "Created: / 16-03-2008 / 12:12:17 / janfrog"
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   494
    "Modified: / 19-08-2009 / 13:08:25 / Jan Vrany <vranyj1@fel.cvut.cz>"
777
08c9d6752e22 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 608
diff changeset
   495
    "Modified: / 14-03-2011 / 10:33:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
33
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   496
! !
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   497
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   498
!Repository class methodsFor:'documentation'!
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   499
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   500
version
828
3c752e3ab464 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 777
diff changeset
   501
    ^ '$Header$'
183
3e8f4e07a809 changed: #version_SVN
fm
parents: 33
diff changeset
   502
!
3e8f4e07a809 changed: #version_SVN
fm
parents: 33
diff changeset
   503
3e8f4e07a809 changed: #version_SVN
fm
parents: 33
diff changeset
   504
version_SVN
1170
a4d00e6bb9b7 #OTHER by mawalch
mawalch
parents: 1082
diff changeset
   505
    ^ '$Id$'
33
cb4a953f1b9c initial checkin
fm
parents:
diff changeset
   506
! !
1170
a4d00e6bb9b7 #OTHER by mawalch
mawalch
parents: 1082
diff changeset
   507