restructured & added demo classes
authorClaus Gittinger <cg@exept.de>
Tue, 14 Jan 1997 21:25:01 +0100
changeset 545 198957db4e32
parent 544 00ef962ee7d0
child 546 1940b70dbe2a
restructured & added demo classes
AbstrSCMgr.st
AbstractSourceCodeManager.st
CVSSCMgr.st
CVSSourceCodeManager.st
FlatDirectorySourceCodeManager.st
--- a/AbstrSCMgr.st	Tue Jan 14 20:47:22 1997 +0100
+++ b/AbstrSCMgr.st	Tue Jan 14 21:25:01 1997 +0100
@@ -191,6 +191,121 @@
     "Modified: 12.9.1996 / 02:25:19 / cg"
 ! !
 
+!AbstractSourceCodeManager class methodsFor:'basic access'!
+
+checkinClass:aClass fileName:classFileName directory:packageDir module:moduleDir source:sourceFile logMessage:logMessage force:force
+    "checkin of a class into the source repository.
+     Return true if ok, false if not."
+
+    ^ self subclassResponsibility.
+
+    "Created: 14.2.1997 / 21:17:33 / cg"
+    "Modified: 14.2.1997 / 21:18:48 / cg"
+!
+
+streamForClass:aClass fileName:classFileName revision:revision directory:packageDir module:moduleDir cache:doCache
+    "extract a classes source code and return an open readStream on it.
+     A revision of nil selects the current (in image) revision.
+     The classes source code is extracted using the revision and the sourceCodeInfo,
+     which itself is extracted from the classes packageString."
+
+    ^ self subclassResponsibility
+
+    "Modified: 14.2.1997 / 21:18:35 / cg"
+! !
+
+!AbstractSourceCodeManager class methodsFor:'basic administration'!
+
+checkForExistingContainerInModule:moduleName package:dirName container:fileName
+    "check for a container to be present"
+
+    ^ self subclassResponsibility.
+
+    "Created: 9.12.1995 / 19:02:23 / cg"
+    "Modified: 14.2.1997 / 21:18:56 / cg"
+!
+
+checkForExistingModule:moduleName
+    "check for a module directory to be present"
+
+    ^ self subclassResponsibility.
+
+    "Created: 9.12.1995 / 19:02:23 / cg"
+    "Modified: 14.2.1997 / 21:19:01 / cg"
+!
+
+checkForExistingModule:moduleDir package:packageDir
+    "check for a package directory to be present"
+
+    ^ self subclassResponsibility.
+
+    "Created: 9.12.1995 / 19:02:23 / cg"
+    "Modified: 14.2.1997 / 21:19:06 / cg"
+!
+
+createContainerFor:aClass inModule:moduleName directory:dirName container:fileName
+    "create a new container & check into it an initial version of aClass"
+
+    ^ self subclassResponsibility.
+
+    "Created: 9.12.1995 / 19:02:47 / cg"
+    "Modified: 14.2.1997 / 21:19:11 / cg"
+!
+
+createModule:moduleName
+    "create a new module directory"
+
+    ^ self subclassResponsibility.
+
+    "Created: 9.12.1995 / 19:02:23 / cg"
+    "Modified: 14.2.1997 / 21:19:16 / cg"
+!
+
+createModule:module package:package
+    "create a new package directory"
+
+    ^ self subclassResponsibility.
+
+    "Created: 9.12.1995 / 19:02:23 / cg"
+    "Modified: 14.2.1997 / 21:19:21 / cg"
+!
+
+initialRevisionStringFor:aClass inModule:moduleDir package:packageDir container:fileName
+    "return a string usable as initial revision string"
+
+    ^ self subclassResponsibility
+
+    "Created: 14.2.1997 / 21:01:41 / cg"
+!
+
+removeContainerFor:aClass inModule:moduleName directory:dirName container:fileName
+    "remove a container"
+
+    ^ self subclassResponsibility.
+
+    "Created: 11.9.1996 / 13:18:33 / cg"
+    "Modified: 14.2.1997 / 21:19:28 / cg"
+!
+
+revisionLogOf:cls fromRevision:rev1 toRevision:rev2 fileName:classFileName directory:packageDir module:moduleDir 
+    "actually do return a revisionLog. The main worker method.
+     This must be implemented by a concrete source-code manager"
+
+    ^ self subclassResponsibility.
+
+    "Created: 15.11.1995 / 18:12:51 / cg"
+    "Modified: 14.2.1997 / 21:14:01 / cg"
+!
+
+writeHistoryLogSince:timeGoal filterSTSources:filter filterUser:userFilter to:aStream
+    "send a full historyLog to some stream.
+     Must be implemented by a concrete subclass."
+
+    ^ self subclassResponsibility
+
+    "Modified: 14.2.1997 / 21:13:51 / cg"
+! !
+
 !AbstractSourceCodeManager class methodsFor:'private'!
 
 containerFromSourceInfo:info
