SVNSourceCodeManager.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Wed, 11 Apr 2012 18:16:30 +0200
changeset 1097 dfb1b29688d1
parent 1083 5e80705106c0
child 1105 b78c2d9e3b07
permissions -rw-r--r--
added: #performsCompilabilityChecks
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
     1
"
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
     2
 Copyright (c) 2007-2010 Jan Vrany
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
     3
 Copyright (c) 2009-2010 eXept Software AG
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
     4
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
     5
 Permission is hereby granted, free of charge, to any person
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
     6
 obtaining a copy of this software and associated documentation
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
     7
 files (the 'Software'), to deal in the Software without
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
     8
 restriction, including without limitation the rights to use,
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
     9
 copy, modify, merge, publish, distribute, sublicense, and/or sell
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    10
 copies of the Software, and to permit persons to whom the
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    11
 Software is furnished to do so, subject to the following
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    12
 conditions:
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    13
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    14
 The above copyright notice and this permission notice shall be
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    15
 included in all copies or substantial portions of the Software.
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    16
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    17
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    18
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    19
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    20
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    21
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    22
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    23
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    24
 OTHER DEALINGS IN THE SOFTWARE.
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    25
"
482
cd24ab77ae56 *** empty log message ***
fm
parents: 378
diff changeset
    26
"{ Package: 'stx:libsvn' }"
378
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
    27
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
    28
AbstractSourceCodeManager subclass:#SVNSourceCodeManager
956
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
    29
	instanceVariableNames:''
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
    30
	classVariableNames:'LoadInProgressQuery'
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
    31
	poolDictionaries:''
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
    32
	category:'System-SourceCodeManagement'
955
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
    33
!
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
    34
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
    35
SourceCodeManagerUtilities subclass:#Utilities
956
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
    36
	instanceVariableNames:''
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
    37
	classVariableNames:''
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
    38
	poolDictionaries:''
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
    39
	privateIn:SVNSourceCodeManager
378
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
    40
!
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
    41
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
    42
!SVNSourceCodeManager class methodsFor:'documentation'!
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
    43
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    44
copyright
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    45
"
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    46
 Copyright (c) 2007-2010 Jan Vrany
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    47
 Copyright (c) 2009-2010 eXept Software AG
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    48
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    49
 Permission is hereby granted, free of charge, to any person
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    50
 obtaining a copy of this software and associated documentation
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    51
 files (the 'Software'), to deal in the Software without
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    52
 restriction, including without limitation the rights to use,
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    53
 copy, modify, merge, publish, distribute, sublicense, and/or sell
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    54
 copies of the Software, and to permit persons to whom the
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    55
 Software is furnished to do so, subject to the following
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    56
 conditions:
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    57
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    58
 The above copyright notice and this permission notice shall be
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    59
 included in all copies or substantial portions of the Software.
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    60
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    61
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    62
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    63
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    64
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    65
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    66
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    67
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    68
 OTHER DEALINGS IN THE SOFTWARE.
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    69
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    70
"
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    71
!
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    72
378
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
    73
documentation
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
    74
"
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
    75
    For now, this is a dummy SourceCodeManager.
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
    76
    It is only provided to deliver the correct versionMethodNameTemplates
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
    77
    and versionMethod names.
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
    78
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
    79
    Might get more in the future.
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
    80
"
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
    81
! !
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
    82
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    83
!SVNSourceCodeManager class methodsFor:'Signal constants'!
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    84
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    85
loadInProgressQuery
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    86
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    87
    LoadInProgressQuery ifNil:
955
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
    88
        [LoadInProgressQuery := QuerySignal new].
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    89
    ^LoadInProgressQuery
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    90
! !
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
    91
955
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
    92
!SVNSourceCodeManager class methodsFor:'accessing'!
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
    93
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
    94
repositoryNameForPackage:packageId 
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
    95
    "superclass AbstractSourceCodeManager class says that I am responsible to implement this method"
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
    96
    
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
    97
    |repo|
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
    98
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
    99
    repo := SVN::RepositoryManager current repositoryForPackage:packageId.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   100
    repo isNil ifTrue:[
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   101
        ^ 'N/A'
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   102
    ] ifFalse:[
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   103
        ^ repo url asString
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   104
    ]
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   105
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   106
    "Modified: / 10-10-2011 / 19:49:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   107
!
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   108
968
6d8ea40478b6 added shownInBrowserMenus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 956
diff changeset
   109
shownInBrowserMenus
6d8ea40478b6 added shownInBrowserMenus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 956
diff changeset
   110
    "can be redefined in subclasses which can be suppressed in the browser's menus"
6d8ea40478b6 added shownInBrowserMenus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 956
diff changeset
   111
6d8ea40478b6 added shownInBrowserMenus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 956
diff changeset
   112
    ^ UserPreferences current svnEnabled
6d8ea40478b6 added shownInBrowserMenus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 956
diff changeset
   113
6d8ea40478b6 added shownInBrowserMenus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 956
diff changeset
   114
    "Created: / 08-01-2012 / 19:56:22 / cg"
6d8ea40478b6 added shownInBrowserMenus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 956
diff changeset
   115
    "Created: / 19-01-2012 / 13:11:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6d8ea40478b6 added shownInBrowserMenus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 956
diff changeset
   116
!
6d8ea40478b6 added shownInBrowserMenus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 956
diff changeset
   117
6d8ea40478b6 added shownInBrowserMenus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 956
diff changeset
   118
shownInBrowserMenus:aBoolean
6d8ea40478b6 added shownInBrowserMenus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 956
diff changeset
   119
    "can be redefined in subclasses which can be suppressed in the browser's menus"
6d8ea40478b6 added shownInBrowserMenus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 956
diff changeset
   120
6d8ea40478b6 added shownInBrowserMenus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 956
diff changeset
   121
    ^ UserPreferences current svnEnabled: aBoolean
6d8ea40478b6 added shownInBrowserMenus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 956
diff changeset
   122
6d8ea40478b6 added shownInBrowserMenus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 956
diff changeset
   123
    "Created: / 19-01-2012 / 13:11:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6d8ea40478b6 added shownInBrowserMenus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 956
diff changeset
   124
!
6d8ea40478b6 added shownInBrowserMenus
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 956
diff changeset
   125
955
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   126
utilities
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   127
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   128
    ^Utilities forManager: self.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   129
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   130
    "Created: / 11-10-2011 / 11:24:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   131
! !
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   132
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   133
!SVNSourceCodeManager class methodsFor:'basic access'!
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   134
1064
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   135
checkin:filename text:contents directory:directory module:module logMessage: message force: force
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   136
    | branch wc |
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   137
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   138
    branch := self branchForModule: module directory: directory.
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   139
    wc := branch repository workingCopy.
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   140
    wc ensureIsValid.
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   141
    (wc path / filename) writingFileDo:[:s|s nextPutAll: contents].
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   142
    wc commit: message files: { filename }
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   143
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   144
    "Created: / 27-11-2011 / 22:51:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   145
    "Modified: / 14-03-2012 / 17:16:12 / jv"
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   146
!
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   147
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   148
checkinClass:aClass fileName:classFileName directory:packageDir module:moduleDir source:sourceFile logMessage:logMessage force:force
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   149
    "checkin of a class into the source repository.
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   150
     Return true if ok, false if not."
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   151
955
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   152
    | repo |
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   153
    repo := SVN::RepositoryManager repositoryForModule: moduleDir directory: packageDir.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   154
    repo ifNil:[^false].
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   155
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   156
    self shouldImplement: 'Not yet finished'.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   157
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   158
    ^false
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   159
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   160
    "Modified: / 12-10-2011 / 18:50:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   161
!
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   162
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   163
checkoutModule:aModule directory:aPackage andDo:aBlock
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   164
    "check out everything from a package into a temporary directory.
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   165
     Then evaluate aBlock, passing the name of that temp-directory.
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   166
     Afterwards, the tempDir is removed.
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   167
     Return true, if OK, false if any error occurred."
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   168
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   169
    | pkg tempDir repo workingCopy ok |
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   170
    pkg := (PackageId module: aModule directory: aPackage) asSymbol.
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   171
    repo := SVN::RepositoryManager repositoryForPackage: pkg.
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   172
    repo ifNil:[self error:('No repository for package %1' bindWith: pkg)].
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   173
    [ok := false.
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   174
    tempDir := Filename newTemporaryDirectory.
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   175
    workingCopy := repo workingCopyIn: tempDir.
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   176
    workingCopy checkout.
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   177
    ok := true.
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   178
    aBlock value: tempDir] ensure:
955
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   179
        [[tempDir recursiveRemove]
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   180
            on: Error do:
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   181
                [:ex|
956
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   182
                OperatingSystem isMSWINDOWSlike 
955
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   183
                    ifTrue:[Delay waitForSeconds: 3.[tempDir recursiveRemove] on: Error do:["nothing"]]
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   184
                    ifFalse:[ex pass]]].
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   185
    ^ok
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   186
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   187
    "Modified: / 19-04-2010 / 20:13:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   188
!
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   189
1064
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   190
removeContainer:container inModule:module directory:directory
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   191
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   192
    | repo wc |
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   193
    repo := self repositoryForModule: module directory: directory.
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   194
    repo isNil ifTrue:[
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   195
        self error:'No SVN repository'.
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   196
        ^self
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   197
    ].
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   198
    wc := repo workingCopy.
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   199
    wc delete: container
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   200
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   201
    "Created: / 23-12-2011 / 18:20:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   202
!
6329f1ac5763 changed: #checkin:text:directory:module:logMessage:force:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1061
diff changeset
   203
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   204
streamForClass:aClass fileName:classFileName revision:revisionString directory:packageDir module:moduleDir cache:doCache
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   205
    "extract a classes source code and return an open readStream on it.
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   206
     A revision of nil selects the current (in image) revision.
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   207
     The classes source code is extracted using the revision and the sourceCodeInfo,
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   208
     which itself is extracted from the classes packageString."
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   209
1061
1bd5efd9d6f2 workaround for CVS HEAD libbasic: #streamForClass:fileName:revision:directory:module:cache:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1059
diff changeset
   210
    | pkg repo rev revInfo |
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   211
    pkg := moduleDir , ':' , packageDir.
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   212
    repo := SVN::RepositoryManager repositoryForPackage: pkg.
955
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   213
    repo ifNil:[^nil].
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   214
    (revisionString notNil and:[revisionString ~~ #newest]) ifTrue:[
1061
1bd5efd9d6f2 workaround for CVS HEAD libbasic: #streamForClass:fileName:revision:directory:module:cache:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1059
diff changeset
   215
        "JV@2012-03-13: HACK, as binaryRevision does not work reliably on 
1bd5efd9d6f2 workaround for CVS HEAD libbasic: #streamForClass:fileName:revision:directory:module:cache:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1059
diff changeset
   216
         CVS HEAD, sigh"
1bd5efd9d6f2 workaround for CVS HEAD libbasic: #streamForClass:fileName:revision:directory:module:cache:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1059
diff changeset
   217
        revisionString ~= '0' ifTrue:[
1bd5efd9d6f2 workaround for CVS HEAD libbasic: #streamForClass:fileName:revision:directory:module:cache:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1059
diff changeset
   218
            rev := SVN::Revision fromString: revisionString.
1bd5efd9d6f2 workaround for CVS HEAD libbasic: #streamForClass:fileName:revision:directory:module:cache:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1059
diff changeset
   219
        ] ifFalse:[
1bd5efd9d6f2 workaround for CVS HEAD libbasic: #streamForClass:fileName:revision:directory:module:cache:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1059
diff changeset
   220
            revInfo := aClass revisionInfoOfManager: self.
1bd5efd9d6f2 workaround for CVS HEAD libbasic: #streamForClass:fileName:revision:directory:module:cache:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1059
diff changeset
   221
            revInfo notNil ifTrue:[
1bd5efd9d6f2 workaround for CVS HEAD libbasic: #streamForClass:fileName:revision:directory:module:cache:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1059
diff changeset
   222
                rev := revInfo revision
1bd5efd9d6f2 workaround for CVS HEAD libbasic: #streamForClass:fileName:revision:directory:module:cache:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1059
diff changeset
   223
            ] ifFalse:[                     
1bd5efd9d6f2 workaround for CVS HEAD libbasic: #streamForClass:fileName:revision:directory:module:cache:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1059
diff changeset
   224
                "Hmmm....what to se here?"
1bd5efd9d6f2 workaround for CVS HEAD libbasic: #streamForClass:fileName:revision:directory:module:cache:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1059
diff changeset
   225
                rev := SVN::Revision head
1bd5efd9d6f2 workaround for CVS HEAD libbasic: #streamForClass:fileName:revision:directory:module:cache:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1059
diff changeset
   226
            ]
1bd5efd9d6f2 workaround for CVS HEAD libbasic: #streamForClass:fileName:revision:directory:module:cache:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1059
diff changeset
   227
        ]
955
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   228
    ] ifFalse:[
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   229
        rev := SVN::Revision head.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   230
    ].
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   231
    doCache ifTrue:[
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   232
        ^SourceCodeCache default
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   233
            streamForClass:aClass 
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   234
            fileName:classFileName 
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   235
            revision:revisionString 
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   236
            repository: 'svn' "TODO: Use repository ID here" 
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   237
            module:moduleDir 
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   238
            directory:packageDir 
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   239
            ifAbsent: [:destination|
1059
f37fb1ed1182 changed: #streamForClass:fileName:revision:directory:module:cache:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1021
diff changeset
   240
                ActivityNotification notify: ('Checking out ', classFileName , '@' , rev asString , '...').
955
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   241
                [SVN::ExportCommand new
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   242
                    branch: repo branch;
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   243
                    path: classFileName;
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   244
                    revision: rev;
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   245
                    destination: destination pathName;
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   246
                    execute.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   247
                    destination exists ifTrue:[
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   248
                        destination readStream
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   249
                    ] ifFalse:[
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   250
                        nil
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   251
                    ]
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   252
                ] on: SVN::SVNError do:[
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   253
                    nil                    
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   254
                ]
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   255
            ]            
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   256
    ] ifFalse:[
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   257
        ^[
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   258
            (repo cat: classFileName revision: rev) readStream
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   259
        ] on: SVN::SVNError do:[
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   260
            nil        
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   261
        ]
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   262
    ]
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   263
1059
f37fb1ed1182 changed: #streamForClass:fileName:revision:directory:module:cache:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1021
diff changeset
   264
    "Modified: / 13-03-2012 / 15:33:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1061
1bd5efd9d6f2 workaround for CVS HEAD libbasic: #streamForClass:fileName:revision:directory:module:cache:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1059
diff changeset
   265
    "Modified: / 13-03-2012 / 18:11:10 / Jan Vrany <jan.vrany.fit.cvut.cz>"
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   266
! !
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   267
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   268
!SVNSourceCodeManager class methodsFor:'basic administration'!
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   269
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   270
checkForExistingContainer:fileName inModule:moduleName directory:dirName
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   271
    "check for a container to be present"
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   272
955
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   273
    | repo  |
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   274
    repo := SVN::RepositoryManager repositoryForModule: moduleName directory: dirName.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   275
    repo isNil ifTrue:[^self].
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   276
    ^repo branch exists: fileName.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   277
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   278
    "Modified: / 11-10-2011 / 11:15:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   279
!
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   280
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   281
checkForExistingModule:moduleName
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   282
    "check for a module directory to be present"
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   283
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   284
    ^ self shouldImplement
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   285
!
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   286
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   287
checkForExistingModule:moduleDir directory:packageDir
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   288
    "check for a package directory to be present"
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   289
955
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   290
    | pkg repo |
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   291
    pkg := moduleDir , ':' , packageDir.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   292
    repo := SVN::RepositoryManager repositoryForPackage: pkg.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   293
    ^repo exists
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   294
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   295
    "Modified: / 27-11-2011 / 22:46:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   296
!
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   297
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   298
createContainerFor:aClass inModule:moduleName directory:dirName container:fileName
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   299
    "create a new container & check into it an initial version of aClass"
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   300
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   301
    ^ self shouldImplement
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   302
!
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   303
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   304
createModule:moduleName
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   305
    "create a new module directory"
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   306
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   307
    ^ self shouldImplement
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   308
!
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   309
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   310
createModule:module directory:directory
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   311
    "create a new package directory"
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   312
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   313
    ^ self shouldImplement
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   314
!
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   315
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   316
initialRevisionStringFor:aClass inModule:moduleDir directory:packageDir container:fileName
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   317
    "return a string usable as initial revision string"
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   318
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   319
    ^ self shouldImplement
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   320
!
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   321
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   322
revisionLogOf:clsOrNil fromRevision:rev1OrNil toRevision:rev2OrNil numberOfRevisions:limitOrNil fileName:classFileName directory:packageDir module:moduleDir
955
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   323
    "Actually do return a revisionLog. The main worker method."
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   324
    "
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   325
    If numRevisionsOrNil is notNil, it limits the number of revision records returned -
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   326
     only numRevions of the newest revision infos will be collected.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   327
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   328
     The returned information is a structure (IdentityDictionary)
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   329
     filled with:
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   330
            #container          -> the RCS/CVS container file name 
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   331
            #cvsRoot            -> the CVS root (repository) 
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   332
            #filename           -> the actual source file name
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   333
            #newestRevision     -> the revisionString of the newest revision
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   334
            #numberOfRevisions  -> the number of revisions in the container (nil for all)
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   335
            #revisions          -> collection of per-revision info (see below)
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   336
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   337
            firstRevOrNil / lastRevOrNil specify from which revisions a logEntry is wanted:
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   338
             -If firstRevOrNil is nil, the first revision is the initial revision
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   339
              otherwise, the log starts with that revision.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   340
             -If lastRevOrNil is nil, the last revision is the newest revision
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   341
              otherwise, the log ends with that revision.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   342
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   343
             -If both are nil, all logEntries are extracted.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   344
             -If both are 0 (not nil), no logEntries are extracted (i.e. only the header).
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   345
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   346
            per revision info consists of one record per revision:
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   347
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   348
              #revision              -> the revision string
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   349
              #author                -> who checked that revision into the repository
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   350
              #date                  -> when was it checked in
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   351
              #state                 -> the RCS state
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   352
              #numberOfChangedLines  -> the number of changed line w.r.t the previous
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   353
              #logMessage            -> the checkIn log message
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   354
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   355
            revisions are ordered newest first 
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   356
            (i.e. the last entry is for the initial revision; the first for the most recent one)
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   357
            Attention: if state = 'dead' that revision is no longer valid.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   358
    "
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   359
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   360
    | repo log rev1 rev2 limit branch info |
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   361
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   362
    repo := SVN::RepositoryManager repositoryForModule: moduleDir directory: packageDir.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   363
    repo isNil ifTrue:[^nil"No repository..."].
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   364
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   365
    (rev1OrNil == 0 and:[rev2OrNil == 0]) ifTrue:[
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   366
        rev1 := SVN::Revision number:0.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   367
        rev2 := SVN::Revision head.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   368
        limit := 1.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   369
    ] ifFalse:[
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   370
       (rev1OrNil == nil and:[rev2OrNil == nil]) ifTrue:[
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   371
            rev1 := SVN::Revision number:0.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   372
            rev2 := SVN::Revision head.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   373
            limit := limitOrNil.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   374
        ] ifFalse:[
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   375
            rev1 := SVN::Revision number: rev1OrNil ? 0.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   376
            rev2 := rev1OrNil isNil ifTrue:[SVN::Revision head] ifFalse:[SVN::Revision number: rev2OrNil].
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   377
            limit := limitOrNil.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   378
            self breakPoint: #jv info: 'Review'.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   379
        ]
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   380
    ].
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   381
    branch := self branchForModule: moduleDir directory: packageDir.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   382
    branch isNil ifTrue:[
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   383
        self breakPoint: #jv.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   384
        self error:('No branch for package %1:%2' bindWith: moduleDir with: packageDir) mayProceed: true.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   385
        ^self
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   386
    ].
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   387
955
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   388
    log := branch log: classFileName limit: limit revisions: (rev2 to: rev1).
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   389
    info := IdentityDictionary new.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   390
    info at:#container          put: classFileName.         "/ -> the revision string
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   391
    info at:#cvsRoot            put: branch url asString.   "/ -> the CVS root (repository)
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   392
    info at:#filename           put: classFileName.         "/ -> the actual source file name
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   393
    info at:#newestRevision     put: log first revision asString. "/-> the revisionString of the newest revision
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   394
    info at:#numberOfRevisions  put: log size.              "/-> the number of revisions in the container (nil for all)
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   395
    info at:#revisions          put: (log collect:[:entry|
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   396
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   397
        | info |
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   398
        info := IdentityDictionary new.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   399
        info at:#revision              put: entry revision asString."/ -> the revision string
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   400
        info at:#author                put: entry author."/ -> who checked that revision into the repository
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   401
        info at:#date                  put: entry date printString."/ -> when was it checked in
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   402
        info at:#state                 put: 'Exp'. "/ -> the RCS state
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   403
        info at:#numberOfChangedLines  put: 'N/A'. "/ -> the number of changed line w.r.t the previous
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   404
        info at:#logMessage            put: entry message."/ -> the checkIn log message.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   405
        info
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   406
    ]).
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   407
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   408
    
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   409
    ^info
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   410
    
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   411
    "
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   412
        SVNSourceCodeManager revisionLogOf:Array fromRevision:0 toRevision:0.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   413
        SVNSourceCodeManager revisionLogOf:Array fromRevision:'10000' toRevision:'10005'
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   414
    "
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   415
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   416
    "Modified: / 18-11-2011 / 16:11:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   417
! !
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   418
956
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   419
!SVNSourceCodeManager class methodsFor:'misc'!
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   420
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   421
savePreferencesOn:aFileStream
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   422
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   423
    "Nothing to do, since my preferences are stored in 
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   424
    UserPreferences dictionary"
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   425
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   426
    "Created: / 10-06-2011 / 14:15:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   427
! !
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   428
955
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   429
!SVNSourceCodeManager class methodsFor:'private'!
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   430
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   431
branchForModule: module directory: directory
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   432
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   433
    | repo |
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   434
    repo := self repositoryForModule: module directory: directory .
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   435
    ^repo notNil ifTrue:[
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   436
        repo branch
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   437
    ] ifFalse:[
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   438
        nil
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   439
    ]
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   440
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   441
    "Created: / 15-10-2011 / 16:26:14 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   442
!
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   443
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   444
branchForPackage: package
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   445
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   446
    | repo |
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   447
    repo := SVN::RepositoryManager repositoryForPackage: package.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   448
    ^repo notNil ifTrue:[
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   449
        repo branch
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   450
    ] ifFalse:[
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   451
        nil
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   452
    ]
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   453
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   454
    "Created: / 15-10-2011 / 23:26:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   455
!
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   456
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   457
pathInRepositoryFrom:containerPath forPackage:packageID
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   458
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   459
    ^nil
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   460
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   461
    "Created: / 13-10-2011 / 11:32:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   462
!
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   463
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   464
repositoryForModule: module directory: directory
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   465
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   466
    | repo |
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   467
    repo := SVN::RepositoryManager repositoryForModule: module directory: directory.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   468
    ^repo
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   469
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   470
    "Created: / 23-12-2011 / 18:57:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   471
! !
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   472
378
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
   473
!SVNSourceCodeManager class methodsFor:'queries'!
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
   474
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
   475
isExperimental
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   476
    ^ false
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   477
    "/^ OperatingSystem getLoginName ~= 'cg'.
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   478
    "/^ true
570
8261f01a7e7d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 541
diff changeset
   479
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   480
    "Modified: / 05-12-2009 / 10:23:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
570
8261f01a7e7d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 541
diff changeset
   481
!
8261f01a7e7d *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 541
diff changeset
   482
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   483
isResponsibleForPackage: packageId
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   484
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   485
    UserPreferences current svnEnabled ifFalse:[^false].
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   486
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   487
    ^SVN::RepositoryManager current hasRepositoryForPackage: packageId
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   488
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   489
    "Created: / 05-12-2009 / 10:36:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   490
    "Modified: / 15-09-2010 / 14:55:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
378
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
   491
!
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
   492
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
   493
managerTypeName
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   494
    ^ 'SubVersion'
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   495
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   496
    "Modified: / 07-07-2011 / 23:11:41 / jv"
378
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
   497
!
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
   498
921
6c3ba44ed3a5 added: #managerTypeNameShort
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 851
diff changeset
   499
managerTypeNameShort
956
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   500
921
6c3ba44ed3a5 added: #managerTypeNameShort
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 851
diff changeset
   501
    "Answers short version manager name suitable for UI,
6c3ba44ed3a5 added: #managerTypeNameShort
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 851
diff changeset
   502
     i,e., CVS, SVN, P4. Used in cases where sorter strings
6c3ba44ed3a5 added: #managerTypeNameShort
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 851
diff changeset
   503
     are preferred. Defaults to #managerTypeName"
6c3ba44ed3a5 added: #managerTypeNameShort
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 851
diff changeset
   504
6c3ba44ed3a5 added: #managerTypeNameShort
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 851
diff changeset
   505
    ^'SVN'
6c3ba44ed3a5 added: #managerTypeNameShort
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 851
diff changeset
   506
6c3ba44ed3a5 added: #managerTypeNameShort
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 851
diff changeset
   507
    "Created: / 03-10-2011 / 13:28:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
6c3ba44ed3a5 added: #managerTypeNameShort
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 851
diff changeset
   508
!
6c3ba44ed3a5 added: #managerTypeNameShort
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 851
diff changeset
   509
378
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
   510
nameOfVersionMethodForExtensions
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
   511
    ^ #'extensionsVersion_SVN'
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
   512
!
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
   513
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
   514
nameOfVersionMethodInClasses
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
   515
    ^ #'version_SVN'
586
8f0468063710 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   516
!
8f0468063710 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   517
1097
dfb1b29688d1 added: #performsCompilabilityChecks
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1083
diff changeset
   518
performsCompilabilityChecks
dfb1b29688d1 added: #performsCompilabilityChecks
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1083
diff changeset
   519
    "Should return true, if the manager itself performs
dfb1b29688d1 added: #performsCompilabilityChecks
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1083
diff changeset
   520
     compilability checks, false otherwise."
dfb1b29688d1 added: #performsCompilabilityChecks
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1083
diff changeset
   521
dfb1b29688d1 added: #performsCompilabilityChecks
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1083
diff changeset
   522
    "lisvn performs check if ProjectChecker is available"
dfb1b29688d1 added: #performsCompilabilityChecks
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1083
diff changeset
   523
    ^(ConfigurableFeatures includesFeature:#ProjectChecker)
dfb1b29688d1 added: #performsCompilabilityChecks
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1083
diff changeset
   524
dfb1b29688d1 added: #performsCompilabilityChecks
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1083
diff changeset
   525
    "
dfb1b29688d1 added: #performsCompilabilityChecks
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1083
diff changeset
   526
        SVNSourceCodeManager performsCompilabilityChecks
dfb1b29688d1 added: #performsCompilabilityChecks
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1083
diff changeset
   527
        CVSSourceCodeManager performsCompilabilityChecks
dfb1b29688d1 added: #performsCompilabilityChecks
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1083
diff changeset
   528
    "
dfb1b29688d1 added: #performsCompilabilityChecks
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1083
diff changeset
   529
dfb1b29688d1 added: #performsCompilabilityChecks
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1083
diff changeset
   530
    "Created: / 11-04-2012 / 16:55:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
dfb1b29688d1 added: #performsCompilabilityChecks
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1083
diff changeset
   531
!
dfb1b29688d1 added: #performsCompilabilityChecks
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1083
diff changeset
   532
586
8f0468063710 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 571
diff changeset
   533
settingsApplicationClass
587
02d7ed119335 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   534
    "link to my settings application (needed for the settings dialog"
02d7ed119335 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 586
diff changeset
   535
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   536
    ^ SVN::ConfigurationApp
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   537
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   538
    "Modified: / 07-07-2011 / 23:12:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   539
!
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   540
851
32edde5d1f19 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 797
diff changeset
   541
versionMethodKeyword
956
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   542
851
32edde5d1f19 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 797
diff changeset
   543
    "Answers the keyword used by the version management system to
32edde5d1f19 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 797
diff changeset
   544
     expand a current version in a file (_without_ dollars). For
32edde5d1f19 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 797
diff changeset
   545
     CVS it is 'Header', for SVN 'Id', others may use different
32edde5d1f19 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 797
diff changeset
   546
     keywords. If nil is returned, then the version management does
32edde5d1f19 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 797
diff changeset
   547
     not use any keyword."
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   548
851
32edde5d1f19 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 797
diff changeset
   549
    ^'Id'
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   550
851
32edde5d1f19 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 797
diff changeset
   551
    "Created: / 27-09-2011 / 16:46:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1083
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   552
!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   553
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   554
versionMethodTemplateForRubyFor:aSelector
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   555
    "do not make the thing below a single string - otherwise
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   556
     it would get expanded by the sourcecodemanager, which we do not want here"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   557
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   558
    "Overriden here to use SubVersions fixed-width keywords"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   559
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   560
    ^
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   561
'def self.',aSelector,'()
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   562
    return "$' , self versionMethodKeyword , '::', (String new: 120) , '$"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   563
end'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   564
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   565
    "Created: / 29-03-2012 / 17:50:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   566
!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   567
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   568
versionMethodTemplateForSmalltalkFor:aSelector
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   569
    "do not make the thing below a single string - otherwise
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   570
     it would get expanded by the sourcecodemanager, which we do not want here"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   571
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   572
    ^
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   573
aSelector,'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   574
    ^ ''$', self versionMethodKeyword , '::', (String new: 120) , '$''
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   575
'
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   576
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   577
    "Modified (comment): / 19-08-2011 / 01:19:08 / cg"
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 1064
diff changeset
   578
    "Created: / 29-03-2012 / 17:51:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
378
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
   579
! !
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
   580
539
ad1dec5566e1 added: #loadPackageWithId:fromRepositoryAsAutoloaded:
fm
parents: 482
diff changeset
   581
!SVNSourceCodeManager class methodsFor:'source code access'!
ad1dec5566e1 added: #loadPackageWithId:fromRepositoryAsAutoloaded:
fm
parents: 482
diff changeset
   582
ad1dec5566e1 added: #loadPackageWithId:fromRepositoryAsAutoloaded:
fm
parents: 482
diff changeset
   583
loadPackageWithId: aPackageId fromRepositoryAsAutoloaded: doLoadAsAutoloaded
ad1dec5566e1 added: #loadPackageWithId:fromRepositoryAsAutoloaded:
fm
parents: 482
diff changeset
   584
541
b647383ebf6b changed: #loadPackageWithId:fromRepositoryAsAutoloaded:
fm
parents: 540
diff changeset
   585
     "Return true if loaded, false otherwise."
b647383ebf6b changed: #loadPackageWithId:fromRepositoryAsAutoloaded:
fm
parents: 540
diff changeset
   586
540
3e0ea3ba33b5 changed: #loadPackageWithId:fromRepositoryAsAutoloaded:
fm
parents: 539
diff changeset
   587
    | retval loadBlock |
539
ad1dec5566e1 added: #loadPackageWithId:fromRepositoryAsAutoloaded:
fm
parents: 482
diff changeset
   588
ad1dec5566e1 added: #loadPackageWithId:fromRepositoryAsAutoloaded:
fm
parents: 482
diff changeset
   589
    loadBlock := [
955
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   590
        | repo packageDir manager|
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   591
        manager := SVN::RepositoryManager current.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   592
        repo := manager repositoryForPackage: aPackageId.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   593
        retval := (repo notNil and:[repo exists]) ifTrue:[
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   594
            repo workingCopy checkout: SVN::Revision head full: true.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   595
            packageDir := Smalltalk packageDirectoryForPackageId:aPackageId.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   596
            "Quick and dirty hack to support old version of Smalltalk/X"
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   597
            (Smalltalk respondsTo: #loadPackage:fromDirectory:asAutoloaded:)
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   598
                ifTrue:
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   599
                    ["New API"
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   600
                    Smalltalk
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   601
                        loadPackage:aPackageId
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   602
                        fromDirectory:packageDir
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   603
                        asAutoloaded:doLoadAsAutoloaded]
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   604
                ifFalse:
956
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   605
                    ["Old API"                        
955
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   606
                    Smalltalk
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   607
                        loadPackageWithId:aPackageId
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   608
                        fromDirectory:packageDir
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   609
                        asAutoloaded:doLoadAsAutoloaded
956
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   610
            ].            
955
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   611
        ] ifFalse:[false]
539
ad1dec5566e1 added: #loadPackageWithId:fromRepositoryAsAutoloaded:
fm
parents: 482
diff changeset
   612
    ].
ad1dec5566e1 added: #loadPackageWithId:fromRepositoryAsAutoloaded:
fm
parents: 482
diff changeset
   613
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   614
    (SVNSourceCodeManager loadInProgressQuery query == true)
955
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   615
        ifTrue:[loadBlock value]
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   616
        ifFalse:[
956
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   617
            SVNSourceCodeManager loadInProgressQuery 
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   618
                answer: true 
955
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   619
                do:[
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   620
                    SVN::ProgressDialog
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   621
                        openOn: loadBlock
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   622
                        title: ' Loading...'
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   623
                        subtitle: aPackageId asText allItalic
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   624
                ]
539
ad1dec5566e1 added: #loadPackageWithId:fromRepositoryAsAutoloaded:
fm
parents: 482
diff changeset
   625
    ].
ad1dec5566e1 added: #loadPackageWithId:fromRepositoryAsAutoloaded:
fm
parents: 482
diff changeset
   626
541
b647383ebf6b changed: #loadPackageWithId:fromRepositoryAsAutoloaded:
fm
parents: 540
diff changeset
   627
    ^ retval
539
ad1dec5566e1 added: #loadPackageWithId:fromRepositoryAsAutoloaded:
fm
parents: 482
diff changeset
   628
ad1dec5566e1 added: #loadPackageWithId:fromRepositoryAsAutoloaded:
fm
parents: 482
diff changeset
   629
    "Created: / 09-04-2009 / 17:20:01 / Jan Vrany <vranyj1@fel.cvut.cz>"
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   630
    "Modified: / 25-04-2011 / 15:20:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
539
ad1dec5566e1 added: #loadPackageWithId:fromRepositoryAsAutoloaded:
fm
parents: 482
diff changeset
   631
! !
ad1dec5566e1 added: #loadPackageWithId:fromRepositoryAsAutoloaded:
fm
parents: 482
diff changeset
   632
571
28a4f762f3e8 added: #revisionInfoFromString:
Claus Gittinger <cg@exept.de>
parents: 570
diff changeset
   633
!SVNSourceCodeManager class methodsFor:'source code administration'!
28a4f762f3e8 added: #revisionInfoFromString:
Claus Gittinger <cg@exept.de>
parents: 570
diff changeset
   634
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   635
getExistingContainersInModule:aModule directory:aPackage
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   636
    "{ Pragma: +optSpace }"
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   637
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   638
    ^ self shouldImplement
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   639
!
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   640
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   641
getExistingDirectoriesInModule:aModule
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   642
    "{ Pragma: +optSpace }"
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   643
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   644
    ^ self shouldImplement
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   645
!
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   646
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   647
getExistingModules
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   648
    "{ Pragma: +optSpace }"
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   649
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   650
    ^ self shouldImplement
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   651
!
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   652
571
28a4f762f3e8 added: #revisionInfoFromString:
Claus Gittinger <cg@exept.de>
parents: 570
diff changeset
   653
revisionInfoFromString:aString
28a4f762f3e8 added: #revisionInfoFromString:
Claus Gittinger <cg@exept.de>
parents: 570
diff changeset
   654
    "{ Pragma: +optSpace }"
28a4f762f3e8 added: #revisionInfoFromString:
Claus Gittinger <cg@exept.de>
parents: 570
diff changeset
   655
28a4f762f3e8 added: #revisionInfoFromString:
Claus Gittinger <cg@exept.de>
parents: 570
diff changeset
   656
    "return a dictionary filled with revision info.
28a4f762f3e8 added: #revisionInfoFromString:
Claus Gittinger <cg@exept.de>
parents: 570
diff changeset
   657
     This extracts the relevant info from aString."
28a4f762f3e8 added: #revisionInfoFromString:
Claus Gittinger <cg@exept.de>
parents: 570
diff changeset
   658
921
6c3ba44ed3a5 added: #managerTypeNameShort
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 851
diff changeset
   659
797
48f8701af829 changed: #revisionInfoFromString:
Claus Gittinger <cg@exept.de>
parents: 665
diff changeset
   660
    ^ SVNVersionInfo fromSVNString:aString
571
28a4f762f3e8 added: #revisionInfoFromString:
Claus Gittinger <cg@exept.de>
parents: 570
diff changeset
   661
921
6c3ba44ed3a5 added: #managerTypeNameShort
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 851
diff changeset
   662
571
28a4f762f3e8 added: #revisionInfoFromString:
Claus Gittinger <cg@exept.de>
parents: 570
diff changeset
   663
    "
956
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   664
     self revisionInfoFromString:(Array version_SVN)   
921
6c3ba44ed3a5 added: #managerTypeNameShort
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 851
diff changeset
   665
956
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   666
     self revisionInfoFromString:(stx_libbasic2 extensionsVersion_CVS)   
571
28a4f762f3e8 added: #revisionInfoFromString:
Claus Gittinger <cg@exept.de>
parents: 570
diff changeset
   667
    "
28a4f762f3e8 added: #revisionInfoFromString:
Claus Gittinger <cg@exept.de>
parents: 570
diff changeset
   668
921
6c3ba44ed3a5 added: #managerTypeNameShort
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 851
diff changeset
   669
6c3ba44ed3a5 added: #managerTypeNameShort
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 851
diff changeset
   670
    "Modified: / 29-01-1997 / 19:00:35 / cg"
6c3ba44ed3a5 added: #managerTypeNameShort
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 851
diff changeset
   671
    "Modified: / 03-10-2011 / 13:02:04 / Jan Vrany <jan.vrany@fit.cvut.cz>"
797
48f8701af829 changed: #revisionInfoFromString:
Claus Gittinger <cg@exept.de>
parents: 665
diff changeset
   672
    "Modified (comment): / 29-09-2011 / 21:54:26 / cg"
921
6c3ba44ed3a5 added: #managerTypeNameShort
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 851
diff changeset
   673
571
28a4f762f3e8 added: #revisionInfoFromString:
Claus Gittinger <cg@exept.de>
parents: 570
diff changeset
   674
! !
28a4f762f3e8 added: #revisionInfoFromString:
Claus Gittinger <cg@exept.de>
parents: 570
diff changeset
   675
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   676
!SVNSourceCodeManager class methodsFor:'subclass responsibility'!
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   677
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   678
reportHistoryLogSince:timeGoal filterSTSources:filter filterUser:userFilter filterRepository:repositoryFilter filterModules:moduleFilter inTo:aBlock
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   679
    "superclass AbstractSourceCodeManager class says that I am responsible to implement this method"
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   680
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   681
    ^ self shouldImplement
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   682
! !
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   683
378
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
   684
!SVNSourceCodeManager class methodsFor:'testing'!
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
   685
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
   686
isSVN
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
   687
    ^ true
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
   688
! !
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
   689
955
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   690
!SVNSourceCodeManager::Utilities methodsFor:'utilities-cvs'!
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   691
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   692
checkinClass:aClass withInfo:aLogInfoOrNil withCheck:doCheckClass usingManager:aManagerOrNil
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   693
    "check a class into the source repository.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   694
     If the argument, aLogInfoOrNil isNil, ask interactively for log-message.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   695
     If doCheckClass is true, the class is checked for send of halts etc."
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   696
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   697
   ^self checkinClasses:(Array with: aClass) withInfo:aLogInfoOrNil withCheck:doCheckClass usingManager:aManagerOrNil
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   698
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   699
    "Created: / 25-12-2011 / 23:45:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   700
!
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   701
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   702
checkinClasses:classes withInfo:aLogInfoOrNil withCheck:doCheckClass usingManager:aManagerOrNil
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   703
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   704
    | classesPerPackage |
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   705
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   706
    doCheckClass value ifTrue:[
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   707
        classes do:[:cls|
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   708
            "/ check if the class contains halts, error-sends etc.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   709
            (self checkAndWarnAboutBadMessagesInClass:cls checkAgainHolder:doCheckClass) ifFalse:[
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   710
                ^ false
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   711
            ].
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   712
        ].
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   713
    ].
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   714
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   715
    classesPerPackage := Dictionary new.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   716
    classes do:
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   717
        [:class|
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   718
        (classesPerPackage at: class theNonMetaclass package ifAbsentPut:[Set new])
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   719
            add: class theNonMetaclass].
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   720
    classesPerPackage keysAndValuesDo:
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   721
        [:package :classes| | repo |
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   722
        repo := SVN::RepositoryManager repositoryForPackage:package.
1021
12be1fe92d15 improvements for CommitDialog2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 968
diff changeset
   723
        "/SVN::CommitWizard new
12be1fe92d15 improvements for CommitDialog2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 968
diff changeset
   724
        SVN::CommitDialog2 new
955
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   725
                task: (repo workingCopy commitTask
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   726
                        classes: classes;
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   727
                        message: aLogInfoOrNil;
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   728
                        extensionMethods: #()
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   729
                        yourself);
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   730
                open].
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   731
    ^ true
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   732
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   733
    "Modified: / 06-05-2011 / 10:32:55 / cg"
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   734
    "Created: / 25-12-2011 / 23:46:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   735
!
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   736
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   737
checkinPackage:packageToCheckIn classes:doClasses extensions:doExtensions buildSupport:doBuild askForMethodsInOtherPackages:askForMethodsInOtherPackages
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   738
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   739
    | repo task |
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   740
    repo := SVN::RepositoryManager repositoryForPackage:packageToCheckIn.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   741
    repo isNil ifTrue:[
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   742
        Dialog warn: (resources string: 'No repository for package %1' with: packageToCheckIn).
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   743
        ^self
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   744
    ].
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   745
    task := repo workingCopy commitTask.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   746
    task suppressClasses: doClasses not.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   747
    task suppressExtensions: doExtensions not.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   748
    task suppresBuildSupportFiles: doBuild not.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   749
1021
12be1fe92d15 improvements for CommitDialog2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 968
diff changeset
   750
    "/SVN::CommitWizard new
12be1fe92d15 improvements for CommitDialog2
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 968
diff changeset
   751
    SVN::CommitDialog2 new
955
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   752
            task: task;
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   753
            open
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   754
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   755
    "Created: / 13-10-2011 / 11:16:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   756
!
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   757
956
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   758
compareProject:aProject withRepositoryVersionFrom:aDateOrNilForNewest
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   759
    |diffSet|
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   760
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   761
    diffSet := self diffSetOfProject:aProject againstRepositoryVersionFrom:aDateOrNilForNewest.
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   762
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   763
    (Tools::ChangeSetDiffTool new)
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   764
        diffset:diffSet;
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   765
        title:('Differences of %1' bindWith:aProject);
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   766
        open.
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   767
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   768
    "Created: / 18-01-2012 / 16:04:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   769
!
8f09091779a1 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 955
diff changeset
   770
955
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   771
diffSetOfProject: package againstRepositoryVersionFrom:dateOrNil
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   772
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   773
    | rev branch |
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   774
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   775
    rev := dateOrNil isNil ifTrue:[SVN::Revision head] ifFalse:[SVN::Revision date: dateOrNil].
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   776
    branch := SVNSourceCodeManager branchForPackage: package.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   777
    branch isNil ifTrue:[^nil].
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   778
    ^branch diffSetBetweenImageAndRevision: rev.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   779
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   780
    "Created: / 15-10-2011 / 23:26:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   781
!
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   782
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   783
tagClass:aClass as:tag
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   784
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   785
    Dialog warn: 'Individual class tagging not supported by SubVersion. Tag whole package instead'.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   786
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   787
    "Modified: / 12-09-2006 / 13:03:59 / cg"
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   788
    "Created: / 15-10-2011 / 22:48:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   789
!
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   790
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   791
tagClasses:classes as:tag
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   792
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   793
    Dialog warn: 'Individual class tagging not supported by SubVersion. Tag whole package instead'.
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   794
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   795
    "Modified: / 12-09-2006 / 13:03:59 / cg"
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   796
    "Created: / 15-10-2011 / 22:49:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   797
!
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   798
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   799
tagPackage: package as:tag
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   800
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   801
    Dialog warn: 'Not yet implemented'
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   802
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   803
    "Created: / 12-09-2006 / 13:04:29 / cg"
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   804
    "Created: / 15-10-2011 / 22:49:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   805
! !
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   806
378
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
   807
!SVNSourceCodeManager class methodsFor:'documentation'!
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
   808
851
32edde5d1f19 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 797
diff changeset
   809
version
921
6c3ba44ed3a5 added: #managerTypeNameShort
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 851
diff changeset
   810
    ^ '$Header$'
6c3ba44ed3a5 added: #managerTypeNameShort
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 851
diff changeset
   811
!
6c3ba44ed3a5 added: #managerTypeNameShort
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 851
diff changeset
   812
6c3ba44ed3a5 added: #managerTypeNameShort
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 851
diff changeset
   813
version_CVS
851
32edde5d1f19 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 797
diff changeset
   814
    ^ '$Header$'
32edde5d1f19 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 797
diff changeset
   815
!
32edde5d1f19 checkin to get version methods correct
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 797
diff changeset
   816
665
2c5308a73c17 Updates from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 587
diff changeset
   817
version_SVN
955
5b6779c9e055 Updated from SVN
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 929
diff changeset
   818
    ^ '§Id: SVNSourceCodeManager.st 467 2011-12-25 22:47:17Z vranyj1 §'
378
5e379f6dc369 *** empty log message ***
fm
parents:
diff changeset
   819
! !