mercurial/HGSourceCodeManager.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Fri, 01 Feb 2013 12:02:22 +0000
changeset 210 54a73fa50d40
parent 191 f0745f4cdc97
child 230 d202597d67a5
permissions -rw-r--r--
Added copyright notice.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
     1
"
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
     2
 COPYRIGHT (c) 2012-2013 by Jan Vrany
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
     3
              All Rights Reserved
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
     4
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
     5
 This software is furnished under a license and may be used
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
     6
 only in accordance with the terms of that license and with the
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
     8
 be provided or otherwise made available to, or used by, any
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
     9
 other person.  No title to or ownership of the software is
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
    10
 hereby transferred.
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
    11
"
46
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    12
"{ Package: 'stx:libscm/mercurial' }"
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    13
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    14
SCMAbstractSourceCodeManager subclass:#HGSourceCodeManager
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    15
	instanceVariableNames:''
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    16
	classVariableNames:''
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    17
	poolDictionaries:''
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    18
	category:'SCM-Mercurial-StX'
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    19
!
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    20
210
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
    21
!HGSourceCodeManager class methodsFor:'documentation'!
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
    22
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
    23
copyright
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
    24
"
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
    25
 COPYRIGHT (c) 2012-2013 by Jan Vrany
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
    26
              All Rights Reserved
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
    27
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
    28
 This software is furnished under a license and may be used
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
    29
 only in accordance with the terms of that license and with the
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
    30
 inclusion of the above copyright notice.   This software may not
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
    31
 be provided or otherwise made available to, or used by, any
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
    32
 other person.  No title to or ownership of the software is
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
    33
 hereby transferred.
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
    34
"
54a73fa50d40 Added copyright notice.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 191
diff changeset
    35
! !
46
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    36
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    37
!HGSourceCodeManager class methodsFor:'accessing'!
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    38
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    39
repositoryNameForPackage:packageId
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    40
    "Return the repository ULR for the given package. 
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    41
     Used for testing/debugging source code management configuration"
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    42
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    43
    ^ HGRepository discover: (Smalltalk getPackageDirectoryForPackage: packageId)
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    44
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    45
    "Modified: / 13-11-2012 / 22:16:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    46
! !
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    47
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    48
!HGSourceCodeManager class methodsFor:'accessing-classes'!
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    49
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    50
commitDialogClass
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    51
    "Answer a dialog class to be used for commits"
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    52
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    53
    ^HGCommitDialog
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    54
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    55
    "Created: / 13-11-2012 / 23:59:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    56
!
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    57
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    58
packageRegistryClass
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    59
    "Answer the package manager class used to get
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    60
     package models"
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    61
    
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    62
    ^ HGPackageModelRegistry
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    63
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    64
    "Created: / 13-11-2012 / 23:59:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    65
! !
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    66
162
108fc9ee061e Added HGWorkingCopyBrowser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 159
diff changeset
    67
!HGSourceCodeManager class methodsFor:'accessing-tools'!
108fc9ee061e Added HGWorkingCopyBrowser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 159
diff changeset
    68
108fc9ee061e Added HGWorkingCopyBrowser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 159
diff changeset
    69
workingCopyBrowserClass
108fc9ee061e Added HGWorkingCopyBrowser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 159
diff changeset
    70
    "Returns a file browser (kind of FileBrowser) suitable for browsing
108fc9ee061e Added HGWorkingCopyBrowser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 159
diff changeset
    71
     working copies. Allows for special browsers with SCM-specific features"
108fc9ee061e Added HGWorkingCopyBrowser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 159
diff changeset
    72
163
21bc6994087d Experimental HGWorkingCopyBrowser - unfinished!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 162
diff changeset
    73
    ^OperatingSystem getLoginName = 'jv' ifTrue:[
21bc6994087d Experimental HGWorkingCopyBrowser - unfinished!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 162
diff changeset
    74
        HGWorkingCopyBrowser
21bc6994087d Experimental HGWorkingCopyBrowser - unfinished!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 162
diff changeset
    75
    ] ifFalse:[
21bc6994087d Experimental HGWorkingCopyBrowser - unfinished!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 162
diff changeset
    76
        UserPreferences current fileBrowserClass    
21bc6994087d Experimental HGWorkingCopyBrowser - unfinished!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 162
diff changeset
    77
    ]
162
108fc9ee061e Added HGWorkingCopyBrowser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 159
diff changeset
    78
108fc9ee061e Added HGWorkingCopyBrowser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 159
diff changeset
    79
    "Created: / 14-12-2012 / 15:00:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
163
21bc6994087d Experimental HGWorkingCopyBrowser - unfinished!
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 162
diff changeset
    80
    "Modified: / 14-12-2012 / 20:10:46 / Jan Vrany <jan.vrany@fit.cvut.cz>"
162
108fc9ee061e Added HGWorkingCopyBrowser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 159
diff changeset
    81
! !
108fc9ee061e Added HGWorkingCopyBrowser.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 159
diff changeset
    82
84
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    83
!HGSourceCodeManager class methodsFor:'basic access'!
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    84
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    85
checkinClass:aClass fileName:classFileName directory:packageDir module:moduleDir source:sourceFile logMessage:logMessage force:force
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    86
    "checkin of a class into the source repository.
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    87
     Return true if ok, false if not."
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    88
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    89
    ^ self shouldImplement
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    90
!
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    91
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    92
checkoutModule:aModule directory:aPackage andDo:aBlock
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    93
    "check out everything from a package into a temporary directory.
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    94
     Then evaluate aBlock, passing the name of that temp-directory.
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    95
     Afterwards, the tempDir is removed.
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    96
     Return true, if OK, false if any error occurred."
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    97
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    98
    ^ self shouldImplement
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
    99
!
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   100
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   101
streamForClass:aClass fileName:classFileName revision:revision directory:packageDir module:moduleDir cache:doCache
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   102
    "extract a classes source code and return an open readStream on it.
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   103
     A revision of nil selects the current (in image) revision.
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   104
     The classes source code is extracted using the revision and the sourceCodeInfo,
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   105
     which itself is extracted from the classes packageString."
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   106
126
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   107
    | pkg repo file |
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   108
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   109
    pkg := HGPackageModel named: (moduleDir , ':' , packageDir).
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   110
    repo := pkg repository.
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   111
    file := (repo @ revision) / pkg repositoryRoot / classFileName.
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   112
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   113
    doCache ifTrue:[
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   114
        ^SourceCodeCache default
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   115
            streamForClass:aClass 
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   116
            fileName:classFileName 
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   117
            revision:revision 
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   118
            repository: 'svn' "TODO: Use repository ID here" 
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   119
            module:moduleDir 
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   120
            directory:packageDir 
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   121
            ifAbsent: [:destination|
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   122
                ActivityNotification notify: ('Checking out ', classFileName , '@' , revision  , '...').
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   123
                [
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   124
                    file copyTo: destination.    
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   125
                    destination exists ifTrue:[
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   126
                        destination readStream
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   127
                    ] ifFalse:[
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   128
                        nil
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   129
                    ]
159
c70809dc1e70 Removed accidentical dependency on stx:libsvn.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   130
                ] on: HGError do:[
126
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   131
                    nil                    
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   132
                ]
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   133
            ]            
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   134
    ] ifFalse:[
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   135
        ^file readStream.
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   136
    ]
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   137
159
c70809dc1e70 Removed accidentical dependency on stx:libsvn.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 139
diff changeset
   138
    "Modified: / 11-12-2012 / 09:12:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
84
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   139
! !
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   140
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   141
!HGSourceCodeManager class methodsFor:'basic administration'!
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   142
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   143
checkForExistingContainer:fileName inModule:moduleName directory:dirName
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   144
    "check for a container to be present"
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   145
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   146
    ^ self shouldImplement
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   147
!
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   148
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   149
checkForExistingModule:moduleName
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   150
    "check for a module directory to be present"
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   151
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   152
    ^ self shouldImplement
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   153
!
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   154
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   155
checkForExistingModule:moduleDir directory:packageDir
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   156
    "check for a package directory to be present"
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   157
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   158
    ^ self shouldImplement
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   159
!
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   160
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   161
createContainerFor:aClass inModule:moduleName directory:dirName container:fileName
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   162
    "create a new container & check into it an initial version of aClass"
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   163
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   164
    ^ self shouldImplement
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   165
!
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   166
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   167
createModule:moduleName
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   168
    "create a new module directory"
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   169
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   170
    ^ self shouldImplement
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   171
!
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   172
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   173
createModule:module directory:directory
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   174
    "create a new package directory"
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   175
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   176
    ^ self shouldImplement
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   177
!
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   178
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   179
initialRevisionStringFor:aClass inModule:moduleDir directory:packageDir container:fileName
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   180
    "return a string usable as initial revision string"
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   181
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   182
    ^ self shouldImplement
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   183
!
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   184
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   185
revisionLogOf:clsOrNil fromRevision:rev1OrNil toRevision:rev2OrNil numberOfRevisions:limitOrNil fileName:classFileName directory:packageDir module:moduleDir
121
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   186
    "Actually do return a revisionLog. The main worker method. This must be implemented by a 
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   187
     concrete source-code manager. The interface of this method is just crazy!!
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   188
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   189
     If numRevisionsOrNil is notNil, it limits the number of revision records returned -
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   190
     only numRevions of the newest revision infos will be collected.
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   191
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   192
     The returned information is a structure (IdentityDictionary)
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   193
     filled with:
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   194
            #container          -> the RCS/CVS container file name 
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   195
            #cvsRoot            -> the CVS root (repository) 
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   196
            #filename           -> the actual source file name
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   197
            #newestRevision     -> the revisionString of the newest revision
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   198
            #numberOfRevisions  -> the number of revisions in the container (nil for all)
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   199
            #revisions          -> collection of per-revision info (see below)
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   200
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   201
            firstRevOrNil / lastRevOrNil specify from which revisions a logEntry is wanted:
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   202
             -If firstRevOrNil is nil, the first revision is the initial revision
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   203
              otherwise, the log starts with that revision.
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   204
             -If lastRevOrNil is nil, the last revision is the newest revision
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   205
              otherwise, the log ends with that revision.
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   206
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   207
             -If both are nil, all logEntries are extracted.
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   208
             -If both are 0 (not nil), no logEntries are extracted (i.e. only the header).
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   209
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   210
            per revision info consists of one record per revision:
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   211
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   212
              #revision              -> the revision string
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   213
              #author                -> who checked that revision into the repository
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   214
              #date                  -> when was it checked in
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   215
              #state                 -> the RCS state
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   216
              #numberOfChangedLines  -> the number of changed line w.r.t the previous
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   217
              #logMessage            -> the checkIn log message
84
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   218
121
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   219
            revisions are ordered newest first 
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   220
            (i.e. the last entry is for the initial revision; the first for the most recent one)
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   221
            Attention: if state = 'dead' that revision is no longer valid.
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   222
    "
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   223
138
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   224
    | pkg repo path wcentry info newest rev limit log revs revi |
121
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   225
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   226
    info := IdentityDictionary new.
126
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   227
    pkg := HGPackageModel named: (moduleDir , ':' , packageDir).
121
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   228
    repo := pkg repository.
126
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   229
    path := pkg repositoryRoot.
138
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   230
    wcentry := repo workingCopy / path / classFileName.
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   231
    wcentry exists ifFalse:[
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   232
        self breakPoint: #jv.
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   233
        self error:'Ooops, could not found given file in working copy. Changeset scanning not yet implemented'.
121
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   234
    ].
166
dbf0f7eb0dc9 Performance fix in HFSourceCodeManager revision log access.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   235
    revs := (rev1OrNil == 0 and:[rev2OrNil == 0]) 
dbf0f7eb0dc9 Performance fix in HFSourceCodeManager revision log access.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   236
        ifTrue:[((wcentry changeset  / path) newer: true) collect:[:f|f changeset]]
dbf0f7eb0dc9 Performance fix in HFSourceCodeManager revision log access.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   237
        ifFalse:[wcentry revisions collect:[:f|f changeset]].
dbf0f7eb0dc9 Performance fix in HFSourceCodeManager revision log access.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 163
diff changeset
   238
    revs isEmpty ifTrue:[revs add: wcentry changeset].
138
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   239
    newest := revs first.
121
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   240
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   241
    info at:#container          put: classFileName.         "/ -> the revision string
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   242
    info at:#cvsRoot            put: repo pathName.         "/ -> the CVS root (repository)
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   243
    info at:#filename           put: classFileName.         "/ -> the actual source file name
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   244
    info at:#newestRevision     put: newest id printString. "/-> the revisionString of the newest revision
139
6536d1df0cf9 Bugfix HGSourceCodeManager>>#revisionLogOf:fromRevision:toRevision:numberOfRevisions:fileName:directory:module:
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 138
diff changeset
   245
    info at:#numberOfRevisions  put: newest id revno.
121
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   246
126
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   247
    (rev1OrNil == 0 and:[rev2OrNil == 0]) ifTrue:[
138
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   248
        limit := 1.
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   249
        rev := newest.
126
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   250
    ] ifFalse:[
138
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   251
        limit := limitOrNil ? (revs size) .
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   252
        rev := rev1OrNil isNil ifTrue:[newest] ifFalse:[repo @ rev1OrNil].
126
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   253
    ].
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   254
    log := OrderedCollection new.
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   255
138
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   256
    rev := revs detect:[:cs |cs == rev or:[cs timestamp < rev timestamp ]] ifNone:[nil].
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   257
    revi := revs indexOf: rev.
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   258
    limit := limit min: (revs size - revi + 1).
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   259
191
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 166
diff changeset
   260
    limit timesRepeat:[
126
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   261
        | entry |
138
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   262
        rev := revs at: revi.
126
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   263
        entry :=  IdentityDictionary new.
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   264
        entry at:#revision              put: rev id printString."/ -> the revision string
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   265
        entry at:#author                put: rev author."/ -> who checked that revision into the repository
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   266
        entry at:#date                  put: rev timestamp printString."/ -> when was it checked in
138
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   267
        entry at:#state                 put: 'Exp'. "/ -> the RCS state   
126
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   268
        entry at:#numberOfChangedLines  put: 'N/A'. "/ -> the number of changed line w.r.t the previous
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   269
        entry at:#logMessage            put: rev message."/ -> the checkIn log message.
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   270
        log add: entry.
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   271
138
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   272
        revi := revi + 1.
126
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   273
    ].
952efea00dd2 More SourceCodeManager API.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 125
diff changeset
   274
    info at: #revisions put: log.
121
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   275
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   276
    ^info
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   277
191
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 166
diff changeset
   278
    "Modified: / 22-01-2013 / 14:18:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
84
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   279
! !
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   280
46
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   281
!HGSourceCodeManager class methodsFor:'queries'!
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   282
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   283
isResponsibleForPackage:aStringOrSymbol
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   284
    "Returns true if the manager can handle source code for given package.
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   285
     
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   286
     Answering true does not imply that receiver is configured default
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   287
     manager for that package, it only means that it has a repository
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   288
     configured for given package."
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   289
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   290
    "No configuration yet, so let's scan the working copy"
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   291
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   292
    | pkgDir |
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   293
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   294
    pkgDir := Smalltalk getPackageDirectoryForPackage: aStringOrSymbol.
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   295
    ^pkgDir notNil and:[(HGRepository discover: pkgDir) notNil]
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   296
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   297
    "Modified: / 14-11-2012 / 00:24:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   298
!
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   299
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   300
managerTypeName
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   301
    "superclass AbstractSourceCodeManager class says that I am responsible to implement this method"
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   302
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   303
    ^ 'Mercurial+'
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   304
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   305
    "Modified: / 13-11-2012 / 22:40:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   306
!
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   307
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   308
managerTypeNameShort
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   309
    ^ 'HG'
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   310
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   311
    "Created: / 06-10-2012 / 17:10:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   312
    "Modified: / 13-11-2012 / 22:40:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   313
!
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   314
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   315
nameOfVersionMethodForExtensions
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   316
    "that is the old name; now, we use extensionsVersion_<SCM>"
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   317
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   318
    ^ #'extensionsVersion_HG'
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   319
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   320
    "Modified (comment): / 29-09-2011 / 13:27:04 / cg"
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   321
    "Modified: / 13-11-2012 / 22:40:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   322
!
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   323
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   324
nameOfVersionMethodInClasses
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   325
    "that is the old name; now, we use version_<SCM>"
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   326
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   327
    ^ #'version_HG'
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   328
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   329
    "Modified (comment): / 29-09-2011 / 13:27:09 / cg"
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   330
    "Modified: / 13-11-2012 / 22:40:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   331
!
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   332
121
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   333
performsCompilabilityChecks
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   334
    ^true
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   335
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   336
    "Created: / 01-12-2012 / 01:01:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   337
!
f7cac3dae028 Basic revision log support in HGSourceCodeManager.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 116
diff changeset
   338
46
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   339
settingsApplicationClass
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   340
    "link to my settings application (needed for the settings dialog"
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   341
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   342
    ^ HGSourceCodeManagementSettingsAppl
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   343
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   344
    "Modified: / 13-11-2012 / 22:40:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   345
!
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   346
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   347
versionMethodTemplateForJavaScriptFor:aSelector
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   348
    "do not make the thing below a single string - otherwise
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   349
     it would get expanded by the sourcecodemanager, which we do not want here"
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   350
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   351
    ^
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   352
"'function ',"aSelector,'() {
115
b1ed2d29054b version_HG changed to return string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   353
b1ed2d29054b version_HG changed to return string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   354
    return "$Changeset: <not expanded>"$;
46
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   355
}'
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   356
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   357
    "Created: / 07-10-2012 / 00:23:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
115
b1ed2d29054b version_HG changed to return string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   358
    "Modified: / 30-11-2012 / 21:32:12 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   359
!
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   360
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   361
versionMethodTemplateForRubyFor:aSelector
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   362
    "do not make the thing below a single string - otherwise
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   363
     it would get expanded by the sourcecodemanager, which we do not want here"
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   364
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   365
    ^
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   366
'def self.',aSelector,'()
115
b1ed2d29054b version_HG changed to return string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   367
b1ed2d29054b version_HG changed to return string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   368
    return "$Changeset: <not expanded>$"
46
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   369
end'
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   370
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   371
    "Created: / 07-10-2012 / 00:22:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
115
b1ed2d29054b version_HG changed to return string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   372
    "Modified: / 30-11-2012 / 21:32:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   373
!
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   374
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   375
versionMethodTemplateForSmalltalkFor:aSelector
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   376
    "do not make the thing below a single string - otherwise
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   377
     it would get expanded by the sourcecodemanager, which we do not want here"
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   378
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   379
    ^
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   380
aSelector,'
115
b1ed2d29054b version_HG changed to return string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   381
b1ed2d29054b version_HG changed to return string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   382
    ^ ''$Changeset: <not expanded> $''
46
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   383
'
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   384
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   385
    "Created: / 07-10-2012 / 00:21:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
115
b1ed2d29054b version_HG changed to return string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   386
    "Modified: / 30-11-2012 / 21:32:22 / Jan Vrany <jan.vrany@fit.cvut.cz>"
46
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   387
! !
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   388
84
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   389
!HGSourceCodeManager class methodsFor:'source code administration'!
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   390
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   391
getExistingContainersInModule:aModule directory:aPackage
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   392
    "{ Pragma: +optSpace }"
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   393
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   394
    ^ self shouldImplement
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   395
!
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   396
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   397
getExistingDirectoriesInModule:aModule
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   398
    "{ Pragma: +optSpace }"
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   399
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   400
    ^ self shouldImplement
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   401
!
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   402
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   403
getExistingModules
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   404
    "{ Pragma: +optSpace }"
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   405
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   406
    ^ self shouldImplement
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   407
!
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   408
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   409
removeContainer:container inModule:module directory:directory
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   410
    "remove a container"
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   411
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   412
    ^ self shouldImplement
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   413
!
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   414
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   415
revisionInfoFromString:aString
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   416
    "{ Pragma: +optSpace }"
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   417
88
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
   418
    ^ HGRevisionInfo fromString: aString
84
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   419
88
1ad71a063a20 Bunch of fixes.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 84
diff changeset
   420
    "Modified: / 20-11-2012 / 23:26:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
116
b690f5845323 Class revision ID refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   421
!
b690f5845323 Class revision ID refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   422
b690f5845323 Class revision ID refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   423
revisionInfoFromString: vsnString inClass: class
b690f5845323 Class revision ID refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   424
    | revInfo |
b690f5845323 Class revision ID refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   425
b690f5845323 Class revision ID refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   426
    revInfo := self revisionInfoFromString: (class binaryRevisionString ? vsnString).
b690f5845323 Class revision ID refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   427
    revInfo className: class name.
b690f5845323 Class revision ID refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   428
    ^revInfo
b690f5845323 Class revision ID refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   429
b690f5845323 Class revision ID refactoring.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 115
diff changeset
   430
    "Created: / 30-11-2012 / 21:48:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
84
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   431
! !
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   432
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   433
!HGSourceCodeManager class methodsFor:'subclass responsibility'!
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   434
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   435
reportHistoryLogSince:timeGoal filterSTSources:filter filterUser:userFilter filterRepository:repositoryFilter filterModules:moduleFilter inTo:aBlock
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   436
    "superclass AbstractSourceCodeManager class says that I am responsible to implement this method"
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   437
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   438
    ^ self shouldImplement
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   439
! !
76c669414145 Added HGVersionInfo.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 54
diff changeset
   440
46
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   441
!HGSourceCodeManager class methodsFor:'documentation'!
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   442
54
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   443
version_HG
115
b1ed2d29054b version_HG changed to return string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   444
b1ed2d29054b version_HG changed to return string.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 88
diff changeset
   445
    ^ '$Changeset: <not expanded> $'
54
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   446
!
66045198bfbc More changes towards self hosting. Some work on model is still missing...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 46
diff changeset
   447
46
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   448
version_SVN
138
c66a831e131b Make HGWorkingCopy>>revisions dynamic.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 128
diff changeset
   449
    ^ '§Id::                                                                                                                        §'
46
d5a192b11a1a - More Smalltalk/X support
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   450
! !
191
f0745f4cdc97 Performance optimization: lazily pre-load all unloaded changes at once.
Jan Vrany <jan.vrany@fit.cvut.cz>
parents: 166
diff changeset
   451