@@ -537,16 +652,6 @@
 
     "Created: 25.11.1995 / 12:40:19 / cg"
     "Modified: 10.1.1997 / 15:14:18 / cg"
-!
-
-streamForClass:cls fileName:classFileName revision:revision directory:packageDir module:moduleDir cache:cacheIt
-    "return a stream for reading a classes specific versions sourceCode"
-
-    self subclassResponsibility.
-    ^ nil
-
-    "Created: 4.11.1995 / 19:09:12 / cg"
-    "Modified: 12.9.1996 / 02:33:50 / cg"
 ! !
 
 !AbstractSourceCodeManager class methodsFor:'source code access'!
@@ -748,64 +853,41 @@
 
 !AbstractSourceCodeManager class methodsFor:'source code administration'!
 
-checkForExistingContainerInModule:moduleName package:dirName container:fileName
-    "check for a container to be present"
-
-    self subclassResponsibility.
-    ^ false
+initialRCSRevisionStringFor:aClass in:dir container:fileName
+    "return a string usable as initial revision string"
 
-    "Created: 9.12.1995 / 19:02:23 / cg"
-    "Modified: 12.9.1996 / 02:34:41 / cg"
-!
+    "/ do not make the string below into one string;
+    "/ RCS would expand it into a wrong rev-string
 
-checkForExistingModule:moduleName
-    "check for a module directory to be present"
+    |nm oldRev idx special|
 
-    self subclassResponsibility.
-    ^ false
-
-    "Created: 9.12.1995 / 19:02:23 / cg"
-    "Modified: 12.9.1996 / 02:34:50 / cg"
-!
-
-checkForExistingModule:moduleDir package:packageDir
-    "check for a package directory to be present"
-
-    self subclassResponsibility.
-    ^ false
+    nm := fileName.
+    (nm endsWith:',v') ifTrue:[
+        nm := nm copyWithoutLast:2
+    ].
+    (nm endsWith:'.st') ifFalse:[
+        nm := nm , '.st'
+    ].
 
-    "Created: 9.12.1995 / 19:02:23 / cg"
-    "Modified: 12.9.1996 / 02:34:57 / cg"
-!
-
-createContainerFor:aClass inModule:moduleName directory:dirName container:fileName
-    "create a new container & check into it an initial version of aClass"
-
-    self subclassResponsibility.
-    ^ false
-
-    "Created: 9.12.1995 / 19:02:47 / cg"
-    "Modified: 12.9.1996 / 02:35:17 / cg"
-!
+    oldRev := aClass revisionString.
+    special := ''.
 
-createModule:moduleName
-    "create a new module directory"
-
-    self subclassResponsibility.
-    ^ false
+    oldRev notNil ifTrue:[
+        idx := oldRev lastIndexOf:$[.
+        idx ~~ 0 ifTrue:[
+            idx := oldRev indexOf:$[ startingAt:idx+1.
+            idx ~~ 0 ifTrue:[
+                special := ' ' , (oldRev copyFrom:idx).
+            ]
+        ]
+    ].
 
-    "Created: 9.12.1995 / 19:02:23 / cg"
-    "Modified: 12.9.1996 / 02:35:26 / cg"
-!
 
-createModule:module package:package
-    "create a new package directory"
+    ^ '$' , 'Header: ' , dir , '/' , fileName , ',v $'
+      , special
 
-    self subclassResponsibility.
-    ^ false
-
-    "Created: 9.12.1995 / 19:02:23 / cg"
-    "Modified: 12.9.1996 / 02:35:32 / cg"
+    "Modified: 17.9.1996 / 15:57:15 / cg"
+    "Created: 14.2.1997 / 20:59:28 / cg"
 !
 
 newestRevisionInFile:classFileName directory:packageDir module:moduleDir
@@ -850,16 +932,6 @@
     "Modified: 10.1.1997 / 13:30:36 / cg"
 !
 
-removeContainerFor:aClass inModule:moduleName directory:dirName container:fileName
-    "remove a container"
-
-    self subclassResponsibility.
-    ^ false
-
-    "Created: 11.9.1996 / 13:18:33 / cg"
-    "Modified: 12.9.1996 / 02:35:46 / cg"
-!
-
 revisionLogInFile:classFileName directory:packageDir module:moduleDir
     "return info about the repository container and
      (part of) the revisionlog as a collection of revision entries.
@@ -1058,16 +1130,6 @@
     "Modified: 10.1.1997 / 13:30:00 / cg"
 !
 
-revisionLogOf:cls fromRevision:rev1 toRevision:rev2 fileName:classFileName directory:packageDir module:moduleDir 
-    "actually do return a revisionLog. The main worker method.
-     This must be implemented by a concrete source-code manager"
-
-    self subclassResponsibility.
-
-    "Created: 15.11.1995 / 18:12:51 / cg"
-    "Modified: 12.9.1996 / 02:36:11 / cg"
-!
-
 revisionsOf:aClass
     "return a collection of revisions (as strings) found in the repository.
      The most recent (newest) revision will be the first in the list.
@@ -1155,7 +1217,10 @@
     |log |
 
     log := self revisionLogOf:aClass fromRevision:rev1 toRevision:rev2.
-    log isNil ifTrue:[^ false].
+    log isNil ifTrue:[
+        aStream nextPutAll:'** No revision log available **'.
+        ^ false
+    ].
 
     self writeRevisionLogMessagesFrom:log to:aStream.
     ^ true
@@ -1165,7 +1230,7 @@
     "
 
     "Created: 6.11.1995 / 18:56:00 / cg"
-    "Modified: 25.11.1995 / 17:24:55 / cg"
+    "Modified: 14.2.1997 / 21:11:57 / cg"
 !
 
 writeRevisionLogOf:aClass to:aStream
@@ -1182,6 +1247,6 @@
 !AbstractSourceCodeManager class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic3/Attic/AbstrSCMgr.st,v 1.71 1997-01-10 16:29:13 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/Attic/AbstrSCMgr.st,v 1.72 1997-01-14 20:24:45 cg Exp $'
 ! !
 AbstractSourceCodeManager initialize!
--- a/AbstractSourceCodeManager.st	Tue Jan 14 20:47:22 1997 +0100
+++ b/AbstractSourceCodeManager.st	Tue Jan 14 21:25:01 1997 +0100
@@ -191,6 +191,121 @@
     "Modified: 12.9.1996 / 02:25:19 / cg"
 ! !
 
+!AbstractSourceCodeManager class methodsFor:'basic access'!
+
+checkinClass:aClass fileName:classFileName directory:packageDir module:moduleDir source:sourceFile logMessage:logMessage force:force
+    "checkin of a class into the source repository.
+     Return true if ok, false if not."
+
+    ^ self subclassResponsibility.
+
+    "Created: 14.2.1997 / 21:17:33 / cg"
+    "Modified: 14.2.1997 / 21:18:48 / cg"
+!
+
+streamForClass:aClass fileName:classFileName revision:revision directory:packageDir module:moduleDir cache:doCache
+    "extract a classes source code and return an open readStream on it.
+     A revision of nil selects the current (in image) revision.
+     The classes source code is extracted using the revision and the sourceCodeInfo,
+     which itself is extracted from the classes packageString."
+
+    ^ self subclassResponsibility
+
+    "Modified: 14.2.1997 / 21:18:35 / cg"
+! !
+
+!AbstractSourceCodeManager class methodsFor:'basic administration'!
+
+checkForExistingContainerInModule:moduleName package:dirName container:fileName
+    "check for a container to be present"
+
+    ^ self subclassResponsibility.
+
+    "Created: 9.12.1995 / 19:02:23 / cg"
+    "Modified: 14.2.1997 / 21:18:56 / cg"
+!
+
+checkForExistingModule:moduleName
+    "check for a module directory to be present"
+
+    ^ self subclassResponsibility.
+
+    "Created: 9.12.1995 / 19:02:23 / cg"
+    "Modified: 14.2.1997 / 21:19:01 / cg"
+!
+
+checkForExistingModule:moduleDir package:packageDir
+    "check for a package directory to be present"
+
+    ^ self subclassResponsibility.
+
+    "Created: 9.12.1995 / 19:02:23 / cg"
+    "Modified: 14.2.1997 / 21:19:06 / cg"
+!
+
+createContainerFor:aClass inModule:moduleName directory:dirName container:fileName
+    "create a new container & check into it an initial version of aClass"
+
+    ^ self subclassResponsibility.
+
+    "Created: 9.12.1995 / 19:02:47 / cg"
+    "Modified: 14.2.1997 / 21:19:11 / cg"
+!
+
+createModule:moduleName
+    "create a new module directory"
+
+    ^ self subclassResponsibility.
+
+    "Created: 9.12.1995 / 19:02:23 / cg"
+    "Modified: 14.2.1997 / 21:19:16 / cg"
+!
+
+createModule:module package:package
+    "create a new package directory"
+
+    ^ self subclassResponsibility.
+
+    "Created: 9.12.1995 / 19:02:23 / cg"
+    "Modified: 14.2.1997 / 21:19:21 / cg"
+!
+
+initialRevisionStringFor:aClass inModule:moduleDir package:packageDir container:fileName
+    "return a string usable as initial revision string"
+
+    ^ self subclassResponsibility
+
+    "Created: 14.2.1997 / 21:01:41 / cg"
+!
+
+removeContainerFor:aClass inModule:moduleName directory:dirName container:fileName
+    "remove a container"
+
+    ^ self subclassResponsibility.
+
+    "Created: 11.9.1996 / 13:18:33 / cg"
+    "Modified: 14.2.1997 / 21:19:28 / cg"
+!
+
+revisionLogOf:cls fromRevision:rev1 toRevision:rev2 fileName:classFileName directory:packageDir module:moduleDir 
+    "actually do return a revisionLog. The main worker method.
+     This must be implemented by a concrete source-code manager"
+
+    ^ self subclassResponsibility.
+
+    "Created: 15.11.1995 / 18:12:51 / cg"
+    "Modified: 14.2.1997 / 21:14:01 / cg"
+!
+
+writeHistoryLogSince:timeGoal filterSTSources:filter filterUser:userFilter to:aStream
+    "send a full historyLog to some stream.
+     Must be implemented by a concrete subclass."
+
+    ^ self subclassResponsibility
+
+    "Modified: 14.2.1997 / 21:13:51 / cg"
+! !
+
 !AbstractSourceCodeManager class methodsFor:'private'!
 
 containerFromSourceInfo:info
@@ -537,16 +652,6 @@
 
     "Created: 25.11.1995 / 12:40:19 / cg"
     "Modified: 10.1.1997 / 15:14:18 / cg"
-!
-
-streamForClass:cls fileName:classFileName revision:revision directory:packageDir module:moduleDir cache:cacheIt
-    "return a stream for reading a classes specific versions sourceCode"
-
-    self subclassResponsibility.
-    ^ nil
-
-    "Created: 4.11.1995 / 19:09:12 / cg"
-    "Modified: 12.9.1996 / 02:33:50 / cg"
 ! !
 
 !AbstractSourceCodeManager class methodsFor:'source code access'!
@@ -748,64 +853,41 @@
 
 !AbstractSourceCodeManager class methodsFor:'source code administration'!
 
-checkForExistingContainerInModule:moduleName package:dirName container:fileName
-    "check for a container to be present"
-
-    self subclassResponsibility.
-    ^ false
+initialRCSRevisionStringFor:aClass in:dir container:fileName
+    "return a string usable as initial revision string"
 
-    "Created: 9.12.1995 / 19:02:23 / cg"
-    "Modified: 12.9.1996 / 02:34:41 / cg"
-!
+    "/ do not make the string below into one string;
+    "/ RCS would expand it into a wrong rev-string
 
-checkForExistingModule:moduleName
-    "check for a module directory to be present"
+    |nm oldRev idx special|
 
-    self subclassResponsibility.
-    ^ false
-
-    "Created: 9.12.1995 / 19:02:23 / cg"
-    "Modified: 12.9.1996 / 02:34:50 / cg"
-!
-
-checkForExistingModule:moduleDir package:packageDir
-    "check for a package directory to be present"
-
-    self subclassResponsibility.
-    ^ false
+    nm := fileName.
+    (nm endsWith:',v') ifTrue:[
+        nm := nm copyWithoutLast:2
+    ].
+    (nm endsWith:'.st') ifFalse:[
+        nm := nm , '.st'
+    ].
 
-    "Created: 9.12.1995 / 19:02:23 / cg"
-    "Modified: 12.9.1996 / 02:34:57 / cg"
-!
-
-createContainerFor:aClass inModule:moduleName directory:dirName container:fileName
-    "create a new container & check into it an initial version of aClass"
-
-    self subclassResponsibility.
-    ^ false
-
-    "Created: 9.12.1995 / 19:02:47 / cg"
-    "Modified: 12.9.1996 / 02:35:17 / cg"
-!
+    oldRev := aClass revisionString.
+    special := ''.
 
-createModule:moduleName
-    "create a new module directory"
-
-    self subclassResponsibility.
-    ^ false
+    oldRev notNil ifTrue:[
+        idx := oldRev lastIndexOf:$[.
+        idx ~~ 0 ifTrue:[
+            idx := oldRev indexOf:$[ startingAt:idx+1.
+            idx ~~ 0 ifTrue:[
+                special := ' ' , (oldRev copyFrom:idx).
+            ]
+        ]
+    ].
 
-    "Created: 9.12.1995 / 19:02:23 / cg"
-    "Modified: 12.9.1996 / 02:35:26 / cg"
-!
 
-createModule:module package:package
-    "create a new package directory"
+    ^ '$' , 'Header: ' , dir , '/' , fileName , ',v $'
+      , special
 
-    self subclassResponsibility.
-    ^ false
-
-    "Created: 9.12.1995 / 19:02:23 / cg"
-    "Modified: 12.9.1996 / 02:35:32 / cg"
+    "Modified: 17.9.1996 / 15:57:15 / cg"
+    "Created: 14.2.1997 / 20:59:28 / cg"
 !
 
 newestRevisionInFile:classFileName directory:packageDir module:moduleDir
@@ -850,16 +932,6 @@
     "Modified: 10.1.1997 / 13:30:36 / cg"
 !
 
-removeContainerFor:aClass inModule:moduleName directory:dirName container:fileName
-    "remove a container"
-
-    self subclassResponsibility.
-    ^ false
-
-    "Created: 11.9.1996 / 13:18:33 / cg"
-    "Modified: 12.9.1996 / 02:35:46 / cg"
-!
-
 revisionLogInFile:classFileName directory:packageDir module:moduleDir
     "return info about the repository container and
      (part of) the revisionlog as a collection of revision entries.
@@ -1058,16 +1130,6 @@
     "Modified: 10.1.1997 / 13:30:00 / cg"
 !
 
-revisionLogOf:cls fromRevision:rev1 toRevision:rev2 fileName:classFileName directory:packageDir module:moduleDir 
-    "actually do return a revisionLog. The main worker method.
-     This must be implemented by a concrete source-code manager"
-
-    self subclassResponsibility.
-
-    "Created: 15.11.1995 / 18:12:51 / cg"
-    "Modified: 12.9.1996 / 02:36:11 / cg"
-!
-
 revisionsOf:aClass
     "return a collection of revisions (as strings) found in the repository.
      The most recent (newest) revision will be the first in the list.
@@ -1155,7 +1217,10 @@
     |log |
 
     log := self revisionLogOf:aClass fromRevision:rev1 toRevision:rev2.
-    log isNil ifTrue:[^ false].
+    log isNil ifTrue:[
+        aStream nextPutAll:'** No revision log available **'.
+        ^ false
+    ].
 
     self writeRevisionLogMessagesFrom:log to:aStream.
     ^ true
@@ -1165,7 +1230,7 @@
     "
 
     "Created: 6.11.1995 / 18:56:00 / cg"
-    "Modified: 25.11.1995 / 17:24:55 / cg"
+    "Modified: 14.2.1997 / 21:11:57 / cg"
 !
 
 writeRevisionLogOf:aClass to:aStream
@@ -1182,6 +1247,6 @@
 !AbstractSourceCodeManager class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic3/AbstractSourceCodeManager.st,v 1.71 1997-01-10 16:29:13 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/AbstractSourceCodeManager.st,v 1.72 1997-01-14 20:24:45 cg Exp $'
 ! !
 AbstractSourceCodeManager initialize!
--- a/CVSSCMgr.st	Tue Jan 14 20:47:22 1997 +0100
+++ b/CVSSCMgr.st	Tue Jan 14 21:25:01 1997 +0100
@@ -442,43 +442,6 @@
     "Modified: 20.5.1996 / 10:31:33 / cg"
 !
 
-initialRevisionStringFor:aClass inModule:moduleDir package:packageDir container:fileName
-    "return a string usable as initial revision string"
-
-    "/ do not make the string below into one string;
-    "/ RCS would expand it into a wrong rev-string
-
-    |nm oldRev idx special|
-
-    nm := fileName.
-    (nm endsWith:',v') ifTrue:[
-        nm := nm copyWithoutLast:2
-    ].
-    (nm endsWith:'.st') ifFalse:[
-        nm := nm , '.st'
-    ].
-
-    oldRev := aClass revisionString.
-    special := ''.
-
-    oldRev notNil ifTrue:[
-        idx := oldRev lastIndexOf:$[.
-        idx ~~ 0 ifTrue:[
-            idx := oldRev indexOf:$[ startingAt:idx+1.
-            idx ~~ 0 ifTrue:[
-                special := ' ' , (oldRev copyFrom:idx).
-            ]
-        ]
-    ].
-
-        
-    ^ '$' , 'Header: ' , CVSRoot , '/' , moduleDir , '/' , packageDir , '/' , fileName , ',v $'
-      , special
-
-    "Created: 9.12.1995 / 21:28:11 / cg"
-    "Modified: 17.9.1996 / 15:57:15 / cg"
-!
-
 releaseAndRemove:tempdir outputTo:outputFilename
     "cleanup; release tree towards cvs and remove the temporary tree"
 
@@ -1518,11 +1481,13 @@
 
     cmdOut remove.
     tempdir recursiveRemove.
+
+    Class addChangeRecordForClassCheckIn:aClass.
     ^ true
 
     "Created: 9.12.1995 / 19:13:37 / cg"
     "Modified: 23.4.1996 / 14:01:37 / stefan"
-    "Modified: 10.1.1997 / 17:31:23 / cg"
+    "Modified: 14.2.1997 / 20:42:39 / cg"
 !
 
 createModule:moduleName
@@ -1650,6 +1615,17 @@
     "Modified: 10.1.1997 / 17:32:43 / cg"
 !
 
+initialRevisionStringFor:aClass inModule:moduleDir package:packageDir container:fileName
+    "return a string usable as initial revision string"
+
+    ^ self
+        initialRCSRevisionStringFor:aClass 
+        in:(CVSRoot , '/' , moduleDir , '/' , packageDir)
+        container:fileName
+
+    "Modified: 14.2.1997 / 21:00:24 / cg"
+!
+
 removeContainerFor:aClass inModule:moduleDir package:packageDir container:fileName
     "remove a container"
 
@@ -2088,6 +2064,6 @@
 !CVSSourceCodeManager class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic3/Attic/CVSSCMgr.st,v 1.122 1997-01-10 18:06:45 cg Exp $ [ce]'
+    ^ '$Header: /cvs/stx/stx/libbasic3/Attic/CVSSCMgr.st,v 1.123 1997-01-14 20:24:14 cg Exp $ [ce]'
 ! !
 CVSSourceCodeManager initialize!
--- a/CVSSourceCodeManager.st	Tue Jan 14 20:47:22 1997 +0100
+++ b/CVSSourceCodeManager.st	Tue Jan 14 21:25:01 1997 +0100
@@ -442,43 +442,6 @@
     "Modified: 20.5.1996 / 10:31:33 / cg"
 !
 
-initialRevisionStringFor:aClass inModule:moduleDir package:packageDir container:fileName
-    "return a string usable as initial revision string"
-
-    "/ do not make the string below into one string;
-    "/ RCS would expand it into a wrong rev-string
-
-    |nm oldRev idx special|
-
-    nm := fileName.
-    (nm endsWith:',v') ifTrue:[
-        nm := nm copyWithoutLast:2
-    ].
-    (nm endsWith:'.st') ifFalse:[
-        nm := nm , '.st'
-    ].
-
-    oldRev := aClass revisionString.
-    special := ''.
-
-    oldRev notNil ifTrue:[
-        idx := oldRev lastIndexOf:$[.
-        idx ~~ 0 ifTrue:[
-            idx := oldRev indexOf:$[ startingAt:idx+1.
-            idx ~~ 0 ifTrue:[
-                special := ' ' , (oldRev copyFrom:idx).
-            ]
-        ]
-    ].
-
-        
-    ^ '$' , 'Header: ' , CVSRoot , '/' , moduleDir , '/' , packageDir , '/' , fileName , ',v $'
-      , special
-
-    "Created: 9.12.1995 / 21:28:11 / cg"
-    "Modified: 17.9.1996 / 15:57:15 / cg"
-!
-
 releaseAndRemove:tempdir outputTo:outputFilename
     "cleanup; release tree towards cvs and remove the temporary tree"
 
@@ -1518,11 +1481,13 @@
 
     cmdOut remove.
     tempdir recursiveRemove.
+
+    Class addChangeRecordForClassCheckIn:aClass.
     ^ true
 
     "Created: 9.12.1995 / 19:13:37 / cg"
     "Modified: 23.4.1996 / 14:01:37 / stefan"
-    "Modified: 10.1.1997 / 17:31:23 / cg"
+    "Modified: 14.2.1997 / 20:42:39 / cg"
 !
 
 createModule:moduleName
@@ -1650,6 +1615,17 @@
     "Modified: 10.1.1997 / 17:32:43 / cg"
 !
 
+initialRevisionStringFor:aClass inModule:moduleDir package:packageDir container:fileName
+    "return a string usable as initial revision string"
+
+    ^ self
+        initialRCSRevisionStringFor:aClass 
+        in:(CVSRoot , '/' , moduleDir , '/' , packageDir)
+        container:fileName
+
+    "Modified: 14.2.1997 / 21:00:24 / cg"
+!
+
 removeContainerFor:aClass inModule:moduleDir package:packageDir container:fileName
     "remove a container"
 
@@ -2088,6 +2064,6 @@
 !CVSSourceCodeManager class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic3/CVSSourceCodeManager.st,v 1.122 1997-01-10 18:06:45 cg Exp $ [ce]'
+    ^ '$Header: /cvs/stx/stx/libbasic3/CVSSourceCodeManager.st,v 1.123 1997-01-14 20:24:14 cg Exp $ [ce]'
 ! !
 CVSSourceCodeManager initialize!
--- a/FlatDirectorySourceCodeManager.st	Tue Jan 14 20:47:22 1997 +0100
+++ b/FlatDirectorySourceCodeManager.st	Tue Jan 14 21:25:01 1997 +0100
@@ -11,9 +11,9 @@
 "
 
 
-AbstractSourceCodeManager subclass:#FlatDirectorySourceCodeManager
+NonVersioningSourceCodeManager subclass:#FlatDirectorySourceCodeManager
 	instanceVariableNames:''
-	classVariableNames:'SourceRoot'
+	classVariableNames:''
 	poolDictionaries:''
 	category:'System-SourceCodeManagement'
 !
@@ -45,8 +45,11 @@
     However, it shows how AbstractSourceCodeManager can be subclassed
     if private sourceCodeManagers are to be written.
 
-    [installation - for test only:]
-        SourceCodeManager := FlatDirectorySourceCodeManager.
+    [test]
+        for test/demo only, switch to a sourceCodeManager, which
+        accesses all files directly from the 'source' directory:
+            SourceCodeManager := FlatDirectorySourceCodeManager.
+
 
     [author:]
         Claus Gittinger
@@ -57,44 +60,8 @@
 
 ! !
 
-!FlatDirectorySourceCodeManager class methodsFor:'accessing'!
-
-sourceDirectory
-    "return the forced root.
-     If no sourceRoot was given, a search along the systemPath
-     for a sudirectory named 'source' is made"
-
-    ^ SourceRoot
-
-    "Created: 14.2.1997 / 19:54:20 / cg"
-!
-
-sourceDirectory:aDirectoryName
-    "set the forced root.
-     If no sourceRoot was given, a search along the systemPath
-     for a sudirectory named 'source' is made.
-     Otherwise, only that directory is investigated."
-
-    SourceRoot := aDirectoryName
-
-    "Created: 14.2.1997 / 19:54:51 / cg"
-! !
-
 !FlatDirectorySourceCodeManager class methodsFor:'source code access'!
 
-checkinClass:cls fileName:classFileName directory:packageDir module:moduleDir source:sourceFileName logMessage:logMessage force:force
-    "enter a classes source code (which has been already filed out into sourceFileName)
-     into the source repository. If the force argument is true, no merge is done;
-     instead, the code is checked in as given (Dangerous).
-     Return true if ok, false if not."
-
-    self warn:'This SourceCodeManager only allows readAccess'.
-    ^ false
-
-    "Created: 14.2.1997 / 19:56:03 / cg"
-    "Modified: 14.2.1997 / 20:45:15 / cg"
-!
-
 streamForClass:aClass fileName:fileName revision:revision directory:packageDir module:moduleDir cache:cacheIt
     "extract a source file and return an open readStream on it,
      or nil if the extract failed. If revision is nil or (#newest), take
@@ -131,10 +98,10 @@
             ].
             info notNil ifTrue:[
                 (info at:#revision) ~= revision ifTrue:[
-                    ('FlatDirectorySourceCodeManager [warning]: sourceFile for ' , cls name , ' has rev. ' , (info at:#revision) , '; expected: ' , revision) infoPrintCR.
+                    ('SourceCodeManager [warning]: sourceFile for ' , cls name , ' has rev. ' , (info at:#revision) , '; expected: ' , revision) infoPrintCR.
                 ].
             ] ifFalse:[
-                'FlatDirectorySourceCodeManager [warning]: cannot validate revision of class' infoPrintCR.
+                'SourceCodeManager [warning]: cannot validate revision of class' infoPrintCR.
             ].
         ].
 
@@ -143,87 +110,11 @@
 
     ^ nil
 
-    "Modified: 14.2.1997 / 20:47:12 / cg"
-! !
-
-!FlatDirectorySourceCodeManager class methodsFor:'source code administration'!
-
-checkForExistingContainerInModule:moduleDir package:packageDir container:fileName
-    "check for a container to exist"
-
-    ^ false
-
-    "Created: 14.2.1997 / 20:01:44 / cg"
-!
-
-checkForExistingModule:moduleDir
-    "check for a module to exist"
-
-    ^ false
-
-    "Created: 14.2.1997 / 20:01:55 / cg"
-!
-
-checkForExistingModule:moduleDir package:packageDir
-    "check for a package to exist"
-
-    ^ false
-
-    "Created: 14.2.1997 / 20:02:03 / cg"
-!
-
-createContainerFor:aClass inModule:moduleDir package:packageDir container:fileName
-    "create a container - this does an initial checkin"
-
-    ^ false
-
-    "Created: 14.2.1997 / 20:02:28 / cg"
-!
-
-createModule:moduleName
-    "create a module directory"
-
-    ^ false
-
-    "Created: 14.2.1997 / 20:02:41 / cg"
-!
-
-createModule:moduleDirName package:packageDirName
-    "create a package directory"
-
-    ^ false
-
-    "Created: 14.2.1997 / 20:02:50 / cg"
-!
-
-removeContainerFor:aClass inModule:moduleDir package:packageDir container:fileName
-    "remove a container"
-
-    ^ false
-
-    "Created: 14.2.1997 / 20:03:00 / cg"
-!
-
-revisionLogOf:cls fromRevision:rev1 toRevision:rev2 fileName:classFileName directory:packageDir module:moduleDir
-    "return info about the repository container and
-     (part of) the revisionlog as a collection of revision entries.
-     Return nil on failure."
-
-    ^ nil
-
-    "Created: 14.2.1997 / 20:03:18 / cg"
-!
-
-writeHistoryLogSince:timeGoal filterSTSources:filter filterUser:userFilter to:aStream
-    "send a full historyLog to some stream"
-
-    ^ nil
-
-    "Created: 14.2.1997 / 20:03:28 / cg"
+    "Modified: 14.2.1997 / 20:52:19 / cg"
 ! !
 
 !FlatDirectorySourceCodeManager class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic3/Attic/FlatDirectorySourceCodeManager.st,v 1.2 1997-01-14 19:47:22 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic3/Attic/FlatDirectorySourceCodeManager.st,v 1.3 1997-01-14 20:25:01 cg Exp $'
 ! !