PerforceSourceCodeManager.st
author Claus Gittinger <cg@exept.de>
Fri, 01 Jun 2012 09:57:44 +0200
changeset 2826 68c9687a86f2
parent 2732 f36f9cc48d8b
child 2828 d73418f6dc92
permissions -rw-r--r--
**** new version from Christian
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
AbstractSourceCodeManager subclass:#PerforceSourceCodeManager
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
     2
        instanceVariableNames:''
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
     3
        classVariableNames:'PerforceExecutable PerforceModuleRoots PerforceClient
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
     4
                PerforcePort PerforceUser PerforcePassword PerforceTempDir
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
     5
                Verbose PerforceCommandSemaphore PerforceEnabled
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
     6
                PerforceCacheDirectoryName'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
     7
        poolDictionaries:''
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
     8
        category:'System-SourceCodeManagement'
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
Object subclass:#CheckInDefinition
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    12
        instanceVariableNames:'class packageDir classFileName sourceFileName logMessage
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    13
                moduleName manager tempDirectory definitionClass workSpace
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    14
                temporaryWorkSpace package reposRevisionInfoBeforeAction
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    15
                reposRevisionInfoAfterAction revisionStringBeforeAction
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    16
                fileContents'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    17
        classVariableNames:''
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    18
        poolDictionaries:''
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    19
        privateIn:PerforceSourceCodeManager
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    20
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    21
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    22
SimpleDialog subclass:#P4CheckinInfoDialog
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    23
        instanceVariableNames:'descriptionHolder logMessageHolder isStableHolder tagHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    24
                quickCheckInHolder quickCheckInVisibleHolder allowEmptyLogMessage
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    25
                warningMessageHolder logHistory logHistoryHeadLineSelectionHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    26
                submitHolder'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    27
        classVariableNames:''
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    28
        poolDictionaries:''
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    29
        privateIn:PerforceSourceCodeManager
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    30
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    31
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    32
ProceedableError subclass:#PerforceError
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    33
        instanceVariableNames:''
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    34
        classVariableNames:''
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    35
        poolDictionaries:''
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    36
        privateIn:PerforceSourceCodeManager
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    37
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    38
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    39
SourceCodeManagerUtilities subclass:#PerforceSourceCodeManagerUtilities
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    40
        instanceVariableNames:''
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    41
        classVariableNames:''
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    42
        poolDictionaries:''
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    43
        privateIn:PerforceSourceCodeManager
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
2355
6c21470136d2 PerforceVersion as private class
Claus Gittinger <cg@exept.de>
parents: 2354
diff changeset
    46
VersionInfo subclass:#PerforceVersionInfo
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    47
        instanceVariableNames:'repositoryPathName revisionNumber'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    48
        classVariableNames:''
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    49
        poolDictionaries:''
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    50
        privateIn:PerforceSourceCodeManager
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    51
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    52
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    53
SimpleDialog subclass:#SubmitInfoDialog
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    54
        instanceVariableNames:'descriptionHolder logMessageHolder isStableHolder tagHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    55
                quickCheckInHolder quickCheckInVisibleHolder allowEmptyLogMessage
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    56
                warningMessageHolder filesHolder tagItInHolder'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    57
        classVariableNames:'LastSourceLogMessage'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    58
        poolDictionaries:''
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    59
        privateIn:PerforceSourceCodeManager
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    60
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    61
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    62
Object subclass:#WorkSpace
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    63
        instanceVariableNames:'client host owner root views perforceSettings temporaryWorkSpace
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    64
                tempDirectory'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    65
        classVariableNames:'PerforceCommandSemaphore'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    66
        poolDictionaries:''
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    67
        privateIn:PerforceSourceCodeManager
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    68
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    69
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    70
Object subclass:#View
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    71
        instanceVariableNames:'depot local workspace type'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    72
        classVariableNames:''
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    73
        poolDictionaries:''
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    74
        privateIn:PerforceSourceCodeManager::WorkSpace
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    75
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    76
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
!PerforceSourceCodeManager class methodsFor:'accessing'!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    80
flushPerforceWorkspaces
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    81
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    82
    PerforceWorkspaces := nil.
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
perforceClient
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
    |envVar|
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
    88
    PerforceClient notEmptyOrNil ifTrue:[ ^ PerforceClient].
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
    envVar := OperatingSystem getEnvironment:'P4CLIENT'.
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
    envVar notEmptyOrNil ifTrue:[ ^ envVar].
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    91
    ^ 'workspace'
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    92
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
perforceClient:something
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
    PerforceClient := something.
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
perforceEnabled
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
    PerforceEnabled notNil ifTrue:[ ^ false].
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
    ^ PerforceEnabled
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
perforceEnabled:enable
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
    PerforceEnabled := enable.
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
perforceExecutable
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
    ^ PerforceExecutable ? 'p4'
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
perforceExecutable:aString
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
    "set the name of the cvs executable."
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
    aString isEmptyOrNil ifTrue:[
2353
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
   117
        PerforceExecutable := nil
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
    ] ifFalse:[
2353
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
   119
        PerforceExecutable := aString.
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
    ].
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
    "Created: / 21-09-2006 / 15:31:59 / cg"
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
    "Modified: / 21-09-2006 / 16:41:33 / cg"
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
perforcePassword
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
    |envVar|
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
    PerforcePassword notNil ifTrue:[ ^ PerforcePassword].
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
    envVar := OperatingSystem getEnvironment:'P4PASSWD'.
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
    envVar notEmptyOrNil ifTrue:[ ^ envVar].
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   132
    ^ nil
2341
Claus Gittinger <cg@exept.de>
parents: 2340
diff changeset
   133
Claus Gittinger <cg@exept.de>
parents: 2340
diff changeset
   134
    "Modified: / 19-04-2011 / 10:46:56 / cg"
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
perforcePassword:something
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
    PerforcePassword := something.
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
perforcePort
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
    |envVar|
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
    PerforcePort notNil ifTrue:[ ^ PerforcePort].
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
    envVar := OperatingSystem getEnvironment:'P4PORT'.
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
    envVar notEmptyOrNil ifTrue:[ ^ envVar].
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
    ^ 'localhost:1666'
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
perforcePort:something
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
    PerforcePort := something.
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
perforceUser
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
    |envVar|
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
    PerforceUser notNil ifTrue:[ ^ PerforceUser].
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
    envVar := OperatingSystem getEnvironment:'P4USER'.
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
    envVar notEmptyOrNil ifTrue:[ ^ envVar].
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
    ^ OperatingSystem getLoginName ? 'user'
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
perforceUser:something
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
    PerforceUser := something.
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   167
perforceWorkspaces
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   168
    "Superclass AbstractSourceCodeManager class says that I am responsible to implement this method"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   169
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   170
    PerforceWorkspaces isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   171
        PerforceWorkspaces := Dictionary new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   172
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   173
    ^ PerforceWorkspaces 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   174
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   175
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
repositoryInfoPerModule
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
    "Superclass AbstractSourceCodeManager class says that I am responsible to implement this method"
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
    ^ PerforceModuleRoots ? Dictionary new
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
repositoryInfoPerModule:aDictionary
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
    "set the dictionary, which associates CVSRoots to module names.
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
     If no entry is contained in this dictionary for some module,
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
     the default cvsRoot (CVSRoot) will be used."
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   187
    self flushPerforceWorkspaces.
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
    PerforceModuleRoots := aDictionary
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
repositoryName
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
    "return the name of the repository.
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
     Since this is an abstract class, return nil (i.e. none)"
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
    ^ (self perforceClient ,':',
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
       self perforceUser, ':',
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
       (self perforcePassword ? 'pass'), '@',
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
       self perforcePort)
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
    "Modified: 12.9.1996 / 02:20:45 / cg"
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
    "Created: 14.9.1996 / 13:21:37 / cg"
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
repositoryName:settingsString
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
    "return the name of the repository.
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
     Since this is an abstract class, return nil (i.e. none)"
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
    |settings|
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
    settings := self getPerforceSettingsFromString:settingsString.
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
    self perforceClient:(settings at:#client ifAbsent:nil).
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
    self perforceUser:(settings at:#user ifAbsent:nil).
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
    self perforcePassword:(settings at:#password ifAbsent:nil).
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
    self perforcePort:(settings at:#port ifAbsent:nil).
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
    "Modified: 12.9.1996 / 02:20:45 / cg"
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
    "Created: 14.9.1996 / 13:21:37 / cg"
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   217
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
repositoryNameForModule:aModuleName
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   219
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
    |settings|
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   221
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   222
    settings := self getPerforceSettingsForPackage:aModuleName.
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
    settings isNil ifTrue:[ ^ ''].
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   224
    ^ settings
2341
Claus Gittinger <cg@exept.de>
parents: 2340
diff changeset
   225
!
Claus Gittinger <cg@exept.de>
parents: 2340
diff changeset
   226
2595
ad4056ade722 added: #repositoryNameForPackage:
vrany
parents: 2567
diff changeset
   227
repositoryNameForPackage:packageId 
2669
e3dad043debf refactoring
Claus Gittinger <cg@exept.de>
parents: 2652
diff changeset
   228
    ^ self repositoryNameForModule:(packageId upTo:$: )
e3dad043debf refactoring
Claus Gittinger <cg@exept.de>
parents: 2652
diff changeset
   229
e3dad043debf refactoring
Claus Gittinger <cg@exept.de>
parents: 2652
diff changeset
   230
    "Modified: / 10-10-2011 / 19:48:10 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e3dad043debf refactoring
Claus Gittinger <cg@exept.de>
parents: 2652
diff changeset
   231
    "Modified (format): / 21-12-2011 / 23:03:41 / cg"
2567
c9004cd0d0f6 Lost methods
vrany
parents: 2551
diff changeset
   232
!
c9004cd0d0f6 Lost methods
vrany
parents: 2551
diff changeset
   233
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   234
setDefaultPerforceSettingsFromString:aString 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   235
    |settings defaultSettingsString workSpace|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   236
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   237
    defaultSettingsString := self getPerforceDefaultSettingsString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   238
    defaultSettingsString ~= aString ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   239
        settings := PerforceSourceCodeManager 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   240
                    getPerforceSettingsFromString:aString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   241
        PerforceSourceCodeManager 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   242
            perforceClient:(settings at:#client ifAbsent:nil).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   243
        PerforceSourceCodeManager perforceUser:(settings at:#user ifAbsent:nil).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   244
        PerforceSourceCodeManager perforcePort:(settings at:#port ifAbsent:nil).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   245
        PerforceSourceCodeManager 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   246
            perforcePassword:(settings at:#password ifAbsent:nil).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   247
        self removeWorkSpaceForSettings:defaultSettingsString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   248
        self perforceError handle:[:ex|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   249
            self reportError:ex description.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   250
            ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   251
        ] do:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   252
            workSpace := WorkSpace newWorkSpaceFor:aString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   253
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   254
        workSpace isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   255
            ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   256
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   257
        self perforceWorkspaces at:aString put:workSpace.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   258
        defaultSettingsString := aString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   259
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   260
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   261
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   262
shownInBrowserMenus
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   263
    ^ ShownInBrowserMenus ? true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   264
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   265
    "Created: / 08-01-2012 / 19:53:20 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   266
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   267
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   268
shownInBrowserMenus:aBoolean
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   269
    ShownInBrowserMenus := aBoolean
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   270
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   271
    "Created: / 08-01-2012 / 19:53:34 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   272
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   273
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   274
utilities
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   275
    "Returns 'utilities' object that can be used by tools. 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   276
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   277
     By default, it returns an instance of
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   278
     SourceCodeManagerUtilities with receiver as its
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   279
     manager, but individual managers may override this
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   280
     method and supply its own, customized utilities."
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   281
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   282
    ^ PerforceSourceCodeManagerUtilities forManager: self
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   283
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   284
    "Created: / 10-10-2011 / 15:10:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   285
    "Modified (format): / 21-12-2011 / 20:05:31 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   286
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   287
2341
Claus Gittinger <cg@exept.de>
parents: 2340
diff changeset
   288
verboseSourceCodeAccess
Claus Gittinger <cg@exept.de>
parents: 2340
diff changeset
   289
Claus Gittinger <cg@exept.de>
parents: 2340
diff changeset
   290
    ^ Verbose
Claus Gittinger <cg@exept.de>
parents: 2340
diff changeset
   291
Claus Gittinger <cg@exept.de>
parents: 2340
diff changeset
   292
    "Created: / 19-04-2011 / 10:52:29 / cg"
Claus Gittinger <cg@exept.de>
parents: 2340
diff changeset
   293
!
Claus Gittinger <cg@exept.de>
parents: 2340
diff changeset
   294
Claus Gittinger <cg@exept.de>
parents: 2340
diff changeset
   295
verboseSourceCodeAccess:aBoolean
Claus Gittinger <cg@exept.de>
parents: 2340
diff changeset
   296
Claus Gittinger <cg@exept.de>
parents: 2340
diff changeset
   297
    Verbose := aBoolean
Claus Gittinger <cg@exept.de>
parents: 2340
diff changeset
   298
Claus Gittinger <cg@exept.de>
parents: 2340
diff changeset
   299
    "Created: / 19-04-2011 / 10:52:43 / cg"
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   300
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   301
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   302
workSpaceClass
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   303
    ^WorkSpace
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   304
! !
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   305
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   306
!PerforceSourceCodeManager class methodsFor:'actions'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   307
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   308
checkinClass:aClass fileName:classFileName directory:packageDir module:moduleDir logMessage:logMessage force:force
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   309
    "checkin of a class into the source repository.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   310
     Return true if ok, false if not."
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   311
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   312
    ^self checkinClass:aClass fileName:classFileName directory:packageDir module:moduleDir logMessage:logMessage force:force submit:false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   313
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   314
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   315
checkinClass:aClass fileName:classFileName directory:packageDir module:moduleDir logMessage:logMessage force:force submit:doSubmit
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   316
    "checkin of a class into the source repository.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   317
     Return true if ok, false if not."
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   318
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   319
    |className answer allLabel allValue 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   320
     nameOfVersionMethodInClasses requestMessage locDoSubmit|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   321
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   322
    locDoSubmit := doSubmit.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   323
    className := aClass name.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   324
    nameOfVersionMethodInClasses := self nameOfVersionMethodInClasses.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   325
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   326
    aClass revision isNil ifTrue:[ 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   327
        force ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   328
            ('PerforceSourceCodeManager [warning]: class ' , className, ' has no revision string') errorPrintCR.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   329
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   330
            AbortAllOperationWantedQuery query ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   331
                allLabel := #('Cancel All').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   332
                allValue := #(cancelAll).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   333
            ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   334
                allLabel := #().
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   335
                allValue := #().
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   336
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   337
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   338
            ((aClass theMetaclass includesSelector:#version)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   339
               or:[aClass theMetaclass includesSelector: nameOfVersionMethodInClasses]) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   340
                requestMessage := ('Class %1 has no (usable) revision string.\\Check in as newest ?' bindWith:className allBold) withCRs.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   341
            ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   342
                requestMessage := ('Class %1 has no revision string.\\Check in as newest ?' bindWith:className allBold) withCRs.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   343
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   344
            answer := OptionBox 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   345
                        request: requestMessage
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   346
                        label:'Confirm'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   347
                        buttonLabels:(allLabel , #('Cancel' 'CheckIn' 'CheckIn & Submit')) 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   348
                        values:(allValue , #(false #checkIn #checkInAndSubmit ))
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   349
                        default:#checkIn.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   350
            answer == false ifTrue:[ AbortSignal raise. ^ false ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   351
            answer == #cancelAll ifTrue:[ AbortAllSignal raise. ^ false ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   352
            answer == #checkInAndSubmit ifTrue:[ locDoSubmit := true ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   353
        ]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   354
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   355
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   356
    "Ensure that the method #version_XXX is present before checking in XXX. 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   357
     It will be missing when checking in classes with only the old method #version"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   358
"/ this is wrong - it would add the SVN-id as CVS id...
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   359
"/    (aClass theMetaclass includesSelector: nameOfVersionMethodInClasses) ifFalse: [
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   360
"/        versionAsKnownBefore := aClass revisionString.   "/ looks in the old version (non-repository based)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   361
"/
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   362
"/        self 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   363
"/            compileVersionMethod:nameOfVersionMethodInClasses 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   364
"/            of:aClass 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   365
"/            for:(versionAsKnownBefore ? ('$' , 'Header' , '$')).  "/ concatenated to avoid RCS expansion
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   366
"/    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   367
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   368
    ^ self basicCheckinClass:aClass fileName:classFileName directory:packageDir module:moduleDir logMessage:logMessage force:force submit:locDoSubmit.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   369
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   370
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   371
     SourceCodeManager checkinClass:Array
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   372
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   373
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   374
    "Created: / 11-09-1996 / 16:15:17 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   375
    "Modified: / 25-09-1997 / 12:16:00 / stefan"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   376
    "Modified: / 21-12-2011 / 19:30:38 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   377
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   378
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   379
checkinClass:aClass logMessage:logMessage submit:doSubmit
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   380
    "checkin of a class into the source repository.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   381
     Return true if ok, false if not."
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   382
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   383
    |sourceInfo packageDir moduleDir classFileName|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   384
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   385
    sourceInfo := self sourceInfoOfClass:aClass.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   386
    sourceInfo isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   387
        self reportError:('no sourceInfo for class: ' , aClass name).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   388
        ^ false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   389
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   390
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   391
    packageDir := self directoryFromSourceInfo:sourceInfo.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   392
    moduleDir := self moduleFromSourceInfo:sourceInfo.  "/ use the modules name as CVS module
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   393
    classFileName := self containerFromSourceInfo:sourceInfo.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   394
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   395
    ^ self 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   396
        checkinClass:aClass 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   397
        fileName:classFileName 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   398
        directory:packageDir 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   399
        module:moduleDir 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   400
        logMessage:logMessage
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   401
        force:false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   402
        submit:doSubmit
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   403
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   404
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   405
     SourceCodeManager checkinClass:Array logMessage:'foo'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   406
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   407
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   408
    "Created: / 06-11-1995 / 18:56:00 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   409
    "Modified: / 29-08-2006 / 12:46:28 / cg"
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   410
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   411
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   412
createTempDirectory:packageDir forModule:moduleDir
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   413
    "create a temp directory for checking out"
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   414
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   415
    |tempdir dir|
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   416
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   417
    "/ if CVSTempDir isNil, use current.
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   418
    OperatingSystem errorSignal handle:[:ex |
2353
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
   419
        self reportError:('cannot create temporary directory').
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
   420
        ^ nil.
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   421
    ] do:[
2353
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
   422
        tempdir := Filename newTemporaryDirectoryIn:(self perforceTmpDirectory).
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   423
    ].
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   424
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   425
    moduleDir notNil ifTrue:[
2353
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
   426
        dir := tempdir construct:moduleDir.
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
   427
        dir makeDirectory.
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   428
2353
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
   429
        packageDir notNil ifTrue:[
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
   430
            dir := dir construct:packageDir.
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
   431
            dir recursiveMakeDirectory.
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
   432
        ].
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
   433
        dir exists ifFalse:[
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
   434
            (tempdir construct:moduleDir) recursiveRemove.
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
   435
            tempdir recursiveRemove.
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
   436
            self reportError:('cannot create temporary directory').
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
   437
            ^ nil.
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
   438
        ].
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   439
    ].
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   440
    ^ tempdir
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   441
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   442
    "self createTempDirectory:'fooPackage' forModule:'fooModule'"
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   443
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   444
    "Created: / 09-12-1995 / 19:14:35 / cg"
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   445
    "Modified: / 19-12-1995 / 16:13:02 / stefan"
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   446
    "Modified: / 29-08-2006 / 13:16:23 / cg"
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   447
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   448
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   449
ensureDollarsInVersionMethod:aString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   450
    "given the source code of my version method, ensure that it contains dollars for
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   451
     proper keyword expansion
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   452
     do nothing here because we dont need this - make our own version
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   453
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   454
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   455
    ^aString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   456
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   457
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   458
removeContainer:fileName inModule:moduleName directory:packageDir
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   459
    "remove a container"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   460
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   461
    ^self removeContainer:fileName inModule:moduleName directory:packageDir submit:false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   462
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   463
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   464
removeContainer:fileName inModule:moduleName directory:packageDir submit:doSubmit
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   465
    "remove a container"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   466
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   467
    |cls checkInDefinition classFileName workSpace clsName|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   468
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   469
    clsName := fileName asFilename withoutSuffix baseName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   470
    cls := Smalltalk at:clsName asSymbol ifAbsent:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   471
    cls isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   472
        self reportError:'Error removing class - ', clsName, ' not exists'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   473
        ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   474
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   475
    classFileName := fileName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   476
    cls isPrivate ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   477
        self reportError:'refuse to check in private classes.'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   478
        ^ false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   479
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   480
    checkInDefinition := CheckInDefinition new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   481
    checkInDefinition manager:self.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   482
    checkInDefinition setDefinitionClass:cls.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   483
    checkInDefinition classFileName:classFileName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   484
    checkInDefinition package:moduleName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   485
    checkInDefinition packageDir:packageDir.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   486
    checkInDefinition setLogMessage:'Remove from Smalltalk Browser'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   487
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   488
    self perforceError handle:[:ex|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   489
        self reportError:ex description.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   490
        ex proceed.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   491
    ] do:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   492
        workSpace := self getWorkSpaceForPackage:(checkInDefinition packageString).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   493
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   494
    workSpace isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   495
        ^ false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   496
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   497
    checkInDefinition workSpace:workSpace.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   498
    self perforceError handle:[:ex|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   499
        self reportError:ex description.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   500
        ex proceed.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   501
    ] do:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   502
        ^ workSpace delete:checkInDefinition submit:doSubmit.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   503
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   504
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   505
    ^true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   506
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   507
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   508
    self removeContainer:'ActionNQualifier.st' inModule:'applistx' directory:'util/libDataType'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   509
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   510
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   511
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   512
savePreferencesOn:aStream
2364
90ed7ea7d1e2 changed: #savePreferencesOn:
Stefan Vogel <sv@exept.de>
parents: 2359
diff changeset
   513
    aStream nextPutLine:'PerforceSourceCodeManager notNil ifTrue:['.
90ed7ea7d1e2 changed: #savePreferencesOn:
Stefan Vogel <sv@exept.de>
parents: 2359
diff changeset
   514
    self repositoryInfoPerModule notEmptyOrNil ifTrue:[
90ed7ea7d1e2 changed: #savePreferencesOn:
Stefan Vogel <sv@exept.de>
parents: 2359
diff changeset
   515
        aStream nextPutLine:'    PerforceSourceCodeManager repositoryInfoPerModule:' , self repositoryInfoPerModule storeString , '.'.
90ed7ea7d1e2 changed: #savePreferencesOn:
Stefan Vogel <sv@exept.de>
parents: 2359
diff changeset
   516
    ].
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   517
    PerforceExecutable notNil ifTrue:[
2353
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
   518
        aStream nextPutLine:'    PerforceSourceCodeManager perforceExecutable:' , PerforceExecutable storeString , '.'.
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   519
    ].
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   520
    (Smalltalk at:#SourceCodeManager) == self ifTrue:[
2353
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
   521
        aStream nextPutLine:'    Smalltalk at:#SourceCodeManager put: PerforceSourceCodeManager.'.
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
   522
        aStream nextPutLine:'    PerforceSourceCodeManager initializeForRepository:' , self repositoryName storeString , '.'.
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   523
    ].
2364
90ed7ea7d1e2 changed: #savePreferencesOn:
Stefan Vogel <sv@exept.de>
parents: 2359
diff changeset
   524
    aStream nextPutLine:'].'.
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   525
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   526
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   527
submit
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   528
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   529
    self perforceWorkspaces do:[:aWorkSpace | 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   530
        self perforceError handle:[:ex|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   531
            self reportError:ex description.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   532
            ex proceed.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   533
        ] do:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   534
            aWorkSpace submit.
2353
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
   535
        ].
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   536
    ].
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   537
! !
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   538
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   539
!PerforceSourceCodeManager class methodsFor:'basic administration'!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   540
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   541
basicCheckinClass:cls fileName:classFileName directory:packageDir module:moduleName logMessage:logMessage force:forceArg submit:doSubmit
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   542
    "enter a classes source code
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   543
     into the source repository. If the force argument is true, no merge is done;
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   544
     instead, the code is checked in as given (Dangerous).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   545
     Return true if ok, false if not."
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   546
    ^self basicCheckinClass:cls 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   547
    fileName:classFileName 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   548
    directory:packageDir 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   549
    module:moduleName 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   550
    logMessage:logMessage 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   551
    force:forceArg 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   552
    submit:doSubmit
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   553
    fileContents:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   554
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   555
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   556
basicCheckinClass:cls 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   557
    fileName:classFileName 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   558
    directory:packageDir 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   559
    module:moduleName 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   560
    logMessage:logMessage 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   561
    force:forceArg 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   562
    submit:doSubmit
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   563
    fileContents:fileContents
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   564
    "enter a classes source code
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   565
     into the source repository. If the force argument is true, no merge is done;
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   566
     instead, the code is checked in as given (Dangerous).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   567
     Return true if ok, false if not."
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   568
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   569
    |binRevision checkInDefinition workSpace initialResult revisionBeforeCheckin 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   570
   revisionInfoBeforeCheckin revisions revisionInfo locRevision revisionState result|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   571
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   572
    (cls notNil and:[cls isPrivate]) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   573
        self reportError:'refuse to check in private classes.'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   574
        ^ false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   575
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   576
    checkInDefinition := CheckInDefinition new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   577
    checkInDefinition manager:self.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   578
    checkInDefinition setDefinitionClass:cls.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   579
    checkInDefinition classFileName:classFileName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   580
    checkInDefinition sourceFileName:classFileName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   581
    checkInDefinition package:moduleName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   582
    checkInDefinition packageDir:packageDir.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   583
    checkInDefinition fileContents:fileContents.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   584
    (checkInDefinition setLogMessage:logMessage) ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   585
        self reportError:'Perforce cannot handle unicode in logMessage'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   586
        ^ false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   587
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   588
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   589
    self perforceError handle:[:ex|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   590
        self reportError:ex description.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   591
        ex proceed.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   592
    ] do:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   593
        workSpace := self getWorkSpaceForPackage:(checkInDefinition packageString).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   594
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   595
    workSpace isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   596
        ^ false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   597
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   598
    checkInDefinition workSpace:workSpace.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   599
    checkInDefinition isClassCheckin ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   600
        binRevision := checkInDefinition getBinaryRevisionNumber.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   601
        locRevision := checkInDefinition getLocalRevisionNumber.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   602
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   603
    revisionInfoBeforeCheckin := checkInDefinition getReposRevisionInfoBeforeCheckin.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   604
    revisions := revisionInfoBeforeCheckin at:#revisions ifAbsent:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   605
    revisions notEmptyOrNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   606
        revisionInfo := revisions first.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   607
        revisionBeforeCheckin := (revisionInfo at:#revision) asNumber.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   608
        revisionState := revisionInfo at:#state ifAbsent:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   609
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   610
    checkInDefinition isClassCheckin ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   611
        (revisionBeforeCheckin ~= binRevision and:[self verboseSourceCodeAccess]) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   612
            ('PerforceSourceCodeManager [info]: class ' , checkInDefinition definitionObjectString , ' is based upon ' , binRevision printString, ' but has revision ' , (revisionBeforeCheckin printString)) infoPrintCR
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   613
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   614
     ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   615
    (revisionBeforeCheckin isNil or:[revisionState = 'delete']) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   616
        " add file to p4 "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   617
        self perforceError handle:[:ex|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   618
            self reportError:ex description.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   619
            ex proceed.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   620
        ] do:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   621
            initialResult := workSpace addCheckIn:checkInDefinition submit:doSubmit.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   622
            initialResult ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   623
                ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   624
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   625
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   626
    ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   627
        " change file in p4 "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   628
        self perforceError handle:[:ex|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   629
            self reportError:ex description.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   630
            ex proceed.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   631
        ] do:[                   
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   632
            result := workSpace checkIn:checkInDefinition submit:doSubmit.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   633
            result ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   634
                ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   635
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   636
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   637
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   638
    checkInDefinition isClassCheckin ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   639
        result := self postCheckInClass:cls checkInDefinition:checkInDefinition.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   640
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   641
    ^ true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   642
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   643
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   644
     SourceCodeManager checkinClass:PerforceSourceCodeManager logMessage:'testing only'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   645
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   646
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   647
    "Created: / 11-09-1996 / 16:16:11 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   648
    "Modified: / 26-02-1998 / 17:34:16 / stefan"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   649
    "Modified: / 25-10-2006 / 17:41:46 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   650
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   651
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   652
checkForExistingContainer:fileName inModule:moduleDir directory:packageDir
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   653
    "check for a container to exist"
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   654
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   655
    |checkInDefinition workSpace result|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   656
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   657
    checkInDefinition := CheckInDefinition new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   658
    checkInDefinition manager:self.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   659
    checkInDefinition package:moduleDir.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   660
    checkInDefinition packageDir:packageDir.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   661
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   662
    self perforceError handle:[:ex|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   663
        self reportError:ex description.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   664
        ex proceed.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   665
    ] do:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   666
        workSpace := self getWorkSpaceForPackage:(checkInDefinition package).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   667
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   668
    workSpace isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   669
        ^ false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   670
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   671
    checkInDefinition workSpace:workSpace.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   672
    self perforceError handle:[:ex|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   673
        self reportError:ex description.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   674
        ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   675
    ] do:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   676
        result := workSpace checkForExistingContainer:checkInDefinition.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   677
        ^result
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   678
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   679
    ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   680
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   681
    self checkForExistingContainer:'baseline.rbspec' inModule:'applistx' directory:'application/rtdbInspector/builder'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   682
    self checkForExistingContainer:'baseline.rbspec' inModule:'applistx' directory:'application/rtdbInspector'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   683
    self checkForExistingContainer:'baseline.rbspec' inModule:'applistx' directory:'util/*'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   684
"
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   685
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   686
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   687
checkForExistingModule:moduleName
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   688
    "check for a module directory to be present"
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   689
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   690
    |workSpaceDefinition|
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   691
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   692
    self perforceError handle:[:ex|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   693
        self reportError:ex description.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   694
    ] do:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   695
        workSpaceDefinition := self getWorkSpaceForPackage:moduleName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   696
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   697
    workSpaceDefinition isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   698
        ('PerforceSourceCodeManager [error]: no workspace for ', moduleName) errorPrintCR.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   699
        ^ false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   700
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   701
    ^ true.
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   702
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   703
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   704
"
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   705
self checkForExistingModule:'applistx'
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   706
self checkForExistingModule:'balla'
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   707
"
2344
8a715906b999 comment/format in: #checkForExistingModule:
Claus Gittinger <cg@exept.de>
parents: 2341
diff changeset
   708
8a715906b999 comment/format in: #checkForExistingModule:
Claus Gittinger <cg@exept.de>
parents: 2341
diff changeset
   709
    "Modified: / 19-04-2011 / 11:30:41 / cg"
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   710
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   711
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   712
checkForExistingModule:moduleName directory:packageDir
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   713
    "check for a package directory to be present
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   714
     in perforce directory will be created with checkin
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   715
     so we need only to check if we have a matching workspace
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   716
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   717
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   718
    |modulePath inDirectory workSpace|
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   719
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   720
    modulePath :=  moduleName , '/' , packageDir.
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   721
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   722
    inDirectory := (Filename currentDirectory asAbsoluteFilename) pathName.
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   723
    workSpace := self getWorkSpaceForPackage:moduleName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   724
    ^workSpace notNil
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   725
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   726
"
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   727
    self checkForExistingModule:'testModule' directory:'libTestPerforce'
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   728
"
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   729
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   730
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   731
checkin:containerFilename text:someText directory:packageDir module:moduleName logMessage:logMessage force:force
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   732
    "enter some (source) code (which is someText)
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   733
     into the source repository. If the force argument is true, no merge is done;
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   734
     instead, the code is checked in as given (Dangerous).
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   735
     Return true if ok, false if not."
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   736
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   737
    ^self basicCheckinClass:nil 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   738
        fileName:containerFilename 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   739
        directory:packageDir 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   740
        module:moduleName 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   741
        logMessage:logMessage 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   742
        force:force 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   743
        submit:false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   744
        fileContents:someText
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   745
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   746
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   747
checkinClass:cls fileName:classFileName directory:packageDir module:moduleName source:sourceFileName logMessage:logMessage force:forceArg
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   748
    "enter a classes source code (which has been already filed out into sourceFileName)
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   749
     here we have to create our own source file
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   750
     into the source repository. If the force argument is true, no merge is done;
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   751
     instead, the code is checked in as given (Dangerous).
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   752
     Return true if ok, false if not."
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   753
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   754
    ^ self checkinClass:cls fileName:classFileName directory:packageDir module:moduleName logMessage:logMessage force:forceArg
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   755
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   756
    "
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   757
     SourceCodeManager checkinClass:Array logMessage:'testing only'
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   758
    "
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   759
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   760
    "Created: / 11-09-1996 / 16:16:11 / cg"
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   761
    "Modified: / 26-02-1998 / 17:34:16 / stefan"
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   762
    "Modified: / 25-10-2006 / 17:41:46 / cg"
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   763
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   764
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   765
createContainerFor:cls inModule:moduleName package:packageDir container:classFileName
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   766
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   767
    ^ self checkinClass:cls fileName:classFileName directory:packageDir module:moduleName logMessage:'Initial check in' force:false.
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   768
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   769
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   770
createContainerFor:cls inModule:moduleName package:packageDir container:classFileName logMessage:logMessage
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   771
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   772
    ^ self checkinClass:cls fileName:classFileName directory:packageDir module:moduleName logMessage:logMessage force:false.
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   773
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   774
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   775
createContainerForText:someText inModule:moduleDir package:packageDir container:fileName
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   776
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   777
    ^self basicCheckinClass:nil 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   778
        fileName:fileName 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   779
        directory:packageDir 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   780
        module:moduleDir 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   781
        logMessage:'initial checkin'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   782
        force:false 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   783
        submit:false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   784
        fileContents:someText
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   785
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   786
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   787
createModule:moduleName
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   788
    "we dont need to create directories in perforce before checkin"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   789
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   790
    ^self checkForExistingModule:moduleName
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   791
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   792
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   793
createModule:module directory:directory
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   794
    "nothing to do with PerforceSourceCodeManager
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   795
     subdirectory in repository will created with adding the file "
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   796
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   797
    ^self checkForExistingModule:module
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   798
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   799
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   800
initialRevisionStringFor:aClass inModule:moduleDir directory:packageDir container:fileName
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   801
    "return a string usable as initial revision string"
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   802
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   803
    |checkInDefinition workSpace|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   804
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   805
    aClass isPrivate ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   806
        self reportError:'refuse to get revision for private classes.'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   807
        ^ false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   808
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   809
    checkInDefinition := CheckInDefinition new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   810
    checkInDefinition setDefinitionClass:aClass.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   811
    checkInDefinition classFileName:fileName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   812
    checkInDefinition package:moduleDir.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   813
    checkInDefinition packageDir:packageDir.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   814
    checkInDefinition manager:self.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   815
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   816
    "/
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   817
    "/ first, create a temporary work tree
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   818
    "/
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   819
"/    tempdir := checkInDefinition tempDirectory.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   820
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   821
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   822
    workSpace := self getWorkSpaceForPackage:(checkInDefinition packageString).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   823
    workSpace isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   824
        ('PerforceSourceCodeManager [error]: failed to create workspace for', checkInDefinition fileName)  errorPrintCR.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   825
        ^ false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   826
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   827
    checkInDefinition workSpace:workSpace.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   828
    ^workSpace initialRevisionStringFor:checkInDefinition
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   829
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   830
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   831
self initialRevisionStringFor:RTDBInspectorStartup inModule:'applistx' directory:'util/rtdb' container:'RTDBInterfaceInspector.st'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   832
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   833
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   834
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   835
revisionInfoFromString:aString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   836
    "{ Pragma: +optSpace }"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   837
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   838
    ^ PerforceVersionInfo fromRCSString:aString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   839
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   840
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   841
|stream|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   842
stream := WriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   843
SourceCodeManagerUtilities repositoryLogOf:ExtIF onto:stream.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   844
^ stream contents.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   845
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   846
self revisionInfoFromString:((RTDBInterfaceInspector findVersionMethodOfManager:PerforceSourceCodeManager) valueWithReceiver:(self theNonMetaclass) arguments:#())
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   847
self revisionInfoFromString:'Path: //depot/applistx/util/libDataType/ActionDQualifier.st#1 User: penk Date: 30-03-2012 Time: 15-50-39.992'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   848
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   849
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   850
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   851
revisionLogOf:clsOrNil 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   852
fromRevision:firstRev 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   853
toRevision:lastRef 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   854
numberOfRevisions:numRevisions 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   855
fileName:classFileName 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   856
directory:packageDir 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   857
module:aPackage
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   858
    "return info about the repository container and
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   859
     (part of) the revisionlog as a collection of revision entries.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   860
     Return nil on failure.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   861
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   862
     If numRevisions is notNil, it limits the number of revision records returned -
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   863
     only numRevions of the newest revision infos will be collected.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   864
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   865
     The returned information is a structure (IdentityDictionary)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   866
     filled with:
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   867
            #newestRevision     -> the revisionString of the newest revision
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   868
            #numberOfRevisions  -> the number of revisions in the container (nil for all)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   869
            #revisions          -> collection of per-revision info (see below)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   870
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   871
            firstRev / lastRef specify from which revisions a logEntry is wanted:
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   872
             -If firstRev is nil, the first revision is the initial revision
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   873
              otherwise, the log starts with that revision.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   874
             -If lastRef is nil, the last revision is the newest revision
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   875
              otherwise, the log ends with that revision.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   876
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   877
             -If both are nil, all logEntries are extracted.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   878
             -If both are 0 (not nil), no logEntries are extracted (i.e. only the header).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   879
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   880
            per revision info consists of one record per revision:
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   881
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   882
              #revision              -> the revision string
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   883
              #author                -> who checked that revision into the repository
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   884
              #date                  -> when was it checked in
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   885
              #state                 -> the RCS state
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   886
              #numberOfChangedLines  -> the number of changed line w.r.t the previous
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   887
              #logMessage            -> the checkIn log message
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   888
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   889
            revisions are ordered newest first
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   890
            (i.e. the last entry is for the initial revision; the first for the most recent one)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   891
            Attention: if state = 'dead' that revision is no longer valid.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   892
        "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   893
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   894
    |workSpace rslt|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   895
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   896
    workSpace := self getWorkSpaceForPackage:aPackage.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   897
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   898
    workSpace isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   899
        ('PerforceSourceCodeManager [warning]: cant get workspace definition for module ', aPackage) errorPrintCR.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   900
        ^ nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   901
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   902
    self perforceError handle:[:ex|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   903
        self reportError:ex description.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   904
        ex proceed.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   905
    ] do:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   906
        rslt := workSpace revisionLogOf:clsOrNil 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   907
            fromRevision:firstRev 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   908
            toRevision:lastRef 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   909
            numberOfRevisions:numRevisions 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   910
            fileName:classFileName 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   911
            directory:packageDir 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   912
            module:aPackage.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   913
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   914
    ^rslt
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   915
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   916
     AbstractSourceCodeManager revisionLogOf:ExtIF
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   917
     SourceCodeManager revisionLogOf:Array fromRevision:'1.40' toRevision:'1.43'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   918
     SourceCodeManager revisionLogOf:Array fromRevision:'1.40' toRevision:nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   919
     SourceCodeManager revisionLogOf:Array fromRevision:nil toRevision:'1.3'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   920
     SourceCodeManager revisionLogOf:Array fromRevision:nil toRevision:nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   921
     SourceCodeManager revisionLogOf:Array fromRevision:0 toRevision:0
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   922
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   923
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   924
    "Created: / 16-11-1995 / 13:25:30 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   925
    "Modified: / 29-01-1997 / 16:51:30 / stefan"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   926
    "Modified: / 29-08-2006 / 14:57:26 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   927
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   928
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   929
setSymbolicName:symbolicName revision:rev overWrite:overWriteBool classes:aCollectionOfClasses
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   930
    "set a symbolicName for revision rev.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   931
     If rev is nil, set it for the head (most recent) revision.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   932
     If rev is 0, delete the symbolic name.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   933
     If overWriteBool is true, the symbolicName will be changed, even if it has already been set.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   934
     If overWriteBool is false, an error will be raised if symbolicName has already been set.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   935
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   936
     If filename is nil, the symbolicName for a whole package is set"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   937
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   938
    |pathes workSpace|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   939
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   940
    pathes := aCollectionOfClasses 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   941
                collect:[:cls | (self sourceInfoOfClass:cls) at:#pathInRepository].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   942
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   943
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   944
    workSpace := nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   945
    workSpace isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   946
        self information:'Implementation of setting Labels not finished yet'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   947
        ^self.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   948
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   949
    workSpace
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   950
        setSymbolicName:symbolicName 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   951
        revision:rev 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   952
        overWrite:overWriteBool 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   953
        pathes:pathes
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   954
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   955
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   956
     self setSymbolicName:'foo' revision:nil overWrite:false classes:(Array with:True with:False)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   957
     self setSymbolicName:'foo' revision:nil overWrite:true classes:(Array with:True with:False)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   958
     self setSymbolicName:'foo' revision:nil overWrite:true classes:(Array with:True with:False)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   959
     self setSymbolicName:'foo' revision:'1.1' overWrite:true classes:(Array with:True with:False)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   960
     self setSymbolicName:'foo' revision:0 overWrite:true classes:(Array with:True with:False)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   961
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   962
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   963
    "Created: / 12-09-2006 / 12:58:23 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   964
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   965
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   966
streamForClass:cls fileName:fileName revision:revision directory:packageDir module:moduleDir cache:doCache
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   967
    "extract a classes source code and return an open readStream on it.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   968
     A revision of nil selects the current (in image) revision.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   969
     The classes source code is extracted using the revision and the sourceCodeInfo,
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   970
     which itself is extracted from the classes packageString."
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   971
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   972
    |checkInDefinition workSpace|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   973
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   974
    checkInDefinition := CheckInDefinition new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   975
    checkInDefinition setDefinitionClass:cls.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   976
    checkInDefinition classFileName:fileName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   977
    checkInDefinition package:moduleDir.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   978
    checkInDefinition packageDir:packageDir.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   979
    checkInDefinition manager:self.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   980
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   981
    workSpace := self getWorkSpaceForPackage:(checkInDefinition packageString).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   982
    workSpace isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   983
        ('PerforceSourceCodeManager [error]: failed to create workspace for', checkInDefinition fileName)  errorPrintCR.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   984
        ^ nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   985
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   986
    self perforceError handle:[:ex|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   987
        self reportError:ex description.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   988
        ex proceed.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   989
    ] do:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   990
        ^workSpace streamFor:checkInDefinition revision:revision cache:doCache.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   991
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   992
    ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   993
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   994
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   995
writeRevisionLogMessagesFrom:log withHeader:header to:aStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   996
    "helper; send the revisionlog to aStream"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   997
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   998
    |tags|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
   999
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1000
    header ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1001
"/        (log at:#renamed ifAbsent:false) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1002
"/            aStream nextPutAll:'  Class was probably renamed; revision info is from original class.'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1003
"/            aStream cr; nextPutAll:'  You may have to create a new container for it.'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1004
"/            aStream cr; cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1005
"/        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1006
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1007
        aStream nextPutAll:'  Total revisions: '; nextPutLine:(log at:#numberOfRevisions) printString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1008
        aStream nextPutAll:'  Newest revision: '; nextPutLine:(log at:#newestRevision) printString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1009
        tags := log at:#symbolicNames ifAbsent:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1010
        tags notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1011
            aStream nextPutAll:'  Stable revision: '; nextPutAll:(tags at:'stable' ifAbsent:'none'); cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1012
            aStream nextPutAll:'  Symbolic names: '; cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1013
            "sort tags by tag name"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1014
            tags := tags associations sort:[:a :b| a key < b key].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1015
            tags do:[:eachAssociation|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1016
                aStream tab; nextPutAll:eachAssociation key; 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1017
                             nextPutAll:': '; 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1018
                             nextPutAll:eachAssociation value; cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1019
            ]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1020
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1021
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1022
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1023
    (log at:#revisions) do:[:entry |
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1024
        |logMsg|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1025
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1026
        aStream cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1027
        aStream nextPutAll:'  revision '; 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1028
            show:(entry at:#revision); tab.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1029
        aStream nextPutAll:' date: '; 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1030
            show:((entry at:#date ifAbsent:nil) ? '?'); space;
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1031
            show:((entry at:#time ifAbsent:nil) ? '?'); tab.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1032
        aStream nextPutAll:' author: '; 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1033
            show:(entry at:#author ifAbsent:nil) ? '?'; tab.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1034
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1035
        logMsg := entry at:#logMessage ifAbsent:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1036
        (logMsg isBlank or:[logMsg withoutSeparators = '.']) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1037
            logMsg := '*** empty log message ***'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1038
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1039
        aStream tab; nextPutLine:logMsg.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1040
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1041
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1042
    "Created: / 16-11-1995 / 13:25:30 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1043
    "Modified: / 27-11-1996 / 18:26:30 / stefan"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1044
    "Modified: / 21-12-2011 / 23:33:53 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1045
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1046
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1047
!PerforceSourceCodeManager class methodsFor:'private'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1048
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1049
getCheckInDefinitionForClass:aClass
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1050
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1051
    |checkInDefinition|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1052
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1053
    checkInDefinition := CheckInDefinition new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1054
    checkInDefinition manager:self.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1055
    checkInDefinition setDefinitionClass:aClass.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1056
    ^checkInDefinition
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1057
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1058
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1059
postCheckInClass:class checkInDefinition:checkInDefinition
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1060
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1061
    self postCheckInClass:class.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1062
    ^ true                                                            
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1063
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1064
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1065
reportError:msg
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1066
    |fullMsg|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1067
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1068
    fullMsg := self nameWithoutNameSpacePrefix,' [error]: ',msg.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1069
    fullMsg errorPrintCR.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1070
    SourceCodeManagerError isHandled ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1071
        SourceCodeManagerError raiseErrorString:fullMsg.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1072
    ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1073
        self warn:fullMsg.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1074
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1075
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1076
    "Created: / 29-08-2006 / 12:44:19 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1077
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1078
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1079
submitInfoDialogClass
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1080
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1081
    ^SubmitInfoDialog
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1082
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1083
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1084
updateVersionMethodOf:aClass for:newRevisionString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1085
    " redefinition because I like to handle my version updates by myself "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1086
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1087
self halt.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1088
    super updateVersionMethodOf:aClass for:newRevisionString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1089
    ^ self
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1090
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1091
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1092
updatedRevisionStringOf:aClass forRevision:newRevision with:originalVersionString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1093
    "update a revision string"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1094
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1095
    |versionInfo module workSpace|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1096
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1097
    originalVersionString isEmptyOrNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1098
        workSpace := self getWorkSpaceForPackage:module.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1099
        workSpace isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1100
            self reportError:('no workSpace for class: ' , aClass name).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1101
            ^ nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1102
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1103
        versionInfo := workSpace updatedRevisionStringOf:aClass forRevision:newRevision with:originalVersionString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1104
    ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1105
        versionInfo := PerforceVersionInfo fromRCSString:originalVersionString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1106
        versionInfo isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1107
            ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1108
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1109
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1110
    versionInfo revision:newRevision printString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1111
    ^ versionInfo getVersionString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1112
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1113
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1114
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1115
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1116
    self updatedRevisionStringOf:nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1117
            forRevision:'6'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1118
            with:'$','Header','$'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1119
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1120
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1121
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1122
versionInfoClass
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1123
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1124
    ^PerforceVersionInfo
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1125
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1126
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1127
!PerforceSourceCodeManager class methodsFor:'queries'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1128
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1129
checkInInfoDialogClass
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1130
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1131
    ^P4CheckinInfoDialog
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1132
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1133
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1134
checkPerforceSettings:aSettingsString forPackage:aPackage 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1135
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1136
        create an temporary workspace for handle checkin"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1137
    
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1138
    |workSpace perforceSettings|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1139
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1140
    perforceSettings := self getPerforceSettingsFromString:aSettingsString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1141
    aPackage notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1142
        (self hasPackage:aPackage) ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1143
            self perforceError raiseErrorString:('Package <', aPackage, '> not exists.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1144
        ]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1145
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1146
    workSpace := self getWorkSpaceForSettings:aSettingsString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1147
    aSettingsString isEmptyOrNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1148
        self perforceError raiseErrorString:('No valid settings <', aSettingsString, '>.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1149
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1150
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1151
    workSpace isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1152
        self perforceError handle:[:ex|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1153
            self reportError:ex description.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1154
            ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1155
        ] do:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1156
            workSpace := WorkSpace newWorkSpaceFor:aSettingsString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1157
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1158
        workSpace isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1159
            ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1160
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1161
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1162
    (workSpace hasViewForPackage:aPackage) ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1163
        self perforceError raiseErrorString:('No View for Settings <', aSettingsString, '>  and Package <', aPackage, '>. Please check Workspace settings with Perforce Tools.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1164
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1165
    ^ true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1166
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1167
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1168
     self checkPerforceSettings:'penk_DEL00089:penk:@localhost:1666' forPackage:'stx/libbasic3' 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1169
     self checkPerforceSettings:'penk_DEL00089:penk:@localhost:1666' forPackage:'balla'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1170
    self perforceError handle:[:ex|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1171
        self reportError:ex description.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1172
        ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1173
    ] do:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1174
         self checkPerforceSettings:'penk_DEL0ss0089:penk:@localhost:1666' forPackage:'balla'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1175
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1176
        
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1177
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1178
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1179
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1180
getTrailungPathNameFrom:path1 with:path2
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1181
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1182
" path1 have to start with path2 not the other way around "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1183
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1184
    |componentsPath1 componentsPath2 locPath1 locPath2|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1185
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1186
    ((path1 first = $/) and:[path1 second = $/]) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1187
        locPath1 := path1 copyFrom:2.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1188
    ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1189
        locPath1 := path1.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1190
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1191
    ((path2 first = $/) and:[path2 second = $/]) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1192
        locPath2 := path2 copyFrom:2.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1193
    ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1194
        locPath2 := path2.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1195
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1196
    componentsPath1 := locPath1 asFilename components.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1197
    componentsPath2 := locPath2 asFilename components.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1198
    componentsPath1 size <= componentsPath2 size ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1199
        ^path1
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1200
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1201
    ^ (Filename fromComponents:(componentsPath1 copyFrom:(componentsPath2 size + 1))) pathName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1202
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1203
self getTrailungPathNameFrom:'foo/bar' with:'foo'     
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1204
self getTrailungPathNameFrom:'foo' with:'foo/bar'     
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1205
self getTrailungPathNameFrom:'//depot/' with:'//depot/applistx/util/libDataType/ActionLQualifier.st'     
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1206
self getTrailungPathNameFrom:'//depot/applistx/util/libDataType/ActionLQualifier.st' with:'//depot/'     
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1207
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1208
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1209
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1210
getWorkSpaceForPackage:aPackage  
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1211
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1212
        get the workspace definition from perforce client command output"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1213
    
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1214
    |workSpace settingsString|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1215
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1216
    aPackage isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1217
        ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1218
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1219
    aPackage notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1220
        settingsString := self getPerforceSettingsForPackage:aPackage.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1221
        settingsString isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1222
            self perforceError raiseErrorString:('No Perforce Settings for Package <', aPackage, '>. Please define in Settings Dialog.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1223
            ^ nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1224
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1225
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1226
    self perforceWorkspaces do:[:aWorkSpace | 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1227
        aWorkSpace perforceSettingsString = settingsString ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1228
            (aWorkSpace hasViewForPackage:aPackage) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1229
                ^aWorkSpace
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1230
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1231
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1232
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1233
    self perforceError handle:[:ex|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1234
        self reportError:ex description.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1235
        ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1236
    ] do:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1237
        workSpace := WorkSpace newWorkSpaceFor:settingsString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1238
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1239
    workSpace isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1240
        ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1241
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1242
    (workSpace hasViewForPackage:aPackage) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1243
        self perforceWorkspaces at:settingsString put:workSpace.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1244
        ^workSpace
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1245
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1246
    ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1247
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1248
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1249
    | workSpace |
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1250
    self getPerforceSettingsForPackage:'applistxaa'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1251
    self perforceError handle:[:ex|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1252
        self reportError:ex description.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1253
    ] do:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1254
        workSpace := self getWorkSpaceForPackage:'applistxaa'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1255
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1256
    workSpace
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1257
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1258
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1259
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1260
getWorkSpaceForSettings:aSettingsString  
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1261
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1262
    self perforceWorkspaces do:[:aWorkSpace | 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1263
        aWorkSpace perforceSettingsString = aSettingsString ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1264
            ^aWorkSpace
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1265
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1266
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1267
    ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1268
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1269
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1270
    | workSpace |
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1271
    self getPerforceSettingsForPackage:'applistxaa'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1272
    self perforceError handle:[:ex|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1273
        self reportError:ex description.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1274
    ] do:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1275
        workSpace := self getWorkSpaceForPackage:'applistxaa'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1276
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1277
    workSpace
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1278
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1279
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1280
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1281
hasPackage:aPackage
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1282
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1283
    Smalltalk allProjectIDs do:[:aId|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1284
        (aId startsWith:aPackage) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1285
            ^true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1286
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1287
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1288
    ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1289
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1290
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1291
isPerforce
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1292
    "Superclass AbstractSourceCodeManager class says that I am responsible to implement this method"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1293
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1294
    ^ true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1295
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1296
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1297
isResponsibleForPackage:aStringOrSymbol
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1298
    "superclass AbstractSourceCodeManager class says that I am responsible to implement this method"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1299
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1300
    ^true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1301
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1302
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1303
managerTypeName
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1304
    "Superclass AbstractSourceCodeManager class says that I am responsible to implement this method"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1305
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1306
    ^ 'Perforce'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1307
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1308
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1309
managerTypeNameShort
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1310
    "Answers short version manager name suitable for UI,
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1311
     i,e., CVS, SVN, P4. Used in cases where sorter strings
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1312
     are preferred. Defaults to #managerTypeName"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1313
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1314
    ^'P4'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1315
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1316
    "Created: / 03-10-2011 / 13:28:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1317
    "Modified (format): / 04-12-2011 / 10:15:31 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1318
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1319
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1320
nameOfVersionMethodForExtensions
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1321
    ^ #'extensionsVersion_P4'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1322
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1323
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1324
nameOfVersionMethodInClasses
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1325
    ^ #'version_P4'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1326
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1327
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1328
path:path1 hasSamePrefixLikePath:path2
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1329
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1330
" path1 have to start with path2 not the other way around "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1331
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1332
    |locPath1 locPath2 componentsPath1 componentsPath2|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1333
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1334
    ((path1 first = $/) and:[path1 second = $/]) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1335
        locPath1 := path1 copyFrom:2.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1336
    ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1337
        locPath1 := path1.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1338
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1339
    ((path2 first = $/) and:[path2 second = $/]) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1340
        locPath2 := path2 copyFrom:2.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1341
    ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1342
        locPath2 := path2.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1343
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1344
    componentsPath1 := locPath1 asFilename components.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1345
    componentsPath2 := locPath2 asFilename components.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1346
    componentsPath2 size > componentsPath1 size ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1347
        ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1348
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1349
    componentsPath2 doWithIndex:[:component :index|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1350
        ((componentsPath1 at:index) ~= component) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1351
            ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1352
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1353
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1354
    ^true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1355
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1356
self path:'foo/bar' hasSamePrefixLikePath:'foo'   
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1357
self path:'foo' hasSamePrefixLikePath:'foo/bar'  
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1358
self path:'//depot/applistx/util/libDataType/ActionLQualifier.st' hasSamePrefixLikePath:'//depot/'  
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1359
self path:'//depot/' hasSamePrefixLikePath:'//depot/applistx/util/libDataType/ActionLQualifier.st'  
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1360
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1361
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1362
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1363
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1364
perforceError
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1365
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1366
    ^PerforceError
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1367
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1368
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1369
perforceTmpDirectory
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1370
    "return the name of the tmp repository.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1371
     That's the directory, where temporary files are created for checkin/checkout.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1372
     If nil, the systems default tempDirectory is used."
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1373
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1374
    ^ (PerforceTempDir ? Filename tempDirectory pathName)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1375
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1376
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1377
     PerforceTempDir := nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1378
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1379
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1380
    "Modified (comment): / 14-01-2012 / 20:54:29 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1381
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1382
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1383
removeWorkSpaceForSettings:settingsString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1384
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1385
    |workSpace|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1386
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1387
    workSpace := self perforceWorkspaces at:settingsString ifAbsent:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1388
    workSpace notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1389
        self perforceError handle:[:ex|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1390
            self reportError:ex description.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1391
            ex proceed.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1392
        ] do:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1393
            workSpace releaseWorkSpace.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1394
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1395
        self perforceWorkspaces removeKey:settingsString ifAbsent:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1396
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1397
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1398
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1399
self perforceWorkspaces remove:(self perforceWorkspaces first)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1400
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1401
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1402
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1403
settingsApplicationClass
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1404
    "link to my settings application (needed for the settings dialog"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1405
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1406
    ^ PerforceSourceCodeManagementSettingsAppl
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1407
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1408
    "Created: / 19-04-2011 / 12:45:13 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1409
    "Modified: / 20-04-2011 / 12:49:41 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1410
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1411
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1412
!PerforceSourceCodeManager class methodsFor:'queries - settings'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1413
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1414
getPerforceDefaultSettingsString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1415
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1416
    ^(PerforceSourceCodeManager perforceClient ,':',
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1417
       PerforceSourceCodeManager perforceUser, ':',
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1418
       (PerforceSourceCodeManager perforcePassword ? ''), '@',
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1419
       PerforceSourceCodeManager perforcePort).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1420
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1421
    "Modified: / 19-04-2011 / 10:46:37 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1422
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1423
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1424
getPerforcePasswordForModule:aModuleName
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1425
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1426
    | settings settingsString|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1427
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1428
    aModuleName isNil ifTrue:[^ nil].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1429
    settingsString := self getPerforceSettingsForPackage:aModuleName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1430
    settingsString isNil ifTrue:[^ PerforcePassword].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1431
    settings := self getPerforceSettingsFromString:settingsString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1432
    ^ settings at:#password ifAbsent:PerforcePassword.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1433
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1434
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1435
getPerforcePortForModule:aModuleName
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1436
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1437
    | settings settingsString|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1438
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1439
    aModuleName isNil ifTrue:[^ nil].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1440
    settingsString := self getPerforceSettingsForPackage:aModuleName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1441
    settingsString isNil ifTrue:[^ PerforcePort].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1442
    settings := self getPerforceSettingsFromString:settingsString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1443
    ^ settings at:#port ifAbsent:PerforcePort.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1444
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1445
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1446
getPerforceSettingsForPackage:aPackage
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1447
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1448
    |samePath|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1449
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1450
    aPackage isNil ifTrue:[^ nil].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1451
    self repositoryInfoPerModule keysAndValuesDo:[:package :settings|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1452
        samePath := self path:aPackage asPackageId pathRelativeToTopDirectory hasSamePrefixLikePath:package asPackageId pathRelativeToTopDirectory.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1453
        samePath ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1454
            ^settings
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1455
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1456
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1457
    (((self managerForPackage:aPackage) == self) or:[(Smalltalk at:#SourceCodeManager) == self]) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1458
        ^ self getPerforceDefaultSettingsString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1459
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1460
    ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1461
    
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1462
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1463
self getPerforceSettingsForPackage:'applistx'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1464
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1465
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1466
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1467
getPerforceSettingsFromString:aString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1468
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1469
    |clientAndPort noOfClientAndPortElements userAndClientAndPassword noOfUserAndClient settings |
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1470
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1471
    settings := Dictionary new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1472
    clientAndPort := aString asCollectionOfSubstringsSeparatedBy:$@.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1473
    noOfClientAndPortElements := clientAndPort size.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1474
    noOfClientAndPortElements > 0 ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1475
        userAndClientAndPassword := clientAndPort first asCollectionOfSubstringsSeparatedBy:$:.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1476
        noOfUserAndClient := userAndClientAndPassword size.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1477
        noOfUserAndClient > 0 ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1478
            settings at:#client put:userAndClientAndPassword first.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1479
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1480
        noOfUserAndClient > 1 ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1481
            settings at:#user put:userAndClientAndPassword second.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1482
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1483
        (noOfUserAndClient > 2 and:[userAndClientAndPassword third notEmpty]) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1484
            settings at:#password put:userAndClientAndPassword third.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1485
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1486
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1487
    noOfClientAndPortElements > 1 ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1488
        settings at:#port put:clientAndPort second.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1489
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1490
    ^ settings
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1491
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1492
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1493
self getPerforceSettingsFromString:'alspa:penk:@perlin:1666'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1494
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1495
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1496
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1497
getPerforceUserForModule:aModuleName
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1498
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1499
    | settings settingsString|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1500
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1501
    aModuleName isNil ifTrue:[^ nil].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1502
    settingsString := self getPerforceSettingsForPackage:aModuleName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1503
    settingsString isNil ifTrue:[^ PerforcePassword].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1504
    settings := self getPerforceSettingsFromString:settingsString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1505
    ^ settings at:#password ifAbsent:PerforcePassword.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1506
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1507
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1508
getStringFromPerforceSettings:perforceSettings
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1509
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1510
    |settingsStream client user password port|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1511
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1512
    settingsStream := WriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1513
    client := perforceSettings at:#client ifAbsent:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1514
    client notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1515
        settingsStream nextPutAll:client.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1516
        settingsStream nextPut:$:.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1517
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1518
    user := perforceSettings at:#user ifAbsent:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1519
    user notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1520
        settingsStream nextPutAll:user.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1521
        settingsStream nextPut:$:.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1522
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1523
    password := perforceSettings at:#password ifAbsent:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1524
    password notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1525
        settingsStream nextPutAll:password.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1526
        settingsStream nextPut:$:.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1527
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1528
    settingsStream nextPut:$@.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1529
    port := perforceSettings at:#port ifAbsent:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1530
    port notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1531
        settingsStream nextPutAll:port.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1532
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1533
    ^ settingsStream contents.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1534
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1535
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1536
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1537
self getStringFromPerforceSettings:(self getPerforceSettingsFromString:'alspa:penk:@perlin:1666')
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1538
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1539
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1540
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1541
!PerforceSourceCodeManager class methodsFor:'subclass responsibility'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1542
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1543
getExistingContainersInModule:aModule directory:aPackage
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1544
    "{ Pragma: +optSpace }"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1545
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1546
    " can be easy done with dirs command "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1547
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1548
    self shouldImplement
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1549
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1550
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1551
getExistingDirectoriesInModule:aModule
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1552
    "{ Pragma: +optSpace }"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1553
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1554
    self shouldImplement
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1555
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1556
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1557
getExistingModules
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1558
    "{ Pragma: +optSpace }"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1559
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1560
    self shouldImplement
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1561
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1562
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1563
reportHistoryLogSince:timeGoal filterSTSources:filter filterUser:userFilter filterRepository:repositoryFilter filterModules:moduleFilter inTo:aBlock
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1564
    "Superclass AbstractSourceCodeManager class says that I am responsible to implement this method"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1565
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1566
    self shouldImplement
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1567
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1568
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1569
!PerforceSourceCodeManager::CheckInDefinition methodsFor:'accessing'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1570
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1571
classFileName
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1572
    ^ classFileName
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1573
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1574
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1575
classFileName:something
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1576
    classFileName := something.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1577
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1578
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1579
definitionClass
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1580
    ^ definitionClass
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1581
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1582
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1583
fileContents
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1584
    ^ fileContents
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1585
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1586
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1587
fileContents:something
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1588
    fileContents := something.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1589
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1590
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1591
logMessage
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1592
    ^ logMessage
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1593
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1594
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1595
logMessage:something
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1596
    logMessage := something.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1597
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1598
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1599
manager
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1600
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1601
    ^ manager
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1602
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1603
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1604
manager:something
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1605
    manager := something.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1606
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1607
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1608
package
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1609
    ^ package
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1610
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1611
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1612
package:something
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1613
    package := something.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1614
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1615
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1616
packageDir
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1617
    ^ packageDir
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1618
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1619
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1620
packageDir:something
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1621
    packageDir := something.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1622
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1623
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1624
revisionStringBeforeAction
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1625
    ^ revisionStringBeforeAction
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1626
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1627
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1628
revisionStringBeforeAction:something
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1629
    revisionStringBeforeAction := something.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1630
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1631
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1632
setDefinitionClass:something
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1633
    definitionClass := something.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1634
    self  revisionStringBeforeAction:self getLocalRevisionString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1635
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1636
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1637
setLogMessage:something
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1638
    something isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1639
        logMessage := ''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1640
    ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1641
        logMessage := something asSingleByteStringIfPossible.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1642
        logMessage bitsPerCharacter ~~ 8 ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1643
            ^ false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1644
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1645
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1646
    ^ true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1647
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1648
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1649
sourceFileName
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1650
    ^ sourceFileName
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1651
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1652
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1653
sourceFileName:something
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1654
    sourceFileName := something.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1655
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1656
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1657
tempDirectory:something
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1658
    tempDirectory := something.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1659
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1660
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1661
workSpace
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1662
    ^ workSpace
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1663
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1664
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1665
workSpace:something
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1666
    workSpace := something.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1667
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1668
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1669
!PerforceSourceCodeManager::CheckInDefinition methodsFor:'actions'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1670
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1671
getBinaryRevision
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1672
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1673
    |locRevision |
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1674
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1675
    definitionClass isNil ifTrue:[ ^nil].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1676
    locRevision := definitionClass binaryRevision.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1677
    ^ locRevision
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1678
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1679
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1680
getBinaryRevisionNumber
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1681
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1682
    |locRevision |
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1683
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1684
    locRevision := self getBinaryRevision.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1685
    locRevision notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1686
        locRevision := locRevision asNumber.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1687
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1688
    ^ locRevision
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1689
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1690
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1691
getLocalRevision
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1692
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1693
    |locRevisionString versionInfo|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1694
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1695
    locRevisionString := self getLocalRevisionString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1696
    locRevisionString notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1697
        versionInfo := PerforceSourceCodeManager versionInfoClass fromRCSString:locRevisionString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1698
        versionInfo isNil ifTrue:[ ^nil].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1699
        ^versionInfo revision
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1700
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1701
    ^ nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1702
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1703
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1704
getLocalRevisionNumber
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1705
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1706
    |locRevision locRevisionNumber|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1707
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1708
    locRevision := self getLocalRevision.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1709
    locRevision notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1710
        locRevisionNumber := Number readFrom:locRevision onError:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1711
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1712
    ^ locRevisionNumber
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1713
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1714
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1715
getLocalRevisionString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1716
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1717
    |locRevisionString |
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1718
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1719
    definitionClass isNil ifTrue:[ ^nil].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1720
    locRevisionString := definitionClass revisionStringOfManager:self manager.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1721
    ^ locRevisionString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1722
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1723
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1724
getReposRevisionAfterCheckin
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1725
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1726
    |log|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1727
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1728
    log := self getReposRevisionInfoAfterCheckin.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1729
    log isNil ifTrue:[^ nil].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1730
    ^ log at:#newestRevision ifAbsent:nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1731
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1732
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1733
getReposRevisionBeforeCheckin
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1734
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1735
    |log|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1736
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1737
    log := self getReposRevisionInfoBeforeCheckin.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1738
    log isNil ifTrue:[^ nil].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1739
    ^ log at:#newestRevision ifAbsent:nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1740
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1741
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1742
getReposRevisionInfoAfterCheckin
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1743
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1744
    reposRevisionInfoAfterAction isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1745
        reposRevisionInfoAfterAction := self manager revisionLogOf:nil 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1746
            fromRevision:0 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1747
            toRevision:0 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1748
            fileName:self fileName 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1749
            directory:packageDir 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1750
            module:package.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1751
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1752
    ^ reposRevisionInfoAfterAction
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1753
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1754
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1755
getReposRevisionInfoBeforeCheckin
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1756
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1757
    reposRevisionInfoBeforeAction isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1758
        reposRevisionInfoBeforeAction := self manager revisionLogOf:nil 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1759
            fromRevision:0 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1760
            toRevision:0 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1761
            fileName:self fileName 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1762
            directory:packageDir 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1763
            module:package.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1764
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1765
    ^ reposRevisionInfoBeforeAction
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1766
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1767
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1768
getReposRevisionNumberAfterCheckin
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1769
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1770
    | newestRevisionInfo newestRevisionString|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1771
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1772
    newestRevisionInfo := self getReposRevisionInfoAfterCheckin.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1773
    newestRevisionInfo isNil ifTrue:[ ^nil].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1774
    newestRevisionString := newestRevisionInfo at:#newestRevision ifAbsent:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1775
    newestRevisionString isEmptyOrNil ifTrue:[ ^nil].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1776
    ^ Number readFrom:(ReadStream on:newestRevisionString) onError:nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1777
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1778
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1779
getReposRevisionNumberBeforeCheckin
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1780
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1781
    | newestRevisionInfo newestRevisionString|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1782
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1783
    newestRevisionInfo := self getReposRevisionInfoBeforeCheckin.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1784
    newestRevisionInfo isNil ifTrue:[ ^nil].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1785
    newestRevisionString := newestRevisionInfo at:#newestRevision ifAbsent:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1786
    newestRevisionString isEmptyOrNil ifTrue:[ ^nil].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1787
    ^ Number readFrom:(ReadStream on:newestRevisionString) onError:nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1788
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1789
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1790
!PerforceSourceCodeManager::CheckInDefinition methodsFor:'queries'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1791
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1792
definitionObjectString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1793
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1794
    definitionClass notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1795
        ^definitionClass name
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1796
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1797
    sourceFileName notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1798
        ^sourceFileName
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1799
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1800
    ^'?'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1801
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1802
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1803
fileName
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1804
    ^classFileName ? sourceFileName
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1805
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1806
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1807
isClassCheckin
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1808
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1809
    ^definitionClass notNil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1810
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1811
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1812
packageString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1813
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1814
    ^ (PackageId module:package directory:packageDir) asString. 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1815
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1816
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1817
!PerforceSourceCodeManager::P4CheckinInfoDialog class methodsFor:'documentation'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1818
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1819
copyright
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1820
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1821
 COPYRIGHT (c) 2005 eXept Software AG
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1822
              All Rights Reserved
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1823
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1824
 This software is furnished under a license and may be used
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1825
 only in accordance with the terms of that license and with the
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1826
 inclusion of the above copyright notice.   This software may not
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1827
 be provided or otherwise made available to, or used by, any
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1828
 other person.  No title to or ownership of the software is
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1829
 hereby transferred.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1830
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1831
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1832
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1833
documentation
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1834
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1835
    checkin-dialog.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1836
    used to be private in SourceCodeManagerUtilites.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1837
    moved to libtool because libbasic3 should not contain code inheriting from GUI classes.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1838
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1839
    [author:]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1840
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1841
    [see also:]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1842
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1843
    [instance variables:]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1844
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1845
    [class variables:]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1846
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1847
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1848
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1849
!PerforceSourceCodeManager::P4CheckinInfoDialog class methodsFor:'interface specs'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1850
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1851
windowSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1852
    "This resource specification was automatically generated
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1853
     by the UIPainter of ST/X."
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1854
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1855
    "Do not manually edit this!! If it is corrupted,
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1856
     the UIPainter may not be able to read the specification."
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1857
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1858
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1859
     UIPainter new openOnClass:PerforceSourceCodeManager::P4CheckinInfoDialog andSelector:#windowSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1860
     PerforceSourceCodeManager::P4CheckinInfoDialog new openInterface:#windowSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1861
     PerforceSourceCodeManager::P4CheckinInfoDialog open
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1862
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1863
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1864
    <resource: #canvas>
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1865
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1866
    ^ 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1867
     #(FullSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1868
        name: windowSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1869
        window: 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1870
       (WindowSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1871
          label: 'Enter Log Message'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1872
          name: 'Enter Log Message'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1873
          min: (Point 10 10)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1874
          bounds: (Rectangle 0 0 800 327)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1875
        )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1876
        component: 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1877
       (SpecCollection
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1878
          collection: (
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1879
           (HorizontalPanelViewSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1880
              name: 'HorizontalPanel2'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1881
              layout: (LayoutFrame 0 0.0 0 0 0 1.0 32 0)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1882
              horizontalLayout: left
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1883
              verticalLayout: center
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1884
              horizontalSpace: 0
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1885
              verticalSpace: 3
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1886
              component: 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1887
             (SpecCollection
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1888
                collection: (
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1889
                 (LabelSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1890
                    label: 'Enter checkIn log-message for:'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1891
                    name: 'Label1'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1892
                    translateLabel: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1893
                    resizeForLabel: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1894
                    useDefaultExtent: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1895
                  )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1896
                 (LabelSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1897
                    name: 'Label2'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1898
                    translateLabel: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1899
                    labelChannel: descriptionHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1900
                    useDefaultExtent: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1901
                  )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1902
                 )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1903
               
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1904
              )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1905
            )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1906
           (TextEditorSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1907
              name: 'TextEditor1'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1908
              layout: (LayoutFrame 2 0.0 38 0 -2 1 -125 1)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1909
              model: logMessageHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1910
              hasHorizontalScrollBar: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1911
              hasVerticalScrollBar: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1912
              hasKeyboardFocusInitially: false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1913
            )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1914
           (LabelSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1915
              name: 'Label4'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1916
              layout: (LayoutFrame 0 0.0 -119 1 0 1.0 -97 1)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1917
              translateLabel: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1918
              labelChannel: warningMessageHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1919
            )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1920
           (CheckBoxSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1921
              label: 'Quick Checkin (Only Classes in ChangeSet)'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1922
              name: 'CheckInChangedOnlyCheckbox'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1923
              layout: (LayoutFrame 3 0 -95 1 -3 0.5 -73 1)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1924
              visibilityChannel: quickCheckInVisibleHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1925
              model: quickCheckInHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1926
              translateLabel: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1927
            )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1928
           (CheckBoxSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1929
              label: 'Mark as Stable'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1930
              name: 'MarkStableCheckBox'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1931
              layout: (LayoutFrame 3 0 -68 1 -3 1 -46 1)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1932
              model: isStableHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1933
              translateLabel: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1934
            )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1935
           (LabelSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1936
              label: 'Tag:'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1937
              name: 'Label3'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1938
              layout: (LayoutFrame -40 0.5 -67 1 0 0.5 -45 1)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1939
              translateLabel: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1940
              adjust: right
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1941
            )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1942
           (InputFieldSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1943
              name: 'TagEntryField'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1944
              layout: (LayoutFrame 0 0.5 -68 1 -3 1 -46 1)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1945
              enableChannel: tagItInHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1946
              model: tagHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1947
              acceptOnReturn: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1948
              acceptOnTab: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1949
              acceptOnLostFocus: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1950
              acceptOnPointerLeave: false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1951
            )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1952
           (HorizontalPanelViewSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1953
              name: 'ButtonPanel1'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1954
              layout: (LayoutFrame 0 0.0 -40 1 0 1.0 0 1.0)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1955
              horizontalLayout: fitSpace
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1956
              verticalLayout: center
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1957
              horizontalSpace: 3
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1958
              verticalSpace: 2
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1959
              reverseOrderIfOKAtLeft: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1960
              component: 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1961
             (SpecCollection
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1962
                collection: (
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1963
                 (ActionButtonSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1964
                    label: 'Cancel'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1965
                    name: 'Button2'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1966
                    translateLabel: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1967
                    model: doCancel
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1968
                    extent: (Point 395 22)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1969
                  )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1970
                 (ActionButtonSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1971
                    label: 'OK'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1972
                    name: 'Button1'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1973
                    translateLabel: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1974
                    model: doAccept
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1975
                    extent: (Point 396 22)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1976
                  )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1977
                 )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1978
               
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1979
              )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1980
            )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1981
           (CheckBoxSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1982
              label: 'Immediate Submit'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1983
              name: 'CheckBox1'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1984
              layout: (LayoutFrame 3 0.5 -95 1 -3 1 -73 1)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1985
              model: submitHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1986
              translateLabel: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1987
            )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1988
           )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1989
         
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1990
        )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1991
      )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1992
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1993
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1994
!PerforceSourceCodeManager::P4CheckinInfoDialog class methodsFor:'opening'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1995
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1996
getCheckinInfoFor:aString initialAnswer:initialAnswer
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1997
    ^ self 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1998
        getCheckinInfoFor:aString 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  1999
        initialAnswer:initialAnswer 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2000
        withQuickOption:false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2001
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2002
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2003
      self getCheckinInfoFor:'hello' initialAnswer:'bla'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2004
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2005
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2006
    "Modified (format): / 12-03-2012 / 12:38:48 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2007
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2008
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2009
getCheckinInfoFor:aClassNameOrPackageNameString initialAnswer:initialAnswer withQuickOption:withQuickOption
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2010
    ^ self
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2011
        getCheckinInfoFor:aClassNameOrPackageNameString 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2012
        initialAnswer:initialAnswer 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2013
        withQuickOption:withQuickOption
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2014
        logHistory:#()
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2015
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2016
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2017
     self getCheckinInfoFor:'hello' initialAnswer:'bla'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2018
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2019
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2020
    "Modified: / 12-03-2012 / 12:39:00 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2021
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2022
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2023
getCheckinInfoFor:aClassNameOrPackageNameString initialAnswer:initialAnswer withQuickOption:withQuickOption logHistory:logHistoryArg
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2024
    |dialog warnMessage|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2025
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2026
    warnMessage := nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2027
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2028
    [
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2029
        dialog := self new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2030
        dialog 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2031
            description:aClassNameOrPackageNameString; 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2032
            logMessage:initialAnswer;
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2033
            withQuickOption:withQuickOption;
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2034
            logHistory:logHistoryArg.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2035
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2036
        dialog warningMessageHolder value:warnMessage.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2037
        dialog open.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2038
        dialog accepted ifFalse:[ ^ nil ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2039
    ] doUntil:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2040
        |stopAsking|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2041
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2042
        stopAsking := dialog allowEmptyLogMessage 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2043
                      or:[ dialog logMessage withoutSeparators notEmptyOrNil ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2044
        stopAsking ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2045
            warnMessage := (self resources string:'Please enter a description of your changes!!') 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2046
                                asText 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2047
                                    colorizeAllWith:Color red.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2048
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2049
        stopAsking
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2050
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2051
    ^ dialog    
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2052
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2053
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2054
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2055
     self getCheckinInfoFor:'hello' initialAnswer:'bla'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2056
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2057
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2058
    "Created: / 12-03-2012 / 12:36:26 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2059
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2060
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2061
!PerforceSourceCodeManager::P4CheckinInfoDialog methodsFor:'accessing'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2062
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2063
allowEmptyLogMessage
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2064
    ^ allowEmptyLogMessage ? false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2065
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2066
    "Created: / 06-07-2010 / 11:23:18 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2067
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2068
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2069
allowEmptyLogMessage:aBoolean 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2070
    allowEmptyLogMessage := aBoolean
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2071
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2072
    "Created: / 06-07-2010 / 11:23:31 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2073
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2074
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2075
description
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2076
    ^ self descriptionHolder value
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2077
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2078
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2079
description:aString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2080
    self descriptionHolder value:aString allBold
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2081
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2082
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2083
isStable
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2084
    ^ self isStableHolder value
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2085
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2086
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2087
isStable:aBoolean
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2088
    self isStableHolder value:aBoolean
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2089
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2090
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2091
logHistory:something
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2092
    logHistory := something.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2093
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2094
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2095
logMessage
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2096
    ^ self logMessageHolder value
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2097
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2098
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2099
logMessage:aString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2100
    self logMessageHolder value:aString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2101
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2102
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2103
quickCheckIn
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2104
    ^ self quickCheckInHolder value
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2105
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2106
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2107
quickCheckIn:aBoolean
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2108
    self quickCheckInHolder value:aBoolean
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2109
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2110
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2111
tag
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2112
    ^ self tagHolder value withoutSeparators
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2113
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2114
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2115
tag:aStringOrNil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2116
    self tagHolder value:aStringOrNil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2117
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2118
    "Modified: / 12-09-2006 / 12:03:50 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2119
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2120
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2121
tagIt
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2122
    ^ self tag notEmptyOrNil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2123
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2124
    "Created: / 12-09-2006 / 13:06:49 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2125
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2126
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2127
withQuickOption:aBoolean
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2128
    ^ self quickCheckInVisibleHolder value:aBoolean
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2129
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2130
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2131
!PerforceSourceCodeManager::P4CheckinInfoDialog methodsFor:'aspects'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2132
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2133
descriptionHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2134
    descriptionHolder isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2135
        descriptionHolder := ValueHolder new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2136
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2137
    ^ descriptionHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2138
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2139
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2140
isStableHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2141
    isStableHolder isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2142
        isStableHolder := false asValue.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2143
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2144
    ^ isStableHolder.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2145
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2146
    "Modified: / 16-01-2007 / 16:00:26 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2147
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2148
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2149
logHistoryHeadLineSelectionHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2150
    logHistoryHeadLineSelectionHolder isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2151
        logHistoryHeadLineSelectionHolder := nil asValue.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2152
        logHistoryHeadLineSelectionHolder 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2153
            onChangeEvaluate:
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2154
                [
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2155
                    self logMessageHolder value:(logHistory at:logHistoryHeadLineSelectionHolder value)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2156
                ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2157
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2158
    ^ logHistoryHeadLineSelectionHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2159
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2160
    "Created: / 12-03-2012 / 12:40:36 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2161
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2162
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2163
logHistoryHeadLines
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2164
    ^ (logHistory ? #())
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2165
        collect:[:msg |
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2166
            msg withoutLeadingSeparators asCollectionOfLines first , '...'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2167
        ]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2168
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2169
    "Created: / 12-03-2012 / 12:39:35 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2170
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2171
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2172
logMessageHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2173
    logMessageHolder isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2174
        logMessageHolder := '' asValue.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2175
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2176
    ^ logMessageHolder.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2177
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2178
    "Modified: / 12-03-2012 / 12:34:13 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2179
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2180
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2181
quickCheckInHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2182
    quickCheckInHolder isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2183
        quickCheckInHolder := true asValue.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2184
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2185
    ^ quickCheckInHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2186
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2187
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2188
quickCheckInVisibleHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2189
    quickCheckInVisibleHolder isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2190
        quickCheckInVisibleHolder := false asValue.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2191
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2192
    ^ quickCheckInVisibleHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2193
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2194
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2195
submitHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2196
    submitHolder isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2197
        submitHolder := false asValue.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2198
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2199
    ^ submitHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2200
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2201
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2202
tagHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2203
    tagHolder isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2204
        tagHolder := '' asValue.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2205
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2206
    ^ tagHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2207
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2208
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2209
warningMessageHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2210
    warningMessageHolder isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2211
        warningMessageHolder := nil asValue.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2212
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2213
    ^ warningMessageHolder.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2214
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2215
    "Created: / 06-07-2010 / 11:30:29 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2216
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2217
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2218
!PerforceSourceCodeManager::PerforceSourceCodeManagerUtilities methodsFor:'utilities-cvs'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2219
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2220
checkinClass:aClass withInfo:aLogInfoOrNil withCheck:doCheckClass usingManager:managerOrNil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2221
    "check a class into the source repository.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2222
     If the argument, aLogInfoOrNil isNil, ask interactively for log-message.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2223
     If doCheckClass is true, the class is checked for send of halts etc."
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2224
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2225
    |logMessage checkinInfo mgr pri doSubmit|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2226
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2227
    resources := self classResources.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2228
    doSubmit := false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2229
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2230
    aClass isLoaded ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2231
        self information:(resources string:'Cannot checkin unloaded classes (%1)' with:aClass name).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2232
        ^ false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2233
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2234
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2235
    mgr := managerOrNil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2236
    mgr isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2237
        mgr := self sourceCodeManagerFor:aClass.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2238
        mgr isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2239
            ^ false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2240
        ]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2241
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2242
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2243
    self ensureCorrectVersionMethodsInClass:aClass usingManager:mgr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2244
    mgr supportsCheckinLogMessages ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2245
        (self 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2246
            getLogMessageForClassCheckinTakingDefaultsFromPreviousLogInfo:aLogInfoOrNil 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2247
            forClass:aClass
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2248
            valuesInto:[:logMessageRet :checkinInfoRet |
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2249
                logMessage := logMessageRet.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2250
                checkinInfo := checkinInfoRet.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2251
                checkinInfo notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2252
                    doSubmit := checkinInfo submitHolder value.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2253
                ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2254
            ]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2255
        ) ifFalse:[^ false].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2256
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2257
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2258
    (self classIsNotYetInRepository:aClass withManager:mgr) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2259
        (self createSourceContainerForClass:aClass usingManager:mgr) ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2260
"/            self warn:'did not create a container for ''' , aClass name , ''''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2261
            ^ false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2262
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2263
        ^ true.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2264
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2265
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2266
    self activityNotification:(resources string:'checking in %1' with:aClass name).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2267
    pri := Processor activePriority.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2268
    Processor activeProcess withPriority:pri-1 to:pri
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2269
    do:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2270
        |revision aborted|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2271
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2272
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2273
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2274
        aborted := false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2275
        AbortOperationRequest handle:[:ex |
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2276
            aborted := true.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2277
            ex return.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2278
        ] do:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2279
            |checkinState cause|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2280
            checkinState := false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2281
            cause := ''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2282
            [
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2283
                checkinState := mgr checkinClass:aClass logMessage:logMessage submit:doSubmit
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2284
            ] on:SourceCodeManagerError do:[:ex| 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2285
self halt.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2286
                cause := ex description.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2287
                ex proceed.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2288
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2289
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2290
            checkinState ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2291
                Transcript showCR:'checkin of ''' , aClass name , ''' failed - ', cause.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2292
                self warn:(resources stringWithCRs:'Checkin of "%1" failed\\' with:aClass name allBold),cause.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2293
                ^ false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2294
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2295
            checkinInfo notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2296
                checkinInfo isStable ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2297
                    "set stable tag for class that has been checked in"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2298
                    self tagClass:aClass as:#stable.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2299
                ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2300
                checkinInfo tagIt ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2301
                    "set an additional tag for class that has been checked in"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2302
                    self tagClass:aClass as:(checkinInfo tag).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2303
                ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2304
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2305
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2306
        aborted ifTrue:[  |con|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2307
            Transcript showCR:'Checkin of ''' , aClass name , ''' aborted'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2308
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2309
            AbortAllOperationWantedQuery query ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2310
                (Dialog 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2311
                    confirm:(resources stringWithCRs:'Checkin of "%1" aborted.\\Cancel all ?' with:aClass name)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2312
                    default:false)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2313
                ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2314
                    AbortAllOperationRequest raise.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2315
                ]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2316
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2317
            ^ false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2318
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2319
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2320
    ^ true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2321
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2322
    "Created: / 21-12-2011 / 18:19:14 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2323
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2324
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2325
!PerforceSourceCodeManager::PerforceSourceCodeManagerUtilities methodsFor:'utilities-p4'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2326
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2327
submit
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2328
    self defaultManager submit
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2329
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2330
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2331
!PerforceSourceCodeManager::PerforceSourceCodeManagerUtilities methodsFor:'utilities-p4-interaction'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2332
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2333
getCheckinInfoFor:aClassNameOrPackageNameString initialAnswer:initialAnswerOrNil withQuickOption:withQuickOption
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2334
    "ask for a log message for checking in a class (plus checkinQuick state info),
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2335
     and other info (mark as stable, for example).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2336
     Return the info-object (actually: the dialog) or nil if aborted."
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2337
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2338
    |logMsg infoDialog|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2339
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2340
    infoDialog := self defaultManager checkInInfoDialogClass 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2341
                getCheckinInfoFor:aClassNameOrPackageNameString 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2342
                initialAnswer:(initialAnswerOrNil ? LastSourceLogMessage)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2343
                withQuickOption:withQuickOption.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2344
    infoDialog notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2345
        logMsg := infoDialog logMessage.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2346
        logMsg notEmptyOrNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2347
            LastSourceLogMessage := logMsg
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2348
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2349
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2350
    ^ infoDialog
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2351
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2352
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2353
     SourceCodeManagerUtilities getCheckinInfoFor:'hello' initialAnswer:'bla'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2354
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2355
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2356
    "Modified: / 06-07-2010 / 11:21:28 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2357
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2358
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2359
!PerforceSourceCodeManager::PerforceVersionInfo class methodsFor:'documentation'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2360
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2361
documentation
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2362
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2363
    Class used to return a Dictionary when asked for versionInfo.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2364
    This has been replaced by instances of VersionInfo and subclasses.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2365
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2366
    Notice, that CVSVersionInfo adds some CVS specific data.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2367
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2368
    [author:]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2369
        cg (cg@AQUA-DUO)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2370
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2371
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2372
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2373
!PerforceSourceCodeManager::PerforceVersionInfo class methodsFor:'instance creation'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2374
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2375
fromRCSString:aString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2376
    "{ Pragma: +optSpace }"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2377
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2378
    "I know how to parse RCS/CVS version id strings.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2379
     Return an instance filled with revision info which is
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2380
     extracted from aString. This must be in RCS/CVS format."
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2381
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2382
    |words firstWord info s depotName revNumber rest hashIndex revNumberIndex|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2383
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2384
    s := aString readStream.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2385
    s skipSeparators.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2386
    firstWord := s upToSeparator.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2387
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2388
    info := self new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2389
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2390
    "/
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2391
    "/ supported formats:
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2392
    "/
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2393
    "/ $-Header:   pathName rev date time user state $
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2394
    "/ $-Revision: rev $
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2395
    "/ $-Id:       fileName rev date time user state $
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2396
    "/
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2397
    (firstWord = '$Header: /cvs/stx/stx/libbasic3/PerforceSourceCodeManager.st,v 1.24 2012-06-01 07:57:44 cg Exp $Id:' or:[firstWord = '§Id:']]]) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2398
        s skipSeparators.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2399
        rest := s upToEnd.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2400
        hashIndex := rest indexOf:$#.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2401
        hashIndex = 0 ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2402
            " not a perforce RCS version string"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2403
            ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2404
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2405
        depotName := rest copyTo:(hashIndex - 1).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2406
        info repositoryPathName:depotName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2407
        info fileName:(depotName asFilename baseName).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2408
        revNumberIndex := rest indexOfSeparatorStartingAt:hashIndex.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2409
        revNumber := (rest copyFrom:(hashIndex + 1) to:(revNumberIndex -1 )).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2410
        info revision:revNumber.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2411
        words := s upToEnd asCollectionOfWords readStream.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2412
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2413
        ^ info
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2414
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2415
    ^ nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2416
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2417
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2418
     | versionInfo s|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2419
     versionInfo := PerforceVersionInfo fromRepositoryPathName:'//depot/applistx/util/rtdb/RTDBInterfaceInspector.st'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2420
     versionInfo revision:26.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2421
     versionInfo user:'penk'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2422
     s := CharacterWriteStream on:(String basicNew:40).    
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2423
     Date today printOn:s format:'%d-%m-%y' language:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2424
     versionInfo date:s contents.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2425
     s := CharacterWriteStream on:(String basicNew:40).    
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2426
     Timestamp now printOn:s format:'%h-%m-%s.%i'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2427
     versionInfo time:s contents.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2428
     PerforceVersionInfo fromRCSString:versionInfo getVersionString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2429
     PerforceVersionInfo fromRCSString:'$Header: /cvs/stx/stx/libbasic3/PerforceSourceCodeManager.st,v 1.24 2012-06-01 07:57:44 cg Exp $'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2430
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2431
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2432
    "Modified: / 22-10-2008 / 20:17:00 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2433
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2434
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2435
fromRepositoryPathName:something
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2436
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2437
    |inst|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2438
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2439
    inst := self new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2440
    inst repositoryPathName:something.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2441
    ^inst
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2442
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2443
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2444
!PerforceSourceCodeManager::PerforceVersionInfo methodsFor:'accessing'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2445
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2446
repositoryPathName
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2447
    ^ repositoryPathName
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2448
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2449
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2450
repositoryPathName:something
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2451
    repositoryPathName := something.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2452
    self fileName:repositoryPathName asFilename baseName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2453
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2454
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2455
revisionNumber
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2456
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2457
    revision isNil ifTrue:[ ^nil].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2458
    revisionNumber isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2459
        revisionNumber := Number readFrom:(ReadStream on:revision) onError:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2460
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2461
    ^ revisionNumber
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2462
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2463
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2464
state
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2465
    ^ ''
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2466
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2467
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2468
timeZone
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2469
    ^ ''
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2470
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2471
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2472
timezone
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2473
    ^ ''
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2474
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2475
    "Created: / 22-10-2008 / 20:50:39 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2476
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2477
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2478
!PerforceSourceCodeManager::PerforceVersionInfo methodsFor:'queries'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2479
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2480
getVersionString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2481
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2482
    |stream|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2483
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2484
    stream := WriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2485
    stream nextPutAll:'$Header: '.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2486
    stream nextPutAll:repositoryPathName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2487
    stream nextPut:$#.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2488
    stream nextPutAll:revision printString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2489
    stream space.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2490
    stream nextPut:$$.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2491
        
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2492
    ^ stream contents
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2493
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2494
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2495
getVersionString_ownVersion
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2496
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2497
    |stream|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2498
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2499
    stream := WriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2500
    stream nextPutAll:'Path:'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2501
    stream space.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2502
    stream nextPutAll:repositoryPathName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2503
    stream nextPut:$#.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2504
    stream nextPutAll:revision printString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2505
    self user notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2506
        stream space.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2507
        stream nextPutAll:'User:'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2508
        stream space.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2509
        stream nextPutAll:self user printString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2510
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2511
    self date notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2512
        stream space.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2513
        stream nextPutAll:'Date:'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2514
        stream space.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2515
        stream nextPutAll:self date printString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2516
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2517
    self time notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2518
        stream space.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2519
        stream nextPutAll:'Time:'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2520
        stream space.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2521
        stream nextPutAll:self time printString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2522
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2523
        
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2524
    ^ stream contents
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2525
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2526
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2527
!PerforceSourceCodeManager::SubmitInfoDialog class methodsFor:'documentation'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2528
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2529
copyright
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2530
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2531
 COPYRIGHT (c) 2005 eXept Software AG
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2532
              All Rights Reserved
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2533
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2534
 This software is furnished under a license and may be used
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2535
 only in accordance with the terms of that license and with the
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2536
 inclusion of the above copyright notice.   This software may not
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2537
 be provided or otherwise made available to, or used by, any
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2538
 other person.  No title to or ownership of the software is
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2539
 hereby transferred.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2540
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2541
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2542
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2543
documentation
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2544
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2545
    checkin-dialog.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2546
    used to be private in SourceCodeManagerUtilites.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2547
    moved to libtool because libbasic3 should not contain code inheriting from GUI classes.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2548
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2549
    [author:]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2550
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2551
    [see also:]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2552
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2553
    [instance variables:]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2554
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2555
    [class variables:]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2556
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2557
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2558
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2559
!PerforceSourceCodeManager::SubmitInfoDialog class methodsFor:'interface specs'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2560
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2561
windowSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2562
    "This resource specification was automatically generated
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2563
     by the UIPainter of ST/X."
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2564
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2565
    "Do not manually edit this!! If it is corrupted,
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2566
     the UIPainter may not be able to read the specification."
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2567
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2568
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2569
     UIPainter new openOnClass:PerforceSourceCodeManager::SubmitInfoDialog andSelector:#windowSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2570
     PerforceSourceCodeManager::SubmitInfoDialog new openInterface:#windowSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2571
     PerforceSourceCodeManager::SubmitInfoDialog open
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2572
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2573
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2574
    <resource: #canvas>
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2575
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2576
    ^ 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2577
     #(FullSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2578
        name: windowSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2579
        window: 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2580
       (WindowSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2581
          label: 'Enter Log Message'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2582
          name: 'Enter Log Message'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2583
          min: (Point 10 10)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2584
          bounds: (Rectangle 0 0 563 561)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2585
        )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2586
        component: 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2587
       (SpecCollection
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2588
          collection: (
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2589
           (HorizontalPanelViewSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2590
              name: 'HorizontalPanel2'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2591
              layout: (LayoutFrame 0 0.0 0 0 0 1.0 32 0)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2592
              horizontalLayout: left
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2593
              verticalLayout: center
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2594
              horizontalSpace: 0
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2595
              verticalSpace: 3
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2596
              component: 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2597
             (SpecCollection
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2598
                collection: (
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2599
                 (LabelSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2600
                    label: 'Enter checkIn log-message for:'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2601
                    name: 'Label1'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2602
                    translateLabel: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2603
                    resizeForLabel: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2604
                    useDefaultExtent: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2605
                  )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2606
                 (LabelSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2607
                    name: 'Label2'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2608
                    translateLabel: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2609
                    labelChannel: descriptionHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2610
                    useDefaultExtent: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2611
                  )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2612
                 )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2613
               
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2614
              )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2615
            )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2616
           (VerticalPanelViewSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2617
              name: 'VerticalPanel1'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2618
              layout: (LayoutFrame 0 0.0 38 0 0 1.0 -80 1)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2619
              horizontalLayout: fit
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2620
              verticalLayout: topFit
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2621
              horizontalSpace: 3
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2622
              verticalSpace: 3
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2623
              component: 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2624
             (SpecCollection
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2625
                collection: (
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2626
                 (LabelSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2627
                    label: 'Files:'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2628
                    name: 'Label4'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2629
                    translateLabel: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2630
                    adjust: left
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2631
                    extent: (Point 563 23)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2632
                  )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2633
                 (TextEditorSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2634
                    name: 'TextEditor1'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2635
                    enableChannel: false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2636
                    model: filesHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2637
                    hasHorizontalScrollBar: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2638
                    hasVerticalScrollBar: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2639
                    hasKeyboardFocusInitially: false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2640
                    extent: (Point 563 146)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2641
                  )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2642
                 (LabelSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2643
                    label: 'Log Message:'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2644
                    name: 'Label5'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2645
                    translateLabel: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2646
                    adjust: left
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2647
                    extent: (Point 563 23)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2648
                  )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2649
                 (TextEditorSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2650
                    name: 'TextEditor2'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2651
                    model: logMessageHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2652
                    hasHorizontalScrollBar: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2653
                    hasVerticalScrollBar: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2654
                    hasKeyboardFocusInitially: false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2655
                    extent: (Point 563 242)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2656
                  )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2657
                 )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2658
               
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2659
              )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2660
            )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2661
           (CheckBoxSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2662
              label: 'Mark as Stable'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2663
              name: 'MarkStableCheckBox'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2664
              layout: (LayoutFrame 3 0 -68 1 -3 1 -46 1)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2665
              model: isStableHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2666
              translateLabel: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2667
            )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2668
           (LabelSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2669
              label: 'Tag:'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2670
              name: 'Label3'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2671
              layout: (LayoutFrame -40 0.5 -67 1 0 0.5 -45 1)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2672
              translateLabel: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2673
              adjust: right
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2674
            )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2675
           (InputFieldSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2676
              name: 'TagEntryField'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2677
              layout: (LayoutFrame 0 0.5 -68 1 -3 1 -46 1)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2678
              enableChannel: tagItInHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2679
              model: tagHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2680
              acceptOnReturn: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2681
              acceptOnTab: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2682
              acceptOnLostFocus: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2683
              acceptOnPointerLeave: false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2684
            )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2685
           (HorizontalPanelViewSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2686
              name: 'ButtonPanel1'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2687
              layout: (LayoutFrame 0 0.0 -40 1 0 1.0 0 1.0)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2688
              horizontalLayout: fitSpace
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2689
              verticalLayout: center
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2690
              horizontalSpace: 3
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2691
              verticalSpace: 2
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2692
              reverseOrderIfOKAtLeft: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2693
              component: 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2694
             (SpecCollection
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2695
                collection: (
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2696
                 (ActionButtonSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2697
                    label: 'Cancel'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2698
                    name: 'Button2'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2699
                    translateLabel: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2700
                    model: doCancel
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2701
                    extent: (Point 277 22)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2702
                  )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2703
                 (ActionButtonSpec
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2704
                    label: 'OK'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2705
                    name: 'Button1'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2706
                    translateLabel: true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2707
                    model: doAccept
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2708
                    extent: (Point 277 22)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2709
                  )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2710
                 )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2711
               
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2712
              )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2713
            )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2714
           )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2715
         
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2716
        )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2717
      )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2718
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2719
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2720
!PerforceSourceCodeManager::SubmitInfoDialog class methodsFor:'opening'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2721
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2722
getCheckinInfoFor:aClassNameOrPackageNameString initialAnswer:initialAnswer withFileList:fileList
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2723
    |dialog warnMessage|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2724
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2725
    warnMessage := nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2726
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2727
    [
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2728
        dialog := self new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2729
        dialog 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2730
            description:aClassNameOrPackageNameString; 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2731
            logMessage:initialAnswer;
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2732
            files:fileList.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2733
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2734
        dialog warningMessageHolder value:warnMessage.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2735
        dialog open.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2736
        dialog accepted ifFalse:[ ^ nil ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2737
    ] doUntil:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2738
        |stopAsking|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2739
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2740
        stopAsking := dialog allowEmptyLogMessage 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2741
                      or:[ dialog logMessage withoutSeparators notEmptyOrNil ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2742
        stopAsking ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2743
            warnMessage := (self resources string:'Please enter a description of your changes!!') 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2744
                                asText 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2745
                                    colorizeAllWith:Color red.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2746
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2747
        stopAsking
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2748
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2749
    ^ dialog    
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2750
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2751
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2752
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2753
     self getCheckinInfoFor:'hello' initialAnswer:'bla'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2754
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2755
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2756
    "Modified: / 06-07-2010 / 11:40:00 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2757
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2758
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2759
getCheckinInfoFor:aClassNameOrPackageNameString initialAnswer:initialAnswer withQuickOption:withQuickOption
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2760
    |dialog warnMessage|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2761
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2762
    warnMessage := nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2763
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2764
    [
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2765
        dialog := self new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2766
        dialog 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2767
            description:aClassNameOrPackageNameString; 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2768
            logMessage:initialAnswer;
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2769
            withQuickOption:withQuickOption.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2770
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2771
        dialog warningMessageHolder value:warnMessage.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2772
        dialog open.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2773
        dialog accepted ifFalse:[ ^ nil ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2774
    ] doUntil:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2775
        |stopAsking|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2776
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2777
        stopAsking := dialog allowEmptyLogMessage 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2778
                      or:[ dialog logMessage withoutSeparators notEmptyOrNil ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2779
        stopAsking ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2780
            warnMessage := (self resources string:'Please enter a description of your changes!!') 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2781
                                asText 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2782
                                    colorizeAllWith:Color red.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2783
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2784
        stopAsking
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2785
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2786
    ^ dialog    
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2787
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2788
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2789
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2790
     self getCheckinInfoFor:'hello' initialAnswer:'bla'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2791
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2792
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2793
    "Modified: / 06-07-2010 / 11:40:00 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2794
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2795
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2796
!PerforceSourceCodeManager::SubmitInfoDialog methodsFor:'accessing'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2797
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2798
allowEmptyLogMessage
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2799
    ^ allowEmptyLogMessage ? false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2800
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2801
    "Created: / 06-07-2010 / 11:23:18 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2802
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2803
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2804
allowEmptyLogMessage:aBoolean 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2805
    allowEmptyLogMessage := aBoolean
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2806
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2807
    "Created: / 06-07-2010 / 11:23:31 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2808
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2809
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2810
description
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2811
    ^ self descriptionHolder value
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2812
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2813
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2814
description:aString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2815
    self descriptionHolder value:aString allBold
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2816
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2817
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2818
files
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2819
    ^ self filesHolder value
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2820
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2821
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2822
files:aString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2823
    self filesHolder value:aString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2824
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2825
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2826
isStable
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2827
    ^ self isStableHolder value
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2828
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2829
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2830
isStable:aBoolean
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2831
    self isStableHolder value:aBoolean
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2832
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2833
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2834
logMessage
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2835
    ^ self logMessageHolder value
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2836
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2837
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2838
logMessage:aString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2839
    self logMessageHolder value:aString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2840
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2841
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2842
quickCheckIn
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2843
    ^ self quickCheckInHolder value
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2844
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2845
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2846
quickCheckIn:aBoolean
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2847
    self quickCheckInHolder value:aBoolean
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2848
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2849
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2850
tag
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2851
    ^ self tagHolder value withoutSeparators
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2852
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2853
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2854
tag:aStringOrNil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2855
    self tagHolder value:aStringOrNil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2856
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2857
    "Modified: / 12-09-2006 / 12:03:50 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2858
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2859
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2860
tagIt
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2861
    ^ self tag notEmptyOrNil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2862
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2863
    "Created: / 12-09-2006 / 13:06:49 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2864
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2865
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2866
withQuickOption:aBoolean
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2867
    ^ self quickCheckInVisibleHolder value:aBoolean
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2868
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2869
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2870
!PerforceSourceCodeManager::SubmitInfoDialog methodsFor:'aspects'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2871
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2872
descriptionHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2873
    descriptionHolder isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2874
        descriptionHolder := ValueHolder new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2875
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2876
    ^ descriptionHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2877
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2878
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2879
filesHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2880
    <resource: #uiAspect>
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2881
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2882
    "automatically generated by UIPainter ..."
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2883
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2884
    "*** the code below creates a default model when invoked."
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2885
    "*** (which may not be the one you wanted)"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2886
    "*** Please change as required and accept it in the browser."
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2887
    "*** (and replace this comment by something more useful ;-)"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2888
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2889
    filesHolder isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2890
        filesHolder := '' asValue.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2891
"/ if your app needs to be notified of changes, uncomment one of the lines below:
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2892
"/       filesHolder addDependent:self.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2893
"/       filesHolder onChangeSend:#filesHolderChanged to:self.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2894
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2895
    ^ filesHolder.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2896
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2897
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2898
isStableHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2899
    isStableHolder isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2900
        isStableHolder := false asValue.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2901
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2902
    ^ isStableHolder.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2903
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2904
    "Modified: / 16-01-2007 / 16:00:26 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2905
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2906
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2907
logMessageHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2908
    logMessageHolder isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2909
        logMessageHolder := LastSourceLogMessage asValue.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2910
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2911
    ^ logMessageHolder.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2912
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2913
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2914
quickCheckInHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2915
    quickCheckInHolder isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2916
        quickCheckInHolder := true asValue.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2917
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2918
    ^ quickCheckInHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2919
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2920
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2921
quickCheckInVisibleHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2922
    quickCheckInVisibleHolder isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2923
        quickCheckInVisibleHolder := false asValue.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2924
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2925
    ^ quickCheckInVisibleHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2926
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2927
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2928
tagHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2929
    tagHolder isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2930
        tagHolder := '' asValue.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2931
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2932
    ^ tagHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2933
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2934
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2935
tagItInHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2936
    <resource: #uiAspect>
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2937
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2938
    "automatically generated by UIPainter ..."
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2939
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2940
    "*** the code below creates a default model when invoked."
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2941
    "*** (which may not be the one you wanted)"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2942
    "*** Please change as required and accept it in the browser."
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2943
    "*** (and replace this comment by something more useful ;-)"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2944
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2945
    tagItInHolder isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2946
        tagItInHolder := true asValue.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2947
"/ if your app needs to be notified of changes, uncomment one of the lines below:
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2948
"/       tagItInHolder addDependent:self.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2949
"/       tagItInHolder onChangeSend:#tagItInHolderChanged to:self.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2950
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2951
    ^ tagItInHolder.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2952
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2953
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2954
warningMessageHolder
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2955
    warningMessageHolder isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2956
        warningMessageHolder := nil asValue.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2957
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2958
    ^ warningMessageHolder.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2959
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2960
    "Created: / 06-07-2010 / 11:30:29 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2961
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2962
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2963
!PerforceSourceCodeManager::WorkSpace class methodsFor:'instance creation'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2964
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2965
newWorkSpaceFor:aSettingsString  
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2966
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2967
        get the workspace definition from perforce client command output
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2968
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2969
    
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2970
    |workSpace|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2971
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2972
    aSettingsString isEmptyOrNil ifTrue:[ ^nil].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2973
    workSpace := self new initialize.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2974
    ^ workSpace newWorkSpaceFor:aSettingsString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2975
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2976
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2977
newWorkSpaceForSettings:settingsDict
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2978
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2979
        get the workspace definition from perforce client command output"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2980
    
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2981
    |workSpace|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2982
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2983
    workSpace := self new initialize.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2984
    ^ workSpace newWorkSpaceForSettings:settingsDict
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2985
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2986
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2987
!PerforceSourceCodeManager::WorkSpace methodsFor:'accessing'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2988
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2989
client
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2990
    ^ client
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2991
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2992
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2993
client:something
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2994
    client := something.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2995
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2996
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2997
host
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2998
    ^ host
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  2999
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3000
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3001
host:something
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3002
    host := something.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3003
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3004
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3005
owner
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3006
    ^ owner
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3007
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3008
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3009
owner:something
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3010
    owner := something.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3011
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3012
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3013
perforceSettings
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3014
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3015
    perforceSettings isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3016
        perforceSettings := Dictionary new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3017
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3018
    ^ perforceSettings
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3019
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3020
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3021
perforceSettings:something
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3022
    perforceSettings := something.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3023
    self owner:(perforceSettings at:#user ifAbsent:nil).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3024
    self client:(perforceSettings at:#client ifAbsent:nil).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3025
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3026
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3027
root
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3028
    ^ root
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3029
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3030
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3031
root:something
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3032
    root := something.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3033
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3034
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3035
tempDirectory
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3036
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3037
    tempDirectory isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3038
        tempDirectory := PerforceSourceCodeManager createTempDirectory:nil forModule:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3039
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3040
    ^ tempDirectory
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3041
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3042
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3043
temporaryWorkSpace
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3044
    ^ temporaryWorkSpace
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3045
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3046
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3047
views
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3048
    views isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3049
        views := OrderedCollection new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3050
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3051
    ^ views
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3052
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3053
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3054
!PerforceSourceCodeManager::WorkSpace methodsFor:'actions'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3055
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3056
addCheckIn:checkInDefinition submit:doSubmit
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3057
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3058
    | packagePath fullFilename s perforceCommand outputStream errorStream result tmpFilename binRevision newRevisionString number|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3059
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3060
    " create container for class initial check in"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3061
    checkInDefinition isClassCheckin ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3062
        binRevision := checkInDefinition getBinaryRevisionNumber.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3063
        (binRevision notNil and:[binRevision ~= 0]) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3064
            (Dialog confirm:('Someone seems to have removed the source container for ',checkInDefinition definitionObjectString,'\\Force new checkin ?') withCRs) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3065
                checkInDefinition definitionClass setBinaryRevision:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3066
            ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3067
                ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3068
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3069
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3070
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3071
    "initial checkin here"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3072
    self activityNotification:'adding ' , checkInDefinition definitionObjectString , ' to perforce repository...'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3073
    self getTemporaryWorkspaceFor:checkInDefinition.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3074
    self temporaryWorkSpace isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3075
        self perforceError raiseErrorString:('Error getting temporary workspace when adding ', checkInDefinition definitionObjectString, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3076
        ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3077
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3078
    number := self getChangeListNumber.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3079
    number isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3080
        self perforceError raiseErrorString:('Error when getting a change list for ', checkInDefinition definitionObjectString, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3081
        ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3082
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3083
    packagePath := Smalltalk packageDirectoryForPackageId:checkInDefinition package.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3084
    fullFilename := (packagePath construct:checkInDefinition packageDir) construct:checkInDefinition fileName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3085
    tmpFilename := self getTemporaryFilenameFor:fullFilename pathName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3086
    tmpFilename directory recursiveMakeDirectory.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3087
    s := tmpFilename writeStream.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3088
    checkInDefinition isClassCheckin ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3089
        newRevisionString := self initialRevisionStringFor:checkInDefinition.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3090
        PerforceSourceCodeManager updateVersionMethod:(PerforceSourceCodeManager nameOfVersionMethodInClasses) 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3091
            of:checkInDefinition definitionClass 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3092
            for:newRevisionString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3093
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3094
    checkInDefinition isClassCheckin ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3095
        PerforceSourceCodeManager fileOutSourceCodeOf:checkInDefinition definitionClass on:s.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3096
    ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3097
        s nextPutAll:checkInDefinition fileContents.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3098
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3099
    s close.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3100
    perforceCommand := ('add  -t +ko -c ' , number printString, ' "', tmpFilename pathName, '"').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3101
    outputStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3102
    errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3103
    result := self temporaryWorkSpace executePerforceCommand:perforceCommand inDirectory:self temporaryWorkSpace root 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3104
        inputFrom:nil outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3105
        errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3106
        logHeader:('adding ', checkInDefinition definitionObjectString, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3107
    result ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3108
        checkInDefinition isClassCheckin ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3109
            Class withoutUpdatingChangesDo:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3110
                checkInDefinition definitionClass class removeSelector:PerforceSourceCodeManager nameOfVersionMethodInClasses    
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3111
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3112
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3113
        ^ false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3114
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3115
    result := self changeChangeDescriptionTo:checkInDefinition logMessage asStringCollection changeNumber:number printString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3116
    doSubmit ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3117
        result := self submitChangeNumber:number printString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3118
        checkInDefinition isClassCheckin ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3119
            " checkout in real workspace "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3120
            perforceCommand := ('sync ' , number printString, ' "', fullFilename pathName, '"').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3121
            outputStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3122
            errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3123
            result := self executePerforceCommand:perforceCommand inDirectory:self temporaryWorkSpace root 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3124
                inputFrom:nil outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3125
                errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3126
                logHeader:('sync in my workspace ', checkInDefinition definitionObjectString, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3127
            result ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3128
                ^ false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3129
            ].        
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3130
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3131
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3132
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3133
    self activityNotification:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3134
    ^result
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3135
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3136
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3137
askForMergedSource:mergedSource 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3138
    localSource:mySource 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3139
    changesDict:changesDict 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3140
    haveRevision:haveRevision 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3141
    changesAsLogged:changesAsLogged 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3142
    pathName:pathName
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3143
    definitionClass:definitionClass
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3144
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3145
    |msg answer checkInRepaired emphasizedText emSep diffTextComment didAccept editor repairedText resultSource|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3146
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3147
    (changesDict notNil and:[(changesDict at:#conflicting) > 0]) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3148
        "ooops must resolve conflicts"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3149
        msg := self messageForConflictsInClass:definitionClass revision:haveRevision.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3150
        answer := self checkinTroubleDialog:'Version conflict'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3151
             message:msg
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3152
             log:changesAsLogged
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3153
             abortable:false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3154
             option:'show conflicts'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3155
             option2:'resolve conflicts'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3156
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3157
        answer == #option ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3158
            "/
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3159
            "/ show conflicts in a 3-way DiffTextView ...
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3160
            "/
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3161
            Diff3TextView
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3162
                openOnMergedText:mergedSource
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3163
                label:'your version (checkin attempt)'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3164
                label:'original (base version)'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3165
                label:'newest repository version'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3166
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3167
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3168
        checkInRepaired := false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3169
        answer == #option2 ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3170
            "/
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3171
            "/ allow checkin of repair version
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3172
            "/ this is error prone ...
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3173
            "/
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3174
            "/
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3175
            "/ show merged version in an editor ...
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3176
            "/ ... accept will check it in.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3177
            "/
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3178
            emphasizedText := mergedSource asStringCollection.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3179
            emSep := (Array with:(#color->Color black)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3180
                         with:(#backgroundColor->Color green)).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3181
            emphasizedText := Diff3TextView
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3182
                        emphasizeMergedDiff3TextPerorce:emphasizedText
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3183
                        origEmphasize:(Array with:(#color->Color black)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3184
                                          with:(#backgroundColor->Color yellow))
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3185
                        otherEmphasize:(Array with:(#color->Color white)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3186
                                          with:(#backgroundColor->Color red))
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3187
                        yourEmphasize:(Array with:(#color->Color white)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3188
                                          with:(#backgroundColor->Color red))
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3189
                        separatorEmphasize:emSep.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3190
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3191
            diffTextComment := self diffTextComment.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3192
            diffTextComment := (Text string:diffTextComment emphasis:emSep) asStringCollection.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3193
            emphasizedText := diffTextComment , emphasizedText.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3194
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3195
            didAccept := false. checkInRepaired := true.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3196
            [didAccept not and:[checkInRepaired]] whileTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3197
                editor := RCSConflictEditTextView
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3198
                            setupWith:emphasizedText
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3199
                            title:'Resolve conflicts in ' , pathName asFilename baseName , ', then accept & close to checkin'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3200
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3201
                editor acceptAction:[:dummy |
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3202
                    repairedText := editor list.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3203
                    didAccept := true.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3204
                ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3205
                didAccept := false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3206
                editor topView openModal.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3207
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3208
                didAccept ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3209
                    (Dialog confirm:'You did not accept the new text. Edit again ?')
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3210
                    ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3211
                        checkInRepaired := false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3212
                    ]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3213
                ] ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3214
                    "/ check if all green-stuff (separators) have been removed
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3215
                    (repairedText findFirst:[:line | line notNil and:[line notEmpty and:[(line emphasisAt:1) = emSep]]]) ~~ 0 ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3216
                        self warn:'You have to look at ALL conflicts, and remove ALL green lines as a confirmation !!'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3217
                        didAccept := false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3218
                    ]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3219
                ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3220
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3221
            resultSource := repairedText asString string.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3222
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3223
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3224
        checkInRepaired ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3225
            Transcript showCR:'checking in ' , pathName asFilename baseName , ' (manually repaired version) ...'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3226
        ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3227
            'PerforceSourceCodeManager [warning]: cannot (for now) checkin; conflicts found' infoPrintCR.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3228
            Transcript showCR:'checkin of ' , pathName asFilename baseName , ' aborted (conflicting changes; repository unchanged)'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3229
            ^ nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3230
        ]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3231
    ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3232
        mySource = mergedSource ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3233
            msg := self messageForNoChangesInClass:definitionClass.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3234
            self checkinTroubleDialog:'Merging versions'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3235
                           message:msg
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3236
                           log:changesAsLogged
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3237
                           abortable:false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3238
                           option:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3239
        ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3240
            msg := self messageForChangesInClass:definitionClass revision:haveRevision.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3241
            answer := self checkinTroubleDialog:'Merging versions'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3242
                           message:msg
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3243
                           log:changesAsLogged
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3244
                           abortable:true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3245
                           option:'Stop - see first'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3246
            answer ~~ true ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3247
                answer == #option ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3248
                    DiffCodeView
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3249
                        openOn:mySource
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3250
                        label:'current version'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3251
                        and:mergedSource
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3252
                        label:'merged version'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3253
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3254
                ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3255
                Transcript showCR:'checkin aborted - (no merge; repository unchanged)'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3256
                ^ nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3257
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3258
            resultSource := mergedSource.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3259
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3260
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3261
    ^ resultSource
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3262
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3263
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3264
changeChangeDescriptionTo:logLines changeNumber:changeNumber
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3265
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3266
    |perforceCommand outputStream errorStream changeListFile result changeFileContents changeListFileStream firstIndex oldLogFileLines writeNextLine newLogFileLines currentTokenLineParts currentToken|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3267
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3268
    perforceCommand := 'change -o ', (changeNumber ? '').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3269
    outputStream := ReadWriteStream on:''.                                       
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3270
    errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3271
    result := self temporaryWorkSpace executePerforceCommand:perforceCommand
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3272
                        inDirectory:self tempDirectory
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3273
                        inputFrom:nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3274
                        outputTo:outputStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3275
                        errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3276
                        logHeader:('get change desription for change ', changeNumber printString, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3277
    result ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3278
        ^ false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3279
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3280
    changeFileContents := outputStream contents.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3281
    changeFileContents isEmptyOrNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3282
        ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3283
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3284
    changeListFile := self tempDirectory construct:'change'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3285
    changeListFileStream := changeListFile writeStream.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3286
    changeFileContents := changeFileContents asStringCollection.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3287
    firstIndex := changeFileContents indexOfLineStartingWith:'Description:'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3288
    firstIndex == 0 ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3289
        ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3290
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3291
    oldLogFileLines := StringCollection new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3292
    changeFileContents from:firstIndex do:[:aLine|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3293
        ((aLine size > 1) and:[aLine first ~= $# and:[aLine first isSeparator not]]) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3294
            currentTokenLineParts := aLine asCollectionOfSubstringsSeparatedBy:$:.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3295
            currentTokenLineParts size > 1 ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3296
                currentToken := currentTokenLineParts first.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3297
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3298
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3299
        ((aLine size > 1) and:[aLine first isSeparator and:[currentToken = 'Description']]) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3300
            oldLogFileLines add:(aLine copyFrom:2).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3301
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3302
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3303
    newLogFileLines := StringCollection new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3304
    changeNumber isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3305
        newLogFileLines := logLines.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3306
    ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3307
        (oldLogFileLines asString includesString:logLines asString) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3308
            newLogFileLines := oldLogFileLines.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3309
        ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3310
            newLogFileLines := oldLogFileLines.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3311
            newLogFileLines addAll:logLines
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3312
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3313
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3314
    writeNextLine := true.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3315
    changeFileContents do:[:aLine|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3316
        writeNextLine ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3317
            (aLine notEmpty and:[aLine first isSeparator not]) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3318
                writeNextLine := true.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3319
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3320
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3321
        writeNextLine ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3322
            (aLine startsWith:'Description:') ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3323
                changeListFileStream nextPutLine:aLine.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3324
                newLogFileLines do:[:logLine|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3325
                    changeListFileStream nextPut:Character tab.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3326
                    changeListFileStream nextPutLine:logLine.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3327
                ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3328
                writeNextLine := false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3329
            ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3330
                changeListFileStream nextPutLine:aLine
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3331
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3332
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3333
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3334
    changeListFileStream close.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3335
    perforceCommand := ('change -i < "', changeListFile pathName, '"').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3336
    outputStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3337
    errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3338
    result := self temporaryWorkSpace executePerforceCommand:perforceCommand
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3339
                        inDirectory:self tempDirectory
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3340
                        inputFrom:nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3341
                        outputTo:outputStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3342
                        errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3343
                        logHeader:('write change desription for change ', changeNumber printString, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3344
    result ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3345
        ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3346
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3347
    ^ true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3348
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3349
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3350
checkForExistingContainer:checkInDefinition
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3351
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3352
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3353
    |perforceCommand outputStream errorStream result packagePath fullFilename depotPath|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3354
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3355
    packagePath := Smalltalk packageDirectoryForPackageId:checkInDefinition package.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3356
    fullFilename := packagePath construct:checkInDefinition packageDir.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3357
    depotPath := self getDepotPathForLocalPath:fullFilename pathName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3358
    perforceCommand := ('dirs "' ,depotPath , '"').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3359
    outputStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3360
    errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3361
    result := self temporaryWorkSpace executePerforceCommand:perforceCommand inDirectory:self temporaryWorkSpace root 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3362
        inputFrom:nil outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3363
        errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3364
        logHeader:('dirs in checkForExistingContainer for ', depotPath, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3365
    result ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3366
        ^ false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3367
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3368
    errorStream contents notEmpty ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3369
        ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3370
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3371
    ^ true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3372
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3373
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3374
checkIn:checkInDefinition submit:doSubmit
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3375
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3376
    | packagePath fullFilename s perforceCommand outputStream errorStream result tmpFilename fileNameAndRev tmpFilenameAndRev 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3377
      haveChange nextVersionMethod diffOutput number baseRevision cls newestInRepository newVersionString openChangeNumber|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3378
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3379
    self activityNotification:'checkin ' , checkInDefinition definitionObjectString , ' to perforce repository...'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3380
    [                                 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3381
        cls := checkInDefinition definitionClass.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3382
        self getTemporaryWorkspaceFor:checkInDefinition.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3383
        self temporaryWorkSpace isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3384
            self perforceError raiseErrorString:('Error getting temporary workspace when check in ', checkInDefinition definitionObjectString, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3385
            ^false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3386
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3387
        baseRevision := checkInDefinition getLocalRevisionNumber.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3388
        newestInRepository := checkInDefinition getReposRevisionNumberBeforeCheckin.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3389
        baseRevision isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3390
            self perforceError raiseErrorString:('No local revision for ', checkInDefinition definitionObjectString,' - should not happen here.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3391
            ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3392
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3393
        packagePath := Smalltalk packageDirectoryForPackageId:checkInDefinition package.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3394
        fullFilename := (packagePath construct:checkInDefinition packageDir) construct:checkInDefinition fileName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3395
        tmpFilename := self getTemporaryFilenameFor:fullFilename pathName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3396
        tmpFilename directory recursiveMakeDirectory.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3397
        checkInDefinition isClassCheckin ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3398
            baseRevision > newestInRepository ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3399
                openChangeNumber := self getOpenChangeFor:checkInDefinition.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3400
                openChangeNumber isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3401
                    (Dialog confirm:('The version-info of ',checkInDefinition definitionObjectString allBold,' is wrong \(The class version (',baseRevision printString allBold,') is newer than the newest version in the repository (',newestInRepository printString allBold,').\\Patch the version and checkin ?') withCRs)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3402
                    ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3403
                        newVersionString := self updatedRevisionStringOf:cls 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3404
                                                    forRevision:newestInRepository printString with:(cls revisionStringOfManager:self).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3405
                        PerforceSourceCodeManager updateVersionMethod:(PerforceSourceCodeManager nameOfVersionMethodInClasses) 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3406
                            of:cls 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3407
                            for:newVersionString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3408
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3409
                        cls updateVersionMethodFor:newVersionString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3410
                    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3411
                ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3412
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3413
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3414
        fileNameAndRev := checkInDefinition fileName, '#', baseRevision printString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3415
        tmpFilenameAndRev := tmpFilename directory construct:fileNameAndRev.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3416
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3417
        openChangeNumber notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3418
            s := tmpFilename writeStream.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3419
            checkInDefinition isClassCheckin ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3420
                PerforceSourceCodeManager fileOutSourceCodeOf:cls on:s.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3421
            ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3422
                self halt.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3423
                s nextPutAll:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3424
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3425
            s close.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3426
            self changeChangeDescriptionTo:checkInDefinition logMessage asStringCollection changeNumber:openChangeNumber printString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3427
            doSubmit ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3428
                self submitChangeNumber:openChangeNumber printString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3429
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3430
            ^true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3431
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3432
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3433
        perforceCommand := ('sync "' , tmpFilenameAndRev pathName, '"').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3434
        outputStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3435
        errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3436
        result := self temporaryWorkSpace executePerforceCommand:perforceCommand inDirectory:self temporaryWorkSpace root 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3437
            inputFrom:nil outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3438
            errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3439
            logHeader:('sync ', checkInDefinition definitionObjectString, ' to revision ', baseRevision printString, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3440
        result ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3441
            ^ false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3442
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3443
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3444
        number := self getChangeListNumber.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3445
        number isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3446
            self perforceError raiseErrorString:('Error when getting a change list for ', checkInDefinition definitionObjectString, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3447
            ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3448
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3449
        perforceCommand := ('edit -c ' ,number printString, ' "', tmpFilename pathName, '"').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3450
        outputStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3451
        errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3452
        result := self temporaryWorkSpace executePerforceCommand:perforceCommand inDirectory:self temporaryWorkSpace root 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3453
            inputFrom:nil outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3454
            errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3455
            logHeader:('edit ', checkInDefinition definitionObjectString, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3456
        result ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3457
            ^ false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3458
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3459
        s := tmpFilename writeStream.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3460
        checkInDefinition isClassCheckin ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3461
            PerforceSourceCodeManager fileOutSourceCodeOf:cls on:s.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3462
        ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3463
            self halt.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3464
            s nextPutAll:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3465
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3466
        s close.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3467
        perforceCommand := ('diff -db -dw -dl "' , tmpFilename pathName, '"').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3468
        outputStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3469
        errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3470
        result := self temporaryWorkSpace executePerforceCommand:perforceCommand inDirectory:self temporaryWorkSpace root 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3471
            inputFrom:nil outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3472
            errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3473
            logHeader:('diff ', checkInDefinition definitionObjectString, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3474
        diffOutput := outputStream contents asStringCollection.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3475
        haveChange := diffOutput isEmptyOrNil or:[diffOutput notEmptyOrNil and:[diffOutput size > 1]].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3476
        haveChange ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3477
            self information:checkInDefinition definitionObjectString, ' not changed for revision ', baseRevision printString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3478
            perforceCommand := ('revert "' , tmpFilename pathName, '"').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3479
            outputStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3480
            errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3481
            result := self temporaryWorkSpace executePerforceCommand:perforceCommand inDirectory:self temporaryWorkSpace root 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3482
                inputFrom:nil outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3483
                errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3484
                logHeader:('revert ', checkInDefinition definitionObjectString, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3485
            ^true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3486
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3487
        checkInDefinition isClassCheckin ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3488
            nextVersionMethod := self nextRevisionStringFor:checkInDefinition.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3489
            nextVersionMethod isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3490
                self perforceError raiseErrorString:('Cant get next version method string for ', checkInDefinition definitionObjectString, ' revision ', baseRevision printString, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3491
                ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3492
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3493
            PerforceSourceCodeManager updateVersionMethod:(PerforceSourceCodeManager nameOfVersionMethodInClasses) 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3494
                    of:cls 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3495
                    for:nextVersionMethod.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3496
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3497
        result := self changeChangeDescriptionTo:checkInDefinition logMessage asStringCollection changeNumber:number printString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3498
        doSubmit ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3499
            result := self submitChangeNumber:number printString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3500
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3501
    ] ensure:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3502
        self activityNotification:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3503
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3504
    ^result
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3505
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3506
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3507
createChange
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3508
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3509
    ^self changeChangeDescriptionTo:('' asStringCollection) changeNumber:nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3510
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3511
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3512
createWorkSpaceClientSpecFor:checkInDefinition
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3513
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3514
    |ws myView|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3515
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3516
    ws := WriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3517
    ws nextPutAll:'Client: '.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3518
    ws nextPutAll:(self client).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3519
    ws cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3520
    ws nextPutAll:'Owner: '.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3521
    ws nextPutAll:(self owner).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3522
    ws cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3523
    ws nextPutAll:'Host: '.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3524
    ws nextPutAll:(self host).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3525
    ws cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3526
    ws nextPutAll:'Description: '.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3527
    ws nextPutAll:'Used temporary for Smalltalk/X'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3528
    ws cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3529
    ws nextPutAll:'Root: '.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3530
    ws nextPutAll:(self root asFilename pathName).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3531
    ws cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3532
    ws nextPutAll:'Options: '.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3533
    ws nextPutAll:'allwrite noclobber nocompress unlocked nomodtime normdir'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3534
    ws cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3535
    ws nextPutAll:'SubmitOptions: '.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3536
    ws nextPutAll:'submitunchanged'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3537
    ws cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3538
    ws nextPutAll:'LineEnd: '.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3539
    ws nextPutAll:'local'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3540
    ws cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3541
    ws nextPutAll:'View: '.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3542
    myView := checkInDefinition workSpace getViewForPackage:checkInDefinition package.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3543
    ws nextPutAll:myView depot.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3544
    ws space.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3545
    ws nextPutAll:'//', self client, '/...'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3546
    ws cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3547
    ws close.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3548
    ^ws contents
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3549
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3550
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3551
delete:checkInDefinition submit:doSubmit
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3552
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3553
    | packagePath fullFilename perforceCommand outputStream errorStream result tmpFilename number newestInRepository|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3554
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3555
    self activityNotification:'delete ' , checkInDefinition definitionObjectString , ' from perforce repository...'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3556
    [
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3557
        newestInRepository := checkInDefinition getReposRevisionNumberBeforeCheckin.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3558
        newestInRepository isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3559
            self information:(checkInDefinition definitionObjectString, ' not exists in repository.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3560
            ^true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3561
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3562
        self getTemporaryWorkspaceFor:checkInDefinition.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3563
        self temporaryWorkSpace isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3564
            self perforceError raiseErrorString:('Error getting temporary workspace when check in ', checkInDefinition definitionObjectString, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3565
            ^false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3566
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3567
        packagePath := Smalltalk packageDirectoryForPackageId:checkInDefinition package.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3568
        fullFilename := (packagePath construct:checkInDefinition packageDir) construct:checkInDefinition fileName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3569
        tmpFilename := self getTemporaryFilenameFor:fullFilename pathName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3570
        tmpFilename directory recursiveMakeDirectory.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3571
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3572
        number := self getChangeListNumber.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3573
        number isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3574
            self perforceError raiseErrorString:('Error when getting a change list for ', checkInDefinition definitionObjectString, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3575
            ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3576
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3577
        perforceCommand := ('delete -c ' ,number printString, ' "', tmpFilename pathName, '"').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3578
        outputStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3579
        errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3580
        result := self temporaryWorkSpace executePerforceCommand:perforceCommand inDirectory:self temporaryWorkSpace root 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3581
            inputFrom:nil outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3582
            errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3583
            logHeader:('Error delete ', checkInDefinition definitionObjectString, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3584
        result ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3585
            ^ false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3586
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3587
        result := self changeChangeDescriptionTo:checkInDefinition logMessage asStringCollection changeNumber:number printString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3588
        doSubmit ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3589
            result := self submitChangeNumber:number printString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3590
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3591
    ] ensure:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3592
        self activityNotification:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3593
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3594
    ^result
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3595
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3596
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3597
deleteWorkSpaceFromServer
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3598
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3599
    |perforceCommand outputStream errorStream result|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3600
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3601
    perforceCommand := ('client -df ', client).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3602
    outputStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3603
    errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3604
    result := self temporaryWorkSpace executePerforceCommand:perforceCommand inDirectory:self temporaryWorkSpace root 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3605
        inputFrom:nil outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3606
        errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3607
        logHeader:('delete client ', client).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3608
    result ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3609
        ^ false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3610
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3611
    ^true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3612
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3613
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3614
getChangeDespriptionInfoFor:changeNumber
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3615
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3616
    |valuePairs startLineIndex keyEndIndex changeContents cmd outputStream errorStream result keyValues beginLine endLine keyName keyValue|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3617
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3618
    valuePairs := OrderedCollection new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3619
    cmd := 'change -o ', (changeNumber ? '').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3620
    outputStream := ReadWriteStream on:''.                                       
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3621
    errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3622
    result := self temporaryWorkSpace executePerforceCommand:cmd
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3623
                        inDirectory:self tempDirectory
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3624
                        inputFrom:nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3625
                        outputTo:outputStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3626
                        errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3627
                        logHeader:('getting change description ', (changeNumber ? ''), '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3628
    result ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3629
        ^ nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3630
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3631
    changeContents := outputStream contents asStringCollection.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3632
    changeContents doWithIndex:[:aLine :index|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3633
        startLineIndex isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3634
            (aLine isEmpty or:[(aLine startsWith:$#) or:[aLine first isSeparator]]) ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3635
                keyEndIndex := aLine indexOf:$:.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3636
                keyEndIndex ~= 0 ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3637
                    startLineIndex := index.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3638
                    valuePairs add:(Array with:index with:nil with:(aLine copyTo:keyEndIndex - 1)).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3639
                ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3640
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3641
        ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3642
            (aLine isEmpty or:[aLine startsWith:$#]) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3643
                valuePairs last at:2 put:index.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3644
                startLineIndex := nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3645
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3646
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3647
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3648
    keyValues := Dictionary new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3649
    valuePairs do:[:each|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3650
        beginLine := each first.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3651
        endLine := each second.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3652
        keyName := each last.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3653
        (beginLine == (endLine - 1)) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3654
            keyValue := (changeContents at:beginLine) copyFrom:(keyName size + 2).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3655
            keyValue := (keyValue withoutLeadingSeparators withoutTrailingSeparators) asStringCollection.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3656
        ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3657
            keyValue := changeContents copyFrom:(beginLine + 1) to:(endLine - 1).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3658
            keyValue := keyValue collect:[:each | each withoutLeadingSeparators withoutTrailingSeparators].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3659
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3660
        keyValues at:keyName put:keyValue.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3661
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3662
    ^ keyValues.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3663
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3664
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3665
getChangeListNumber
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3666
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3667
    |numbers|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3668
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3669
    numbers := self getCurrentChangeListNumbers.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3670
    numbers notEmptyOrNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3671
        ^numbers first.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3672
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3673
    self createChange ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3674
        numbers := self getCurrentChangeListNumbers.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3675
        numbers notEmptyOrNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3676
            ^numbers first.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3677
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3678
        
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3679
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3680
    ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3681
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3682
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3683
getCurrentChangeListNumbers
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3684
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3685
    |perforceCommand outputStream errorStream result pendingChangesOutput words numbers number|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3686
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3687
    perforceCommand := 'changes -s pending -u ', owner.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3688
    outputStream := ReadWriteStream on:''.                                       
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3689
    errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3690
    result := self temporaryWorkSpace executePerforceCommand:perforceCommand
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3691
                        inDirectory:self tempDirectory
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3692
                        inputFrom:nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3693
                        outputTo:outputStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3694
                        errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3695
                        doLog:false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3696
    result ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3697
        ^ nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3698
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3699
    numbers := OrderedCollection new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3700
    pendingChangesOutput := outputStream contents asStringCollection.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3701
    pendingChangesOutput do:[:eachLine|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3702
        words := eachLine asCollectionOfWords.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3703
        words size > 1 ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3704
            number := Number readFrom:(ReadStream on:(words at:2)) onError:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3705
            numbers add:number.                              
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3706
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3707
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3708
    ^numbers
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3709
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3710
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3711
getFileStatForPathname:aPathname
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3712
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3713
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3714
    |perforceCommand outputStream errorStream result fileStatDict endOfKeywordIndex keyWord keyValue|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3715
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3716
    perforceCommand := ('fstat  "' , aPathname, '"').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3717
    outputStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3718
    errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3719
    result := self executePerforceCommand:perforceCommand inDirectory:self root 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3720
        inputFrom:nil outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3721
        errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3722
        logHeader:('getting file status from ', aPathname, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3723
    result ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3724
        ^ nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3725
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3726
    fileStatDict := Dictionary new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3727
    outputStream contents asStringCollection do:[:aLine|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3728
        endOfKeywordIndex := aLine indexOfSeparatorStartingAt:5.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3729
        keyWord := aLine copyFrom:5 to:(endOfKeywordIndex - 1).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3730
        keyValue := aLine copyFrom:endOfKeywordIndex + 1.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3731
        fileStatDict at:keyWord put:keyValue.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3732
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3733
    ^ fileStatDict
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3734
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3735
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3736
     | workSpace tempWorkSpace dict|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3737
    workSpace := PerforceSourceCodeManager getWorkSpaceForPackage:'applistx'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3738
    tempWorkSpace := workSpace temporaryWorkSpace.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3739
    dict := tempWorkSpace getFileStatForPathname:'C:\Dokumente und Einstellungen\gds2180\Lokale Einstellungen\Temp\stx_tmp\st6120368\applistx\util\libDataType\ActionLQualifier.st'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3740
    dict includesKey:'unresolved'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3741
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3742
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3743
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3744
getOpenChangeFor:checkInDefinition
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3745
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3746
    |numbers changeDescr files versionInfo|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3747
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3748
    numbers := self getCurrentChangeListNumbers.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3749
    numbers notEmptyOrNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3750
        numbers do:[:changeNumber|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3751
            changeDescr := self getChangeDespriptionInfoFor:changeNumber printString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3752
            files := changeDescr at:#Files ifAbsent:[nil].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3753
            files notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3754
                versionInfo := PerforceSourceCodeManager versionInfoClass fromRCSString:checkInDefinition getLocalRevisionString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3755
                files do:[:aFileAndAction|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3756
                    (aFileAndAction startsWith:versionInfo repositoryPathName) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3757
                        ^changeNumber
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3758
                    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3759
                ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3760
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3761
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3762
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3763
    ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3764
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3765
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3766
getTemporaryWorkspaceFor:checkInDefinition
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3767
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3768
        create an temporary workspace for handle checkin
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3769
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3770
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3771
    |workSpaceName workSpaceDefinitionFilename ws perforceCommand result readStream  directory 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3772
     settingsTemporary myView outputStream errorStream lineStream clientSpec index words|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3773
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3774
    directory := self tempDirectory.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3775
    workSpaceName := self temporaryClientName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3776
    perforceCommand := 'clients -u ' , (self perforceSettings at:#user).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3777
    outputStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3778
    errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3779
    result := self executePerforceCommand:perforceCommand
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3780
                        inDirectory:directory pathName
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3781
                        inputFrom:nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3782
                        outputTo:outputStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3783
                        errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3784
                        doLog:false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3785
                        logHeader:('check for existing workspace client.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3786
    result ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3787
        temporaryWorkSpace := nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3788
    ]. 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3789
    index := outputStream contents asStringCollection findFirst:[:aLine|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3790
        words := aLine asCollectionOfWords.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3791
        words size > 1 and:[words second = workSpaceName]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3792
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3793
    index = 0 ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3794
        temporaryWorkSpace := nil.   
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3795
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3796
    temporaryWorkSpace isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3797
        directory exists ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3798
            self perforceError raiseErrorString:('Perforce temporary workspace directory ', directory pathName, ' not exists.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3799
            ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3800
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3801
        settingsTemporary := self perforceSettings copy.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3802
        settingsTemporary at:#client put:workSpaceName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3803
        temporaryWorkSpace := self class newWorkSpaceForSettings:settingsTemporary.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3804
        temporaryWorkSpace root:directory asFilename pathName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3805
        temporaryWorkSpace host:self host.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3806
        myView := self getViewForPackage:checkInDefinition package.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3807
        lineStream := WriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3808
        lineStream nextPutAll:myView depot.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3809
        lineStream space.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3810
        lineStream nextPutAll:'//', workSpaceName, '/...'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3811
        temporaryWorkSpace views add:(View newFromLine:lineStream contents workspace:temporaryWorkSpace).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3812
        workSpaceDefinitionFilename := directory asFilename construct:workSpaceName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3813
        clientSpec := temporaryWorkSpace createWorkSpaceClientSpecFor:checkInDefinition.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3814
        ws := workSpaceDefinitionFilename writeStream.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3815
        ws nextPutAll:clientSpec.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3816
        ws close.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3817
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3818
        readStream := ReadStream on:clientSpec.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3819
        perforceCommand := 'client -i < "', workSpaceDefinitionFilename pathName, '"'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3820
        outputStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3821
        errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3822
        result := temporaryWorkSpace executePerforceCommand:perforceCommand
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3823
                            inDirectory:directory pathName
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3824
                            inputFrom:nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3825
                            outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3826
                            errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3827
                            doLog:false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3828
                            logHeader:('writing temporary workspace definition.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3829
        result ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3830
            temporaryWorkSpace := nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3831
        ]. 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3832
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3833
    ^temporaryWorkSpace
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3834
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3835
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3836
mergeOrResolveConflictsForChangeNumber:aNumber
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3837
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3838
    | tmpFilename perforceCommand outputStream errorStream result s 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3839
      changesAsLogged inStream line changesDict chunksPart words mergedSource mySource 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3840
      localRevision resultSource definitionClass descriptionInfo resolveFiles depotPath localPath checkInDefinition fileStatDict|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3841
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3842
    self temporaryWorkSpace isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3843
        ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3844
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3845
    descriptionInfo := (self getChangeDespriptionInfoFor:aNumber printString).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3846
    descriptionInfo isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3847
        ^false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3848
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3849
    resolveFiles := descriptionInfo at:#Files ifAbsent:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3850
    resolveFiles isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3851
        ^false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3852
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3853
    resolveFiles do:[:aFileLine|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3854
        depotPath := (aFileLine copyTo:((aFileLine lastIndexOf:$#) - 1 )) withoutTrailingSeparators.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3855
        localPath := self temporaryWorkSpace getLocalPathForDepotPath:depotPath.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3856
        fileStatDict := self temporaryWorkSpace getFileStatForPathname:localPath.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3857
        (fileStatDict includesKey:'unresolved') ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3858
            definitionClass := Smalltalk at:(localPath asFilename withoutSuffix baseName asSymbol) ifAbsent:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3859
            checkInDefinition := PerforceSourceCodeManager getCheckInDefinitionForClass:definitionClass.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3860
            localRevision := checkInDefinition getLocalRevisionNumber.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3861
            tmpFilename := localPath asFilename.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3862
            perforceCommand := ('resolve -af  "' , tmpFilename pathName, '"').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3863
            outputStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3864
            errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3865
            result := self temporaryWorkSpace executePerforceCommand:perforceCommand inDirectory:self temporaryWorkSpace root 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3866
                inputFrom:nil outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3867
                errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3868
                logHeader:('resolving ', tmpFilename pathName, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3869
            result ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3870
                ^ false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3871
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3872
            "check for conflicts"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3873
            changesAsLogged := StringCollection new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3874
            inStream := ReadStream on:(outputStream contents).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3875
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3876
            [inStream atEnd not] whileTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3877
                line:= inStream nextLine.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3878
                line notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3879
                    (line startsWith:'Diff chunks:') ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3880
                        changesAsLogged add:line.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3881
                        changesDict := Dictionary new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3882
                        chunksPart := line copyFrom:('Diff chunks:' size + 1).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3883
                        (chunksPart asCollectionOfSubstringsSeparatedBy:$+) do:[:eachElement|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3884
                            words := eachElement asCollectionOfWords.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3885
                            changesDict at:words second asSymbol put:words first asNumber.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3886
                        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3887
                    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3888
                ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3889
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3890
            s := WriteStream on:String new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3891
            PerforceSourceCodeManager fileOutSourceCodeOf:definitionClass on:s.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3892
            mergedSource := tmpFilename readStream contents asString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3893
            mySource := s contents asString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3894
            resultSource := self askForMergedSource:mergedSource 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3895
                    localSource:mySource 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3896
                    changesDict:changesDict 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3897
                    haveRevision:(fileStatDict at:'haveRev' ifAbsent:nil) 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3898
                    changesAsLogged:changesAsLogged 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3899
                    pathName:tmpFilename pathName
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3900
                    definitionClass:definitionClass.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3901
            resultSource isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3902
                ^false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3903
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3904
            "now we have a merge - lets get latest revision and write on it "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3905
            perforceCommand := ('revert "' , tmpFilename pathName, '"').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3906
            outputStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3907
            errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3908
            result := self temporaryWorkSpace executePerforceCommand:perforceCommand inDirectory:self temporaryWorkSpace root 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3909
                inputFrom:nil outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3910
                errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3911
                logHeader:('revert after resolving ', tmpFilename pathName, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3912
            result ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3913
                ^ false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3914
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3915
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3916
            tmpFilename remove.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3917
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3918
            perforceCommand := ('sync -f "' , tmpFilename pathName, '"').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3919
            outputStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3920
            errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3921
            result := self temporaryWorkSpace executePerforceCommand:perforceCommand inDirectory:self temporaryWorkSpace root 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3922
                inputFrom:nil outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3923
                errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3924
                logHeader:('sync after resolving ', tmpFilename pathName, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3925
            result ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3926
                ^ false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3927
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3928
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3929
            perforceCommand := ('edit -c ', aNumber printString, ' "' , tmpFilename pathName, '"').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3930
            outputStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3931
            errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3932
            result := self temporaryWorkSpace executePerforceCommand:perforceCommand inDirectory:self temporaryWorkSpace root 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3933
                inputFrom:nil outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3934
                errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3935
                logHeader:('edit after resolving ', tmpFilename pathName, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3936
            result ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3937
                ^ false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3938
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3939
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3940
            "write my result"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3941
            resultSource notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3942
                s := tmpFilename writeStream.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3943
                s nextPutAll:resultSource.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3944
                s close.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3945
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3946
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3947
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3948
    ^true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3949
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3950
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3951
releaseWorkSpace
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3952
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3953
    temporaryWorkSpace notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3954
        temporaryWorkSpace deleteWorkSpaceFromServer.   
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3955
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3956
    tempDirectory notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3957
        tempDirectory recursiveRemove.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3958
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3959
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3960
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3961
revisionLogOf:clsOrNil 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3962
fromRevision:firstRev 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3963
toRevision:lastRef 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3964
numberOfRevisions:numRevisions 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3965
fileName:classFileName 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3966
directory:packageDir 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3967
module:aPackage
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3968
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3969
    |atEnd line inHeaderInfo info record revisionRecords headerOnly msg revArg infoAndLogString elements 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3970
     foundView outputStream errorStream inStream packagePath fullFilename depotPath perforceCommand result labelLineElements tags label revision|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3971
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3972
    [
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3973
        revArg := ''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3974
        headerOnly := false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3975
        (firstRev notNil or:[lastRef notNil]) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3976
            (firstRev == 0 and:[lastRef == 0]) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3977
                headerOnly := true.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3978
            ]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3979
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3980
        foundView := self getViewForPackage:aPackage.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3981
        headerOnly ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3982
            msg := 'fetching revision info '
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3983
        ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3984
            msg := 'reading revision log '
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3985
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3986
        clsOrNil isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3987
            foundView notNil ifTrue:[            
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3988
                msg := msg , 'in ', foundView local.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3989
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3990
        ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3991
            msg := msg , 'of ', clsOrNil name.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3992
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3993
        self activityNotification:msg,'...'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3994
        packagePath := Smalltalk packageDirectoryForPackageId:aPackage.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3995
        fullFilename := (packagePath construct:packageDir) construct:classFileName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3996
        depotPath := foundView getDepotPathForLocalPath:fullFilename pathName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3997
        perforceCommand := ('filelog "' , depotPath, '"').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3998
        outputStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  3999
        errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4000
        result := self executePerforceCommand:perforceCommand inDirectory:self root 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4001
            inputFrom:nil outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4002
            errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4003
            logHeader:('getting filelog ', depotPath, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4004
        result ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4005
            ^ nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4006
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4007
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4008
        "/
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4009
        "/ read the commands pipe output and extract the container info
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4010
        "/
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4011
        info := IdentityDictionary new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4012
        inHeaderInfo := true.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4013
        revisionRecords := OrderedCollection new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4014
        info at:#revisions put:revisionRecords.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4015
        inStream := ReadStream on:(outputStream contents).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4016
        [inHeaderInfo and:[inStream atEnd not]] whileTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4017
            line:= inStream nextLine.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4018
            line notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4019
                |gotIt|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4020
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4021
                gotIt := false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4022
                infoAndLogString := line asCollectionOfSubstringsSeparatedBy:$'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4023
                elements := infoAndLogString size.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4024
                elements > 1 ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4025
                    record := self readRevisionLogEntryFromString:line.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4026
                    ((record at:#state ifAbsent:'') = 'delete') ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4027
                        info at:#newestRevision put:#deleted.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4028
                    ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4029
                        info at:#newestRevision put:(record at:#revision).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4030
                    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4031
                    info at:#numberOfRevisions put:((record at:#revision) asNumber).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4032
                    revisionRecords add:record.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4033
                    inHeaderInfo := false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4034
                ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4035
            ]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4036
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4037
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4038
        info isEmpty ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4039
            ('PerforceSourceCodeManager [warning]: no log for ', depotPath) errorPrintCR.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4040
            ^ nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4041
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4042
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4043
        "/ strip selected revisions from the total-revisions entry
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4044
        headerOnly ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4045
            "/
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4046
            "/ continue to read the commands pipe output
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4047
            "/ and extract revision info records
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4048
            "/
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4049
            atEnd := false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4050
            [atEnd or:[inStream atEnd]] whileFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4051
                record := self readRevisionLogEntryFromStream:inStream.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4052
                record isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4053
                    atEnd := true.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4054
                ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4055
                    revisionRecords add:record.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4056
                ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4057
                (numRevisions notNil and:[revisionRecords size >= numRevisions]) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4058
                    atEnd := true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4059
                ]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4060
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4061
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4062
    ] ensure:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4063
        outputStream notNil ifTrue:[outputStream close].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4064
        self activityNotification:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4065
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4066
    perforceCommand := ('labels "' , depotPath, '"').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4067
    outputStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4068
    errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4069
    result := self executePerforceCommand:perforceCommand inDirectory:self root 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4070
        inputFrom:nil outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4071
        errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4072
        logHeader:('getting labels ', depotPath, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4073
    result ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4074
        ^ nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4075
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4076
    inStream := ReadStream on:(outputStream contents).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4077
    tags := Dictionary new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4078
    [inStream atEnd not] whileTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4079
        line:= inStream nextLine.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4080
        line notEmptyOrNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4081
            labelLineElements := line asCollectionOfWords.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4082
            elements := labelLineElements size.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4083
            elements > 1 ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4084
                label := labelLineElements second withoutSeparators.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4085
                revision := self getRevisionForLabel:label depotPath:depotPath.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4086
                tags at:(labelLineElements second withoutSeparators) put:revision.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4087
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4088
        ]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4089
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4090
    info at:#symbolicNames put:tags.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4091
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4092
    ^ info
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4093
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4094
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4095
setSymbolicName:symbolicNameArg revision:rev overWrite:overWriteBool pathes:pathesInRepository
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4096
    "set a symbolicName for revision rev.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4097
     If rev is nil, set it for the head (most recent) revision.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4098
     If rev is 0, delete the symbolic name.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4099
     If overWriteBool is true, the symbolicName will be changed, even if it has already been set.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4100
     If overWriteBool is false, an error will be raised if symbolicName has already been set.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4101
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4102
     If filename is nil, the symbolicName for a whole package is set.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4103
     If multiple pathes are given, the revision MUST be nil."
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4104
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4105
    |argumentString result errorStream moduleDirs symbolicName perforceCommand outputStream|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4106
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4107
    symbolicName := (symbolicNameArg includes:Character space) 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4108
                        ifTrue:[ '"',symbolicNameArg,'"' ]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4109
                        ifFalse:[ symbolicNameArg ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4110
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4111
    pathesInRepository size > 1 ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4112
        self assert:(rev isNil or:[rev == 0]) "revision must be nil (for head) or 0 (for delete) with multiple pathes"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4113
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4114
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4115
    moduleDirs := pathesInRepository 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4116
                    collect:[:pathInRepository |
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4117
                        (pathInRepository asCollectionOfSubstringsSeparatedByAny:'/\') first.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4118
                    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4119
    moduleDirs do:[:moduleDir |
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4120
        |pathesInModule pathesInModuleAsArgument|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4121
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4122
        pathesInModule := pathesInRepository
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4123
                    select:[:pathInRepository |
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4124
                        |moduleOfThisPath|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4125
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4126
                        moduleOfThisPath := (pathInRepository asCollectionOfSubstringsSeparatedByAny:'/\') first.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4127
                        moduleOfThisPath = moduleDir
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4128
                    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4129
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4130
        rev = 0 ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4131
            argumentString := ' -d '.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4132
        ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4133
            argumentString := ' -r ', (rev ? 'HEAD').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4134
            overWriteBool ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4135
                argumentString := argumentString, ' -F'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4136
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4137
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4138
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4139
        pathesInModuleAsArgument := pathesInModule 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4140
                                        collect:[:eachPath |
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4141
                                            (eachPath includes:Character space) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4142
                                                '"',eachPath,'"'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4143
                                            ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4144
                                                eachPath
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4145
                                            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4146
                                        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4147
        pathesInModuleAsArgument := pathesInModuleAsArgument asStringCollection asStringWith:Character space.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4148
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4149
        self activityNotification:'setting symbolic name for: ', pathesInModuleAsArgument.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4150
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4151
        self information:'Implementation not finished yet'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4152
        ^self.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4153
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4154
        perforceCommand := ('label "' , pathesInRepository, '"').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4155
        outputStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4156
        errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4157
        result := self executePerforceCommand:perforceCommand inDirectory:self root 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4158
            inputFrom:nil outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4159
            errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4160
            logHeader:('set label ', pathesInRepository, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4161
        result ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4162
            ^ nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4163
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4164
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4165
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4166
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4167
     self setSymbolicName:'stable' revision:nil overWrite:false path:'stx/libbasic/Array.st'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4168
     self setSymbolicName:'stable' revision:nil overWrite:true path:'stx/libbasic/Array.st'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4169
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4170
     self 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4171
        setSymbolicName:'test1' 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4172
        revision:nil 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4173
        overWrite:true 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4174
        path:'bosch/dapasx/datenbasis/DAPASX__HierarchicalList.st'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4175
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4176
     self 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4177
        setSymbolicName:'test2' 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4178
        revision:nil 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4179
        overWrite:true 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4180
        pathes:#( 'bosch/dapasx/datenbasis/DAPASX__HierarchicalList.st' 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4181
                  'bosch/dapasx/datenbasis/DAPASX__ProjectSearch.st' )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4182
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4183
     self 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4184
        setSymbolicName:'test2' 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4185
        revision:0 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4186
        overWrite:true 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4187
        pathes:#( 'bosch/dapasx/datenbasis/DAPASX__HierarchicalList.st' 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4188
                  'bosch/dapasx/datenbasis/DAPASX__ProjectSearch.st' )
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4189
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4190
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4191
    "Created: / 12-09-2006 / 12:36:44 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4192
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4193
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4194
streamFor:checkInDefinition revision:revision cache:doCache
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4195
    "extract a classes source code and return an open readStream on it.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4196
     A revision of nil selects the current (in image) revision.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4197
     The classes source code is extracted using the revision and the sourceCodeInfo,
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4198
     which itself is extracted from the classes packageString."
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4199
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4200
    |cacheIt cacheDir classFileName fullName cachedSourceFilename cacheSubDir cachedFile tempdir checkoutName
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4201
     checkoutNameLocal revMsg fullTempName fullCachedName stream tempFile outStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4202
     line modulDir lineNr result outputStream errorStream inStream cls module packageDir packagePath fullFilename perforceCommand|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4203
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4204
    cacheIt := doCache.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4205
    (cacheIt and:[revision ~~ #newest and:[revision notNil]]) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4206
        (cacheDir := PerforceSourceCodeManager sourceCacheDirectory) isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4207
            'PerforceSourceCodeManager [warning]: no source cache directory' errorPrintCR.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4208
        ]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4209
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4210
    self getTemporaryWorkspaceFor:checkInDefinition.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4211
    cls := checkInDefinition definitionClass.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4212
    classFileName := checkInDefinition fileName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4213
    classFileName isNil ifTrue:[classFileName := cls classBaseFilename].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4214
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4215
    (classFileName endsWith:',v') ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4216
        classFileName := classFileName copyWithoutLast:2.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4217
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4218
    (classFileName endsWith:'.st') ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4219
        cls notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4220
            classFileName := classFileName copyWithoutLast:3.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4221
        ]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4222
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4223
    module :=  checkInDefinition package.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4224
    packageDir := checkInDefinition packageDir.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4225
    fullName := module , '/' , packageDir , '/' , classFileName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4226
    cls notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4227
        fullName := fullName , '.st'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4228
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4229
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4230
    (revision isNil or:[revision == #newest]) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4231
        cachedSourceFilename := classFileName, '_p4'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4232
        revMsg := ''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4233
    ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4234
        cachedSourceFilename := classFileName , '_p4_' , revision.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4235
        revMsg := ' (' , revision , ')'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4236
    ].                                               
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4237
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4238
    cacheDir notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4239
        cacheSubDir := cacheDir construct:module.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4240
        cacheSubDir := cacheSubDir construct:packageDir.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4241
        cachedFile := cacheSubDir construct:cachedSourceFilename.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4242
        cachedFile exists ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4243
            ^ cachedFile readStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4244
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4245
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4246
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4247
    "/
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4248
    "/ first, create a temporary work tree
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4249
    "/ Do not make module and package directories, their existence cause cvs checkout to fail in server mode
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4250
    "/
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4251
    tempdir := self tempDirectory.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4252
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4253
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4254
    "/
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4255
    "/ check it out there
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4256
    "/
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4257
    checkoutName :=  fullName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4258
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4259
    modulDir := module asFilename construct:packageDir.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4260
    checkoutNameLocal := modulDir constructString:(fullName asFilename baseName).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4261
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4262
    self activityNotification:'checking out source ' , checkoutName , revMsg.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4263
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4264
    packagePath := Smalltalk packageDirectoryForPackageId:checkInDefinition package.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4265
    fullFilename := (packagePath construct:checkInDefinition packageDir) construct:checkInDefinition fileName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4266
    fullTempName := self getTemporaryFilenameFor:fullFilename pathName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4267
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4268
    perforceCommand := ('print "' , fullFilename pathName, '#', revision, '"').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4269
    outputStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4270
    errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4271
    result := self executePerforceCommand:perforceCommand inDirectory:self root 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4272
        inputFrom:nil outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4273
        errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4274
        logHeader:('get contents of ', fullFilename pathName, ' for revision ', revision, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4275
    result ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4276
        ^ nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4277
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4278
    errorStream contents notEmpty ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4279
        ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4280
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4281
    FileStream openErrorSignal handle:[:ex|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4282
        ('PerforceSourceCodeManager [error]: can not create ', fullTempName pathName) errorPrintCR.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4283
        ^ nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4284
    ] do:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4285
        fullTempName directory recursiveMakeDirectory.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4286
        outStream := fullTempName writeStream.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4287
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4288
    lineNr := 1.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4289
    inStream := ReadStream on:(outputStream contents).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4290
    [inStream atEnd not] whileTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4291
        line:= inStream nextLine.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4292
        line notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4293
            lineNr = 1 ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4294
            ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4295
                outStream nextPutLine:line.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4296
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4297
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4298
        lineNr := lineNr + 1.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4299
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4300
    outStream close.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4301
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4302
    (cacheSubDir isNil) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4303
        cacheIt := false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4304
    ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4305
        cacheSubDir recursiveMakeDirectory.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4306
        fullCachedName := cacheSubDir constructString:cachedSourceFilename.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4307
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4308
    (cacheIt
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4309
    and:[cachedFile notNil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4310
    and:[fullTempName exists]])
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4311
    ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4312
        (OperatingSystem errorSignal catch:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4313
            fullTempName moveTo:fullCachedName
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4314
        ]) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4315
            ('PerforceSourceCodeManager [error]: failed to rename ', fullTempName pathName, ' to ', cachedSourceFilename) errorPrintCR.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4316
            ^ nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4317
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4318
        fullCachedName asFilename exists ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4319
            stream := fullCachedName asFilename readStream.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4320
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4321
    ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4322
        checkInDefinition fileName = 'extensions.st' ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4323
            self activityNotification:'Not cached - please check your settings and/or the version method in the projectDefinition.'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4324
        ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4325
            self activityNotification:'Not cached - please check your settings.'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4326
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4327
        OperatingSystem isUNIXlike ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4328
            "/ cannot remove files which are still open ...
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4329
            "/ sigh - need a delete-on-close flag in FileStream.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4330
            "/
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4331
            tempFile := Filename newTemporary.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4332
            fullTempName copyTo:tempFile.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4333
            stream := tempFile readStream.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4334
            stream notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4335
                stream removeOnClose:true.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4336
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4337
        ] ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4338
            stream := fullTempName readStream.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4339
        ]
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4340
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4341
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4342
    ^ stream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4343
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4344
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4345
submit
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4346
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4347
    |numbers|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4348
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4349
    numbers := self getCurrentChangeListNumbers.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4350
    numbers isEmptyOrNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4351
        ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4352
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4353
    numbers do:[:aNumber|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4354
        (self submitChangeNumber:aNumber) ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4355
            ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4356
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4357
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4358
    ^true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4359
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4360
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4361
submitChangeNumber:changeNumber
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4362
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4363
    |cmd outputStream errorStream result changeListDescription infoDialog logMsg|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4364
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4365
    changeListDescription := self getChangeDespriptionInfoFor:changeNumber printString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4366
    infoDialog := PerforceSourceCodeManager submitInfoDialogClass 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4367
            getCheckinInfoFor:'Perforce submit message check'                
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4368
            initialAnswer:((changeListDescription at:#Description ifAbsent:'') copy)
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4369
            withFileList:(changeListDescription at:#Files ifAbsent:'').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4370
    infoDialog notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4371
        logMsg := infoDialog logMessage.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4372
        (changeListDescription at:#Description ifAbsent:'') ~= logMsg asStringCollection ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4373
            self changeChangeDescriptionTo:logMsg asStringCollection changeNumber:changeNumber printString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4374
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4375
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4376
    cmd := ('submit -c ', changeNumber printString).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4377
    outputStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4378
    errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4379
    result := self temporaryWorkSpace executePerforceCommand:cmd
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4380
                        inDirectory:self tempDirectory
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4381
                        inputFrom:nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4382
                        outputTo:outputStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4383
                        errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4384
                        doLog:false.                     
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4385
    result ifFalse:[   
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4386
        result := self mergeOrResolveConflictsForChangeNumber:changeNumber.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4387
        result ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4388
            cmd := ('submit -c ', changeNumber printString).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4389
            outputStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4390
            errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4391
            result := self temporaryWorkSpace executePerforceCommand:cmd
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4392
                                inDirectory:self tempDirectory
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4393
                                inputFrom:nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4394
                                outputTo:outputStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4395
                                errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4396
                                logHeader:('submit change ', changeNumber printString, ' after resolve.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4397
            result ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4398
                ^ false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4399
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4400
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4401
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4402
    ^true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4403
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4404
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4405
!PerforceSourceCodeManager::WorkSpace methodsFor:'basic administration'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4406
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4407
initialRevisionInfo:checkInDefinition
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4408
    "return a string usable as initial revision string"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4409
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4410
    |version workSpace foundView packagePath fullFilename depotPath|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4411
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4412
    checkInDefinition definitionClass isPrivate ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4413
        PerforceSourceCodeManager reportError:'refuse to get revision for private classes.'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4414
        ^ nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4415
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4416
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4417
    "/
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4418
    "/ first, create a temporary work tree
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4419
    "/
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4420
"/    tempdir := checkInDefinition tempDirectory.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4421
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4422
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4423
    workSpace := PerforceSourceCodeManager getWorkSpaceForPackage:(checkInDefinition packageString).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4424
    workSpace isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4425
        ('PerforceSourceCodeManager [error]: failed to create workspace for', checkInDefinition definitionObjectString)  errorPrintCR.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4426
        ^ nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4427
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4428
    checkInDefinition workSpace:workSpace.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4429
    version := PerforceSourceCodeManager versionInfoClass new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4430
    foundView := workSpace getViewForPackage:checkInDefinition package.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4431
    packagePath := Smalltalk packageDirectoryForPackageId:checkInDefinition package.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4432
    fullFilename := (packagePath construct:checkInDefinition packageDir) construct:checkInDefinition fileName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4433
    depotPath := foundView getDepotPathForLocalPath:fullFilename pathName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4434
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4435
    version repositoryPathName:depotPath.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4436
    version user:workSpace owner.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4437
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4438
    s := CharacterWriteStream on:(String basicNew:40).    
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4439
    Date today printOn:s format:'%d-%m-%y' language:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4440
    version date:s contents.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4441
    s := CharacterWriteStream on:(String basicNew:40).    
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4442
    Timestamp now printOn:s format:'%h-%m-%s.%i'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4443
    version time:s contents.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4444
"
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  4445
    version revision:'1'.
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4446
    ^ version.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4447
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4448
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4449
self initialRevisionStringFor:RTDBInspectorStartup inModule:'applistx' directory:'util/rtdb' container:'RTDBInterfaceInspector.st'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4450
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4451
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4452
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4453
initialRevisionStringFor:checkInDefinition
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4454
    "return a string usable as initial revision string"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4455
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4456
    |info|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4457
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4458
    info := self initialRevisionInfo:checkInDefinition.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4459
    info notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4460
        ^info getVersionString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4461
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4462
    ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4463
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4464
self initialRevisionStringFor:RTDBInspectorStartup inModule:'applistx' directory:'util/rtdb' container:'RTDBInterfaceInspector.st'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4465
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4466
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4467
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4468
nextRevisionStringFor:checkInDefinition
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4469
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4470
    |versionInfo s newestRevisionNumber versionMethod versionString|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4471
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4472
    versionMethod := checkInDefinition definitionClass findVersionMethodOfManager:PerforceSourceCodeManager.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4473
    versionMethod notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4474
        versionString := (versionMethod valueWithReceiver:(checkInDefinition definitionClass theNonMetaclass) arguments:#()).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4475
        versionString notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4476
            versionInfo := PerforceSourceCodeManager versionInfoClass fromRCSString:versionString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4477
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4478
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4479
    versionInfo isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4480
        versionInfo := self initialRevisionInfo:checkInDefinition.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4481
    ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4482
        versionInfo user:checkInDefinition workSpace owner.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4483
        s := CharacterWriteStream on:(String basicNew:40).    
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4484
        Date today printOn:s format:'%d-%m-%y' language:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4485
        versionInfo date:s contents.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4486
        s := CharacterWriteStream on:(String basicNew:40).    
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4487
        Timestamp now printOn:s format:'%h-%m-%s.%i'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4488
        versionInfo time:s contents.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4489
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4490
    versionInfo isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4491
        ^nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4492
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4493
    newestRevisionNumber := checkInDefinition getReposRevisionNumberBeforeCheckin.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4494
    newestRevisionNumber isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4495
        ^nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4496
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4497
    versionInfo revision:((newestRevisionNumber + 1) printString).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4498
    ^versionInfo getVersionString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4499
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4500
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4501
!PerforceSourceCodeManager::WorkSpace methodsFor:'command execution'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4502
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4503
executePerforceCommand:perforceCommand inDirectory:dirArg 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4504
        inputFrom:inputStream outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4505
        errorTo:errorStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4506
    "execute command and prepend perforce command name and global options.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4507
     execute command in the dirArg directory.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4508
     The doLog argument, if false supresses a logEntry to be added
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4509
     in the cvs log file (used when reading / extracting history)"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4510
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4511
    ^self executePerforceCommand:perforceCommand inDirectory:dirArg 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4512
        inputFrom:inputStream outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4513
        errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4514
        doLog:true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4515
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4516
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4517
executePerforceCommand:perforceCommand inDirectory:dirArg 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4518
        inputFrom:inputStream outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4519
        errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4520
        doLog:doLog
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4521
    "execute command and prepend perforce command name and global options.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4522
     execute command in the dirArg directory.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4523
     The doLog argument, if false supresses a logEntry to be added
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4524
     in the cvs log file (used when reading / extracting history)"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4525
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4526
    ^self executePerforceCommand:perforceCommand inDirectory:dirArg 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4527
            inputFrom:inputStream outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4528
            errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4529
            doLog:doLog
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4530
            logHeader:nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4531
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4532
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4533
executePerforceCommand:perforceCommand inDirectory:dirArg 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4534
        inputFrom:inputStream outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4535
        errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4536
        doLog:doLog
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4537
        logHeader:logHeader
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4538
    "execute command and prepend perforce command name and global options.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4539
     execute command in the dirArg directory.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4540
     The doLog argument, if false supresses a logEntry to be added
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4541
     in the cvs log file (used when reading / extracting history)"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4542
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4543
    |command rslt pathOfDir errorString  timeout errorMsgStream executeStream|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4544
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4545
    dirArg notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4546
        pathOfDir := dirArg asFilename pathName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4547
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4548
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4549
    command := self getCommandOptionsForCommand:perforceCommand.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4550
    Processor isDispatching ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4551
        rslt := OperatingSystem executeCommand:command
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4552
                        inputFrom:inputStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4553
                        outputTo:outputStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4554
                        errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4555
                        auxFrom:nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4556
                        inDirectory:pathOfDir
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4557
                        lineWise:true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4558
                        onError:[:status| false].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4559
    ] ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4560
        PerforceCommandSemaphore critical:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4561
            |p |
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4562
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4563
            p := [
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4564
                rslt := OperatingSystem executeCommand:command
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4565
                                inputFrom:inputStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4566
                                outputTo:outputStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4567
                                errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4568
                                auxFrom:nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4569
                                inDirectory:pathOfDir
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4570
                                lineWise:true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4571
                                onError:[:status| false].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4572
            ] fork.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4573
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4574
            timeout := (p waitUntilTerminatedWithTimeout:300). 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4575
            timeout ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4576
                ('PerforceSourceCodeManager [info]: command timeout: ' , command) errorPrintCR.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4577
                rslt := false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4578
                errorString := 'Perforce command timeout'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4579
            ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4580
                rslt ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4581
                    errorString := ('PerforceSourceCodeManager [info]: command failed: ' , command).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4582
                ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4583
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4584
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4585
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4586
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4587
    PerforceSourceCodeManager verboseSourceCodeAccess == true ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4588
        executeStream := WriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4589
        executeStream nextPutAll:AbsoluteTime now printString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4590
        executeStream cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4591
        executeStream nextPutAll:('Command <', command, '>').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4592
        executeStream cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4593
        executeStream nextPutAll:('StdErr Output: <', errorStream contents, '>').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4594
        executeStream cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4595
        executeStream nextPutAll:('StdOut Output: <', outputStream contents, '>').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4596
        executeStream cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4597
        executeStream nextPutAll:('##############################').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4598
        Transcript showCR:executeStream contents.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4599
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4600
    rslt ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4601
        doLog ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4602
            errorMsgStream := WriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4603
            logHeader notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4604
                errorMsgStream nextPutAll:'Error '.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4605
                errorMsgStream nextPutAll:logHeader.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4606
                errorMsgStream cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4607
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4608
            timeout ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4609
                errorMsgStream nextPutAll:('Timeout command <', command, '>').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4610
                errorMsgStream cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4611
            ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4612
                errorMsgStream nextPutAll:('Command <', command, '>').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4613
                errorMsgStream cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4614
                errorMsgStream nextPutAll:('Error output: ', errorStream contents).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4615
                outputStream contents notEmpty ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4616
                    errorMsgStream nextPutAll:('Output: ', outputStream contents).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4617
                ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4618
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4619
            self perforceError raiseErrorString:errorMsgStream contents.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4620
            SourceCodeManagerError isHandled ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4621
                SourceCodeManagerError raiseErrorString:errorMsgStream contents.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4622
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4623
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4624
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4625
    ^ rslt.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4626
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4627
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4628
executePerforceCommand:perforceCommand inDirectory:dirArg 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4629
        inputFrom:inputStream outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4630
        errorTo:errorStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4631
        logHeader:logHeader
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4632
    "execute command and prepend perforce command name and global options.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4633
     execute command in the dirArg directory.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4634
     The doLog argument, if false supresses a logEntry to be added
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4635
     in the cvs log file (used when reading / extracting history)"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4636
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4637
    ^self executePerforceCommand:perforceCommand inDirectory:dirArg 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4638
        inputFrom:inputStream outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4639
        errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4640
        doLog:true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4641
        logHeader:logHeader.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4642
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4643
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4644
getCommandOptionsForCommand:perforceCommand
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4645
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4646
    |commandStream executable port user password clientString|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4647
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4648
    commandStream := WriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4649
    executable := PerforceSourceCodeManager perforceExecutable.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4650
    (executable includes:Character space) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4651
        commandStream nextPut:$".
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4652
        commandStream nextPutAll:executable.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4653
        commandStream nextPut:$".
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4654
    ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4655
        commandStream nextPutAll:executable.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4656
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4657
    commandStream space.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4658
    port := self perforceSettings at:#port ifAbsent:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4659
    port notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4660
        commandStream space.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4661
        commandStream nextPutAll:'-p '.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4662
        commandStream nextPutAll:port.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4663
        commandStream space.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4664
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4665
    clientString := self perforceSettings at:#client ifAbsent:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4666
    clientString notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4667
        commandStream space.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4668
        commandStream nextPutAll:'-c '.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4669
        commandStream nextPutAll:clientString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4670
        commandStream space.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4671
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4672
    user := self perforceSettings at:#user ifAbsent:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4673
    user notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4674
        commandStream space.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4675
        commandStream nextPutAll:'-u '.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4676
        commandStream nextPutAll:user.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4677
        commandStream space.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4678
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4679
    password := self perforceSettings at:#password ifAbsent:nil.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4680
    password notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4681
        commandStream space.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4682
        commandStream nextPutAll:'-P '.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4683
        commandStream nextPutAll:password.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4684
        commandStream space.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4685
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4686
    commandStream nextPutAll:perforceCommand.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4687
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4688
    ^ commandStream contents.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4689
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4690
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4691
!PerforceSourceCodeManager::WorkSpace methodsFor:'dialogs & helpers'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4692
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4693
checkinTroubleDialog:title message:message log:log abortable:abortable option:optionTitle
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4694
    "trouble checking in - open a dialog"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4695
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4696
    ^ self
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4697
        checkinTroubleDialog:title
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4698
        message:message
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4699
        log:log
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4700
        abortable:abortable
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4701
        option:optionTitle
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4702
        option2:nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4703
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4704
    "Created: 10.12.1995 / 17:34:33 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4705
    "Modified: 12.9.1996 / 02:39:06 / cg"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4706
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4707
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4708
checkinTroubleDialog:title message:message log:log abortable:abortable option:optionTitle option2:optionTitle2
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4709
    ^self
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4710
        checkinTroubleDialog:title
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4711
        message:message
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4712
        log:log
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4713
        abortable:abortable
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4714
        option:optionTitle
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4715
        option2:optionTitle2
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4716
        option3:nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4717
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4718
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4719
checkinTroubleDialog:title message:message log:log abortable:abortable option:optionTitle option2:optionTitle2 option3:optionTitle3
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4720
    "trouble checking in - open a dialog"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4721
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4722
    |l box list listView optionPressed option2Pressed option3Pressed|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4723
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4724
    l := log collect:[:line | line withTabsExpanded].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4725
    list := SelectionInList with:l.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4726
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4727
    box := Dialog new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4728
    box label:(title).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4729
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4730
    (box addTextLabel:message) borderWidth:0.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4731
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4732
    l asString notEmptyOrNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4733
        listView := SelectionInListView on:list.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4734
        listView disable.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4735
        listView height:(listView heightOfContents max:250).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4736
        box addComponent:(HVScrollableView forView:listView miniScrollerH:true) tabable:false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4737
        box addVerticalSpace.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4738
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4739
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4740
    abortable ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4741
        box addAbortButton
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4742
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4743
    optionTitle notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4744
        box addOkButton:(Button label:optionTitle action:[optionPressed := true. box hide]).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4745
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4746
    optionTitle2 notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4747
        box addOkButton:(Button label:optionTitle2 action:[option2Pressed := true. box hide]).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4748
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4749
    optionTitle3 notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4750
        box addOkButton:(Button label:optionTitle3 action:[option3Pressed := true. box hide]).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4751
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4752
    box addOkButton.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4753
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4754
    box extent:(box preferredExtent).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4755
    box minExtent:box extent.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4756
    box maxExtent:box extent.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4757
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4758
    box open.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4759
    box destroy.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4760
    optionPressed == true ifTrue:[^ #option].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4761
    option2Pressed == true ifTrue:[^ #option2].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4762
    option3Pressed == true ifTrue:[^ #option3].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4763
    ^ box accepted
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4764
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4765
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4766
| changesAsLogged |
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4767
changesAsLogged := OrderedCollection new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4768
1 to:10 do:[:each|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4769
    changesAsLogged add:('Hallo', each printString).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4770
].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4771
changesAsLogged := OrderedCollection new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4772
self checkinTroubleDialog:'Version conflict'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4773
             message:'Message Message Message Message Message Message Message Message Message Message Message Message Message Message'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4774
             log:changesAsLogged
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4775
             abortable:false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4776
             option:'show conflicts'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4777
             option2:'resolve conflicts'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4778
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4779
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4780
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4781
diffTextComment
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4782
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4783
    |ws|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4784
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4785
    ws := WriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4786
    ws nextPutLine:'"/ ***************************************************************'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4787
    ws nextPutLine:'"/ This text contains your current versions code (blue)'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4788
    ws nextPutLine:'"/ merged with the conflicting code as found in the repository (red) which resulted'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4789
    ws nextPutLine:'"/ from some other checkin.'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4790
    ws nextPutLine:'"/ Each such conflict is surrounded by green text (like this paragraph).'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4791
    ws nextPutLine:'"/ '.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4792
    ws nextPutLine:'"/ Please have a look at ALL the conflicts and fix things as appropriate.'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4793
    ws nextPutLine:'"/ Delete the green lines as a confirmation - I will not checkin the changed text,'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4794
    ws nextPutLine:'"/ unless no more green parts are present. This includes this comment at the top.'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4795
    ws nextPutLine:'"/ ***************************************************************'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4796
    ^ ws contents
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4797
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4798
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4799
getRevisionForLabel:label depotPath:depotPath
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4800
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4801
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4802
    |perforceCommand outputStream errorStream result inStream line depotAndRevision|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4803
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4804
    perforceCommand := ('files "@' , label, '"').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4805
    outputStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4806
    errorStream := ReadWriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4807
    result := self executePerforceCommand:perforceCommand inDirectory:self root 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4808
        inputFrom:nil outputTo:outputStream 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4809
        errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4810
        logHeader:('getting revision for label ', label, '.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4811
    result ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4812
        ^ nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4813
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4814
    inStream := ReadStream on:(outputStream contents).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4815
    [inStream atEnd not] whileTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4816
        line:= inStream nextLine.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4817
        line notEmptyOrNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4818
            (line startsWith:depotPath) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4819
                depotAndRevision := line asCollectionOfWords first.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4820
                depotAndRevision := depotAndRevision asCollectionOfSubstringsSeparatedBy:$#.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4821
                ^ depotAndRevision second
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4822
            ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4823
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4824
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4825
    ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4826
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4827
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4828
messageForChangesInClass:class revision:revisionNumber
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4829
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4830
    |msgStream|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4831
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4832
    msgStream := WriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4833
    msgStream nextPutAll:'The source of '; nextPutAll:class className; nextPutAll:'has been changed in the meanwhile as listed below.'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4834
    msgStream cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4835
    msgStream nextPutAll:'If you continue, your new changes (based upon rev. '; nextPutAll:revisionNumber printString; nextPutAll:') will be MERGED'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4836
    msgStream nextPutAll:'into the newest revision. This will combine the other version with your changes'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4837
    msgStream nextPutAll:'into a new common revision which may be different from both.'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4838
    msgStream nextPutAll:'Although this is a nice feature, it may fail to create the expected result in certain situations.'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4839
    msgStream cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4840
    msgStream nextPutAll:'You should carefully check the result - by comparing the current version with the'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4841
    msgStream nextPutAll:'most recent version in the repository. If that does not contain an acceptable version,'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4842
    msgStream nextPutAll:'change methods as required and check in again.'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4843
    msgStream nextPutAll:'Be aware, that after that, the actual repository version is different from your current classes,'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4844
    msgStream nextPutAll:'and you should update your class from the repository.'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4845
    msgStream cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4846
    msgStream nextPutAll:'Continue ?'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4847
    ^ msgStream contents
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4848
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4849
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4850
messageForConflictsInClass:definitionClass revision:revisionNumber
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4851
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4852
    |msgStream|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4853
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4854
    msgStream := WriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4855
    msgStream nextPutAll:'The source of '; nextPutAll:definitionClass className; nextPutAll:' has been changed in the meanwhile as listed below.'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4856
    msgStream cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4857
    msgStream nextPutAll:'Your new changes (based upon rev. '; nextPutAll:revisionNumber printString; nextPutAll:') CONFLICT with those changes'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4858
    msgStream cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4859
    msgStream nextPutAll:'You should fix things by comparing your class with the most recent repository version'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4860
    msgStream nextPutAll:'and change your methods avoiding conflicts. The checkin again.'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4861
    msgStream cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4862
    ^ msgStream contents
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4863
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4864
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4865
messageForNoChangesInClass:class
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4866
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4867
    |msgStream|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4868
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4869
    msgStream := WriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4870
    msgStream nextPutAll:'The source of '; nextPutAll:class className; nextPutAll:'has been changed in the meanwhile as listed below.'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4871
    msgStream cr.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4872
    msgStream nextPutAll:'I have merged your version with the newest repository version,'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4873
    msgStream nextPutAll:'and found no differences between the result and your current version'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4874
    msgStream nextPutAll:'(i.e. your version seemed up-to-date).'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4875
    ^ msgStream contents
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4876
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4877
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4878
updatedRevisionStringOf:aClass forRevision:newRevision with:originalVersionString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4879
    "update a revision string"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4880
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4881
    |versionInfo packageID module foundView packagePath fullFilename depotPath sourceInfo classFileName|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4882
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4883
    originalVersionString isEmptyOrNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4884
        packageID := PackageId from:aClass package.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4885
        module := packageID module.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4886
        foundView := self getViewForPackage:module.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4887
        packagePath := Smalltalk packageDirectoryForPackageId:module.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4888
        sourceInfo := PerforceSourceCodeManager sourceInfoOfClass:aClass.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4889
        sourceInfo isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4890
            PerforceSourceCodeManager reportError:('no sourceInfo for class: ' , aClass name).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4891
            ^ nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4892
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4893
        classFileName := PerforceSourceCodeManager containerFromSourceInfo:sourceInfo.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4894
        fullFilename := (packagePath construct:packageID directory) construct:classFileName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4895
        depotPath := foundView getDepotPathForLocalPath:fullFilename pathName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4896
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4897
        versionInfo := PerforceSourceCodeManager versionInfoClass fromRepositoryPathName:depotPath.        
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4898
    ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4899
        versionInfo := PerforceSourceCodeManager versionInfoClass fromRCSString:originalVersionString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4900
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4901
    versionInfo revision:newRevision printString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4902
    ^ versionInfo getVersionString.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4903
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4904
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4905
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4906
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4907
    self updatedRevisionStringOf:nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4908
            forRevision:'6'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4909
            with:'$','Header','$'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4910
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4911
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4912
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4913
!PerforceSourceCodeManager::WorkSpace methodsFor:'initialization'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4914
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4915
initialize
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4916
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4917
    PerforceCommandSemaphore := Semaphore new:10.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4918
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4919
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4920
!PerforceSourceCodeManager::WorkSpace methodsFor:'queries'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4921
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4922
getDepotPathForLocalPath:aFilename
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4923
    |view|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4924
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4925
    view := self getViewForPath:aFilename.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4926
    view isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4927
        ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4928
    ].             
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4929
    ^view getDepotPathForLocalPath:aFilename
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4930
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4931
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4932
getLocalPathForDepotPath:depotPath
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4933
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4934
    |view|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4935
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4936
    view := self getViewForDepotPath:depotPath.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4937
    view notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4938
        ^view getLocalPathForDepotPath:depotPath.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4939
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4940
    ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4941
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4942
     | workSpace tempWorkSpace |
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4943
    workSpace := PerforceSourceCodeManager getWorkSpaceForPackage:'applistx'.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4944
    tempWorkSpace := workSpace temporaryWorkSpace.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4945
    tempWorkSpace getLocalPathForDepotPath:'//depot/applistx/util/libDataType/ActionLQualifier.st'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4946
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4947
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4948
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4949
getTemporaryFilenameFor:aFilename
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4950
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4951
    |myView checkInPart fullTempFilename|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4952
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4953
    myView := self getViewForPath:aFilename.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4954
    self temporaryWorkSpace isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4955
        ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4956
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4957
    self temporaryWorkSpace views do:[:aView|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4958
        myView depot = aView depot ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4959
            checkInPart := PerforceSourceCodeManager getTrailungPathNameFrom:aFilename with:myView localPathName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4960
            fullTempFilename := aView localPathName asFilename construct:checkInPart.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4961
            ^fullTempFilename
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4962
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4963
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4964
    ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4965
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4966
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4967
getTemporaryViewForPackage:aPackage
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4968
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4969
    |myView|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4970
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4971
    myView := self getViewForPackage:aPackage.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4972
    self temporaryWorkSpace isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4973
        ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4974
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4975
    self temporaryWorkSpace views do:[:aView|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4976
        myView depot = aView depot ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4977
            ^ aView
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4978
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4979
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4980
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4981
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4982
getViewForDepotPath:depotPath
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4983
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4984
    |myHostName|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4985
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4986
    myHostName := OperatingSystem getHostName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4987
    (myHostName endsWith:OperatingSystem getDomainName) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4988
        myHostName := myHostName copyTo:(myHostName size - (OperatingSystem getDomainName size + 1)).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4989
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4990
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4991
    (myHostName asLowercase startsWith:(self host asLowercase)) ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4992
        self perforceError raiseErrorString:('Client ', (perforceSettings at:#client), ' is made for host ', self host, ' and not for ', myHostName).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4993
        ^ nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4994
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4995
    self views do:[:aView |
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4996
        (aView hasViewForDepotPath:depotPath) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4997
            ^aView
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4998
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  4999
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5000
    self perforceError raiseErrorString:('Client ', (perforceSettings at:#client), ' have no View for depot path ', depotPath).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5001
    ^ nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5002
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5003
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5004
getViewForPackage:aPackage 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5005
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5006
    |locPackage packagePath|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5007
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5008
    aPackage isNil ifTrue:[                              
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5009
        locPackage := Smalltalk package.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5010
    ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5011
        locPackage := aPackage.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5012
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5013
    packagePath := self packageDirectoryForPackageId:locPackage.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5014
    packagePath notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5015
        packagePath := packagePath pathName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5016
    ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5017
        self perforceError raiseErrorString:('no package path for ', aPackage printString).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5018
        ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5019
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5020
    ^self getViewForPath:packagePath
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5021
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5022
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5023
    PerforceSourceCodeManager perforceWorkspaces first value getViewForPackage:'applistx:application/rtdbInspector/builder'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5024
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5025
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5026
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5027
getViewForPath:aPathName
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5028
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5029
    |myHostName|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5030
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5031
    myHostName := OperatingSystem getHostName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5032
    (myHostName endsWith:OperatingSystem getDomainName) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5033
        myHostName := myHostName copyTo:(myHostName size - (OperatingSystem getDomainName size + 1)).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5034
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5035
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5036
    (myHostName asLowercase startsWith:(self host asLowercase)) ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5037
        self perforceError raiseErrorString:('Client ', (perforceSettings at:#client), ' is made for host ', self host, ' and not for ', myHostName).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5038
        ^ nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5039
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5040
    self views do:[:aView |
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5041
        (aView hasViewForPath:aPathName) ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5042
            ^aView
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5043
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5044
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5045
    self perforceError raiseErrorString:('Client ', (perforceSettings at:#client), ' have no View for path ', aPathName).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5046
    ^ nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5047
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5048
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5049
hasViewForPackage:aPackage 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5050
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5051
    ^(self getViewForPackage:aPackage) notNil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5052
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5053
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5054
hasViewForPath:aPathName
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5055
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5056
    ^(self getViewForPath:aPathName) notNil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5057
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5058
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5059
packageDirectoryForPackageId:package
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5060
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5061
    ^self packageDirectoryForPackageId:package checkParents:true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5062
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5063
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5064
    PerforceSourceCodeManager perforceWorkspaces first value getViewForPackage:'applisddtx:application/rtdbInspector/builder'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5065
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5066
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5067
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5068
packageDirectoryForPackageId:package checkParents:checkParents
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5069
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5070
    |locPackage packagePath|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5071
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5072
    locPackage := package copyReplaceAll:$: with:$/.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5073
    [ packagePath isNil ] whileTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5074
        packagePath := Smalltalk packageDirectoryForPackageId:locPackage.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5075
        packagePath notNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5076
            ^packagePath
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5077
        ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5078
        locPackage := locPackage asFilename directoryName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5079
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5080
    ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5081
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5082
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5083
    PerforceSourceCodeManager perforceWorkspaces first value getViewForPackage:'applisddtx:application/rtdbInspector/builder'
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5084
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5085
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5086
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5087
perforceError
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5088
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5089
    ^ PerforceSourceCodeManager perforceError
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5090
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5091
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5092
perforceSettingsString
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5093
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5094
    ^ PerforceSourceCodeManager getStringFromPerforceSettings:self perforceSettings
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5095
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5096
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5097
readRevisionLogEntryFromStream:inStream
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5098
    "read and parse a single revision info-entry from the cvs log output.
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5099
     Return nil on end.
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5100
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5101
     The returned information is a structure (IdentityDictionary)
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5102
     filled with:
2353
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5103
              #revision              -> the revision string
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5104
              #author                -> who checked that revision into the repository
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5105
              #date                  -> when was it checked in
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5106
              #state                 -> the RCS state
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5107
              #numberOfChangedLines  -> the number of changed line w.r.t the previous
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5108
              #logMessage            -> the checkIn log message
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5109
    "
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5110
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5111
    |revLine1 atEnd|
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5112
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5113
    atEnd := false.
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5114
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5115
    revLine1 := inStream nextLine.
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5116
    ^ self readRevisionLogEntryFromString:revLine1.
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5117
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5118
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5119
readRevisionLogEntryFromString:revLine1
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5120
    "read and parse a single revision info-entry from the cvs log output.
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5121
     Return nil on end.
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5122
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5123
     The returned information is a structure (IdentityDictionary)
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5124
     filled with:
2353
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5125
              #revision              -> the revision string
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5126
              #author                -> who checked that revision into the repository
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5127
              #date                  -> when was it checked in
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5128
              #state                 -> the RCS state
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5129
              #numberOfChangedLines  -> the number of changed line w.r.t the previous
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5130
              #logMessage            -> the checkIn log message
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5131
    "
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5132
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5133
    | record revisionLineElements noOfRevisionLineElements posText|
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5134
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5135
    (revLine1 notNil) ifTrue:[
2353
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5136
        record := IdentityDictionary new.
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5137
        revisionLineElements := revLine1 asCollectionOfWords.
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5138
        noOfRevisionLineElements := revisionLineElements size.
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5139
        noOfRevisionLineElements > 1 ifTrue:[
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5140
            record at:#revision put:((revisionLineElements at:2) copyFrom:2).
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5141
        ].
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5142
        noOfRevisionLineElements > 8 ifTrue:[
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5143
            record at:#author put:(revisionLineElements at:9).
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5144
        ].
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5145
        noOfRevisionLineElements > 6 ifTrue:[
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5146
            record at:#date put:(revisionLineElements at:7).
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5147
        ].
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5148
        noOfRevisionLineElements > 4 ifTrue:[
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5149
            record at:#state put:(revisionLineElements at:5).
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5150
        ].
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5151
        noOfRevisionLineElements > 10 ifTrue:[
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5152
            posText := 0.
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5153
            1 to:9 do:[:ele| posText := posText + (revisionLineElements at:ele) size + 1].
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5154
            record at:#logMessage put:(revLine1 copyFrom:posText).
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5155
        ].
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5156
    ].
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5157
    ^record.
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5158
!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5159
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5160
temporaryClientName
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5161
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5162
    ^ 'stxCheckinWorkSpace_', self owner, self host.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5163
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5164
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5165
!PerforceSourceCodeManager::WorkSpace methodsFor:'read'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5166
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5167
getDefinitionFromServer
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5168
    |cmd myBaseDirectory outputStream errorStream rslt clients inStream line words|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5169
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5170
    cmd := 'clients -u ' , (self perforceSettings at:#user).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5171
    myBaseDirectory := (Filename currentDirectory asAbsoluteFilename) pathName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5172
    outputStream := WriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5173
    errorStream := WriteStream on:''.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5174
    rslt := self  
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5175
                executePerforceCommand:cmd
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5176
                inDirectory:myBaseDirectory
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5177
                inputFrom:nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5178
                outputTo:outputStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5179
                errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5180
                logHeader:('getting workspaces ').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5181
    rslt ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5182
        self perforceError raiseErrorString:(outputStream contents, errorStream contents).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5183
        ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5184
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5185
    clients := OrderedCollection new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5186
    inStream := ReadStream on:(outputStream contents).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5187
    [ inStream atEnd not ] whileTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5188
        line := inStream nextLine.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5189
        line notEmptyOrNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5190
            words := line asCollectionOfWords.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5191
            words size > 1 ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5192
                clients add:(words at:2).
2349
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5193
            ].
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5194
        ].
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5195
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5196
    (clients includes:(self perforceSettings at:#client ifAbsent:nil)) ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5197
        self perforceError raiseErrorString:('No workspace ', (self perforceSettings at:#client ifAbsent:'?'), ' for user ', (self perforceSettings at:#user ifAbsent:'?'), ' on ', (self perforceSettings at:#port ifAbsent:'?'), ' available.').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5198
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5199
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5200
    cmd := 'client -o'.
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5201
    myBaseDirectory := (Filename currentDirectory asAbsoluteFilename) pathName.
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5202
    outputStream reset.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5203
    errorStream reset.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5204
    rslt := self 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5205
                executePerforceCommand:cmd
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5206
                inDirectory:myBaseDirectory
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5207
                inputFrom:nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5208
                outputTo:outputStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5209
                errorTo:errorStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5210
                logHeader:('getting empty workspace definition ').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5211
    rslt ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5212
        self perforceError raiseErrorString:(outputStream contents, errorStream contents).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5213
        ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5214
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5215
    inStream := ReadStream on:(outputStream contents).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5216
    self getWorkSpaceFromClientSpecFrom:inStream.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5217
    ^true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5218
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5219
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5220
(PerforceSourceCodeManager getWorkSpaceForPackage:'applistx') getDefinitionFromServer
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5221
"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5222
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5223
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5224
getWorkSpaceFromClientSpecFrom:inStream
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5225
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5226
        get the workspace definition from perforce client command output
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5227
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5228
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5229
    |line nextKey |
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5230
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5231
    [inStream atEnd not] whileTrue:[
2349
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5232
        line:= inStream nextLine.
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5233
        line notEmptyOrNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5234
                line first = $# ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5235
                (line startsWith:'Owner:') ifTrue:[
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5236
                    self owner:line asCollectionOfWords second.
2349
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5237
                ].
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5238
                (line startsWith:'Host:') ifTrue:[
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5239
                    self host:line asCollectionOfWords second.
2349
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5240
                ].
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5241
                (line startsWith:'Client:') ifTrue:[
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5242
                    self client:(line asCollectionOfWords second).
2349
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5243
                ].
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5244
                (line startsWith:'Root:') ifTrue:[
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5245
                    self root:((line copyFrom:('Root:' size + 1)) withoutLeadingSeparators).
2349
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5246
                ].
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5247
                (line startsWith:'View:') ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5248
                    nextKey := false.
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5249
                    [nextKey not and:[inStream atEnd not]] whileTrue:[
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5250
                        line:= inStream nextLine.
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5251
                        line notEmptyOrNil ifTrue:[
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5252
                            line first isSeparator ifTrue:[
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5253
                                self views add:(View newFromLine:line workspace:self).
2349
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5254
                            ] ifFalse:[
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5255
                                nextKey := true.
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5256
                            ].
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5257
                        ].
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5258
                    ].
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5259
                ].
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5260
            ].
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5261
        ].
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5262
    ].
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5263
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5264
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5265
newWorkSpaceFor:settingsString 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5266
    settingsString isNil ifTrue:[
2349
Claus Gittinger <cg@exept.de>
parents: 2345
diff changeset
  5267
        ^ nil
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5268
    ].
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5269
    self perforceSettings:(PerforceSourceCodeManager 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5270
                getPerforceSettingsFromString:settingsString).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5271
    self getDefinitionFromServer ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5272
        ^self
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5273
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5274
    ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5275
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5276
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5277
newWorkSpaceForSettings:settingsDict 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5278
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5279
    settingsDict isNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5280
        self perforceError raiseErrorString:('nil settings when creating workspace').
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5281
        ^ self
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5282
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5283
    self perforceSettings:settingsDict.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5284
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5285
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5286
!PerforceSourceCodeManager::WorkSpace::View class methodsFor:'instance creation'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5287
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5288
newFromLine:aLine workspace:aWorkspaceDefinition
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5289
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5290
    |instance|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5291
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5292
    instance := self new.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5293
    instance newFromLine:aLine.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5294
    instance workspace:aWorkspaceDefinition.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5295
    ^instance
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5296
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5297
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5298
!PerforceSourceCodeManager::WorkSpace::View methodsFor:'accessing'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5299
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5300
depot
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5301
    ^ depot
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5302
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5303
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5304
depot:something
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5305
    depot := something.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5306
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5307
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5308
local
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5309
    ^ local
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5310
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5311
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5312
local:something
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5313
    local := something.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5314
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5315
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5316
type
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5317
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5318
    " there special types for views 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5319
      + for added to the same directory
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5320
      - exclude this view
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5321
        and standard view
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5322
    "
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5323
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5324
    ^ type
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5325
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5326
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5327
type:something
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5328
    type := something.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5329
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5330
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5331
workspace
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5332
    ^ workspace
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5333
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5334
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5335
workspace:something
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5336
    workspace := something.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5337
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5338
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5339
!PerforceSourceCodeManager::WorkSpace::View methodsFor:'queries'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5340
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5341
getDepotPathForLocalPath:aFilename
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5342
    |depotPath restPath unixRestPath|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5343
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5344
    (self hasViewForPath:aFilename) ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5345
        ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5346
    ].                     
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5347
    depotPath := depot.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5348
    (depot endsWith:'...') ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5349
        depotPath := depot copyTo:(depot size - 3).
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5350
    ] ifFalse:[
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5351
        depotPath := depot.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5352
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5353
    restPath := PerforceSourceCodeManager getTrailungPathNameFrom:aFilename with:self localPathName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5354
    unixRestPath := (UnixFilename fromComponents:(restPath asFilename components)) pathName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5355
    depotPath := depotPath, unixRestPath.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5356
    ^depotPath.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5357
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5358
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5359
getLocalPathForDepotPath:depotPath
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5360
    |viewDepotPath restPath|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5361
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5362
    (self hasViewForDepotPath:depotPath) ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5363
        ^nil
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5364
    ].                     
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5365
    viewDepotPath := depot.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5366
    (depot endsWith:'...') ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5367
        viewDepotPath := depot copyTo:(depot size - 3).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5368
    ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5369
        viewDepotPath := depot.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5370
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5371
    restPath := PerforceSourceCodeManager getTrailungPathNameFrom:depotPath with:viewDepotPath.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5372
    ^ (self localPathName asFilename construct:restPath) pathName.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5373
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5374
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5375
hasViewForDepotPath:depotPath
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5376
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5377
    |viewDepotPath|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5378
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5379
    depotPath isEmptyOrNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5380
        ^ false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5381
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5382
    viewDepotPath := depot.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5383
    (depot endsWith:'...') ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5384
        viewDepotPath := depot copyTo:(depot size - 3).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5385
    ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5386
        viewDepotPath := depot.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5387
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5388
    (PerforceSourceCodeManager path:depotPath hasSamePrefixLikePath:viewDepotPath) ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5389
        ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5390
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5391
    ^true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5392
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5393
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5394
hasViewForPath:aPathname
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5395
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5396
    aPathname isEmptyOrNil ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5397
        ^ false.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5398
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5399
    (PerforceSourceCodeManager path:aPathname hasSamePrefixLikePath:self localPathName) ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5400
        ^false
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5401
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5402
    ^true
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5403
!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5404
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5405
localPathName
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5406
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5407
    |indexOfClientString localPathName|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5408
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5409
    (local endsWith:'...') ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5410
        localPathName := local copyTo:(local size -3).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5411
    ] ifFalse:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5412
        localPathName := local.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5413
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5414
    indexOfClientString := local findString:workspace client.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5415
    indexOfClientString == 0 ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5416
        ^workspace root.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5417
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5418
    localPathName := workspace root asFilename construct:(localPathName copyFrom:(indexOfClientString + workspace client size)).
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5419
    ^localPathName pathName 
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5420
! !
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5421
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5422
!PerforceSourceCodeManager::WorkSpace::View methodsFor:'reading'!
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5423
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5424
newFromLine:aLine
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5425
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5426
    |words firstIndex secondIndex theLine|
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5427
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5428
    theLine := aLine withoutLeadingSeparators.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5429
    theLine := theLine withoutTrailingSeparators.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5430
    theLine isEmpty ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5431
        ^self
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5432
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5433
    theLine first == $+ ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5434
        type := #+.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5435
        theLine := theLine copyFrom:2.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5436
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5437
    theLine first == $- ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5438
        type := #-.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5439
        theLine := theLine copyFrom:2.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5440
    ].
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5441
    (theLine includes:$") ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5442
        "oops we have space directories search for quotes"
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5443
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5444
        firstIndex := theLine indexOf:$" startingAt:1.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5445
        firstIndex == 1 ifTrue:[
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5446
            secondIndex := theLine indexOf:$" startingAt:firstIndex + 1.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5447
            depot := theLine copyFrom:firstIndex + 1 to:secondIndex - 1.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5448
            firstIndex := theLine indexOf:$" startingAt:secondIndex + 1.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5449
            secondIndex := theLine indexOf:$" startingAt:firstIndex + 1.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5450
            local := theLine copyFrom:firstIndex + 1  to:secondIndex - 1.
2353
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5451
        ] ifFalse:[
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5452
            depot := (theLine copyTo:firstIndex - 1) withoutTrailingSeparators.            
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5453
            local := theLine copyFrom:firstIndex + 1 to:(theLine size - 1).
2353
8841e465eb49 added: #settingsApplicationClass
Claus Gittinger <cg@exept.de>
parents: 2349
diff changeset
  5454
        ].
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5455
    ] ifFalse:[
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5456
        words := theLine asCollectionOfWords.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5457
        depot := words first.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5458
        local := words second.
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5459
    ].
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5460
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5461
"
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5462
    View newFromLine:ws contents.
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5463
"
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5464
! !
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5465
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5466
!PerforceSourceCodeManager class methodsFor:'documentation'!
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5467
2652
f1faa96b62ac comment/format in: #initialRevisionStringFor:inModule:directory:container:
Claus Gittinger <cg@exept.de>
parents: 2646
diff changeset
  5468
version
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5469
    ^ '$Header: /cvs/stx/stx/libbasic3/PerforceSourceCodeManager.st,v 1.24 2012-06-01 07:57:44 cg Exp $'
2652
f1faa96b62ac comment/format in: #initialRevisionStringFor:inModule:directory:container:
Claus Gittinger <cg@exept.de>
parents: 2646
diff changeset
  5470
!
f1faa96b62ac comment/format in: #initialRevisionStringFor:inModule:directory:container:
Claus Gittinger <cg@exept.de>
parents: 2646
diff changeset
  5471
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5472
version_CVS
2826
68c9687a86f2 **** new version from Christian
Claus Gittinger <cg@exept.de>
parents: 2732
diff changeset
  5473
    ^ '$Header: /cvs/stx/stx/libbasic3/PerforceSourceCodeManager.st,v 1.24 2012-06-01 07:57:44 cg Exp $'
2330
96c6e13dded5 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
  5474
! !