- GitIndex
authorvranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
Tue, 02 Oct 2012 13:53:10 +0000
changeset 24 bce2a03d1070
parent 23 5cbdd3cb7ce4
child 25 7a92ac0c9318
- GitIndex class definition added: #on: - GitRemoteHandle class definition - GitTree class definition - GitSubmoduleStatusType class definition - GitCommitterQuery class definition - GitStatusOptionsStructure class definition - GitConfigFileStructure class definition - GitIndexerStatsStructure class definition - GitCvarMapStructure class definition - GitTreeEntryHandle class definition - GitRepository class definition added: #getIndex #index #index: changed: #workingCopy - GitDiffListHandle class definition - stx_libscm_git changed: #classNamesAndAttributes #extensionMethodNames #preRequisites - GitIndexHandle class definition - GitReference class definition - GitDiffDeltaStructure class definition - GitSignature class definition - GitRemote class definition - GitReflogEntryHandle class definition - GitDiffFileStructure class definition - GitConfigHandle class definition - GitObjectHandle class definition - GitDiffRangeStructure class definition - GitCommit class definition - GitSubmoduleIgnoreType class definition - GitIndexEntryStructure class definition - GitSourceCodeManagementSettingsAppl2 added:5 methods - GitPrimitives class definition - GitRevwalkHandle class definition - GitRefType class definition - GitStringArray class definition - GitLibraryObject class definition - GitOdbStreamStructure class definition - GitTests class definition - GitObjectType class definition - GitSubmoduleHandle class definition - GitWorkingCopyEntry class definition - GitSourceCodeManager2 added:22 methods - GitRefspecHandle class definition - GitObject class definition - GitOdbHandle class definition - GitOdbObjectHandle class definition - GitResetType class definition - GitAttrType class definition - GitIndexerStreamHandle class definition - GitReferenceHandle class definition - GitBranchType class definition - GitTag class definition - GitNoteHandle class definition - GitCommitHandle class definition - GitTreewalkModeType class definition - GitCvarType class definition - GitDeltaType class definition - GitErrorStructure class definition - GitRemoteHeadStructure class definition - GitRepositoryInitOptionsStructure class definition - GitIndexEntryUnmergedStructure class definition - GitFilemodeType class definition - GitTagHandle class definition - GitIndexerHandle class definition - GitNoteDataStructure class definition - GitWorkingCopy class definition changed: #index - GitTreebuilderHandle class definition - GitRepositoryObject class definition - GitCommand class definition - GitOid class definition - GitSignatureStructure class definition - GitSubmoduleUpdateType class definition - GitIndexTimeStructure class definition - GitBlobHandle class definition - GitSignatureQuery class definition - GitCheckoutStrategy class definition - GitStatusCodes class definition - GitOdbBackendStructure class definition - GitReflogHandle class definition - GitError class definition - GitStructure class definition - GitRemoteCallbacksStructure class definition - GitCheckoutOptions class definition - GitRemoteCompletionType class definition - GitRepositoriesResource class definition - GitRepositoryHandle class definition - GitAuthorQuery class definition - GitOidShortenHandle class definition - GitErrorKlass class definition - GitTimeStructure class definition - GitTreeHandle class definition - GitStatusShowType class definition - GitDiffOptionsStructure class definition - extensions ...
git/GitCommand.st
git/GitIndex.st
git/GitRepositoriesResource.st
git/GitRepository.st
git/GitSourceCodeManagementSettingsAppl2.st
git/GitSourceCodeManager2.st
git/GitStructure.st
git/GitTests.st
git/GitWorkingCopy.st
git/Make.proto
git/Make.spec
git/abbrev.stc
git/bc.mak
git/git.rc
git/libInit.cc
git/stx_libscm_git.st
--- a/git/GitCommand.st	Sun Sep 30 22:13:12 2012 +0000
+++ b/git/GitCommand.st	Tue Oct 02 13:53:10 2012 +0000
@@ -1,7 +1,7 @@
 "{ Package: 'stx:libscm/git' }"
 
 Object subclass:#GitCommand
-	instanceVariableNames:''
+	instanceVariableNames:'workingDirectory'
 	classVariableNames:'GitExecutable'
 	poolDictionaries:''
 	category:'SCM-Git-Internal'
@@ -94,29 +94,66 @@
     "Created: / 01-10-2012 / 00:06:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!GitCommand methodsFor:'accessing'!
+
+workingDirectory
+    ^workingDirectory notNil ifTrue:[
+        workingDirectory
+    ] ifFalse: [
+        Filename currentDirectory pathName
+    ]
+
+    "Created: / 11-05-2011 / 08:26:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified (format): / 27-12-2011 / 15:54:08 / dundee"
+    "Modified: / 01-10-2012 / 14:38:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+workingDirectory:aStringOrFilename
+    aStringOrFilename asFilename isDirectory ifFalse:[
+        self error:'Working directory does not exist'.
+        ^self.
+    ].    
+    workingDirectory := aStringOrFilename asString.
+
+    "Modified: / 01-10-2012 / 14:38:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !GitCommand methodsFor:'executing'!
 
 execute
-    |pipe output pid environment|
+    | pipe output pid environment sema status retval |
 
     pipe := NonPositionableExternalStream makePipe.
     output := pipe first.
     environment := OperatingSystem getEnvironment copy.
 
     environment at:'LANG' put:'C'.
-    pid := OperatingSystem exec:(self executable) withArguments:(self arguments)
-        environment:environment
-        fileDescriptors:{0 . pipe second fileDescriptor . pipe second fileDescriptor}
-        fork:true 
-        newPgrp:false 
-        inDirectory:self workingDirectory.
+    sema := Semaphore new name: 'waiting for git command to finish'.
+    Processor monitor:[
+        pid := OperatingSystem exec:(self executable) withArguments:(self arguments)
+            environment:environment
+            fileDescriptors:{0 . pipe second fileDescriptor . pipe second fileDescriptor}
+            fork:true 
+            newPgrp:false 
+            inDirectory:self workingDirectory
+    ] action:[:stat |
+        status := stat.
+        sema signal.
+    ].
+    
+
     pipe second close.
     pid isNil ifTrue:[
         self error:'Cannot execute git command'.
         output close.
         ^ self.
     ].
-    ^ self parse: output.
+    retval := self parse: output.
+    sema wait.
+    status success ifFalse:[
+        GitError raiseErrorString: 'git command failed'.
+    ].
+    ^retval
 
     "
         SVNv2::Command info: 'https://swing.fit.cvut.cz/svn/stx/libsvn'
@@ -125,7 +162,7 @@
     "Created: / 11-05-2011 / 07:45:00 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Modified: / 17-12-2011 / 19:22:00 / dundee"
     "Modified (format): / 27-12-2011 / 15:53:54 / dundee"
-    "Modified: / 30-09-2012 / 23:48:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 01-10-2012 / 14:06:08 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !GitCommand methodsFor:'private'!
@@ -217,14 +254,6 @@
 
     "Created: / 11-05-2011 / 07:58:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
     "Created: / 17-12-2011 / 17:02:41 / dundee"
-!
-
-workingDirectory
-
-    ^ Filename currentDirectory pathName
-
-    "Created: / 11-05-2011 / 08:26:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-    "Modified (format): / 27-12-2011 / 15:54:08 / dundee"
 ! !
 
 !GitCommand::clone methodsFor:'accessing'!
@@ -286,9 +315,9 @@
 argumentsCommandOn:stream
     "Called to get command specific options"
 
-    stream nextPutAll: remote.
+    stream nextPut: remote.
     refspec notNil ifTrue:[
-        stream nextPutAll: refspec.
+        stream nextPut: refspec.
     ]
 
     "Created: / 30-09-2012 / 23:44:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
--- a/git/GitIndex.st	Sun Sep 30 22:13:12 2012 +0000
+++ b/git/GitIndex.st	Tue Oct 02 13:53:10 2012 +0000
@@ -4,10 +4,28 @@
 	instanceVariableNames:'repository'
 	classVariableNames:''
 	poolDictionaries:'GitObjectType'
-	category:'SCM-Git-Model'
+	category:'SCM-Git-Core'
 !
 
 
+!GitIndex class methodsFor:'instance creation'!
+
+on: path
+    "Creates new index on given file. If the file does not exist,
+     the index is only in-memory. To write it to disk, use #write"
+
+    | err ref |
+
+    ref := ByteArray new: ExternalBytes sizeofPointer.
+    err := GitPrimitives prim_git_index_open: ref index_path: path.
+            GitError raiseIfError: err.
+    ^GitIndex new
+        setHandleFromRef: ref;
+        yourself
+
+    "Created: / 02-10-2012 / 15:39:18 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !GitIndex methodsFor:'accessing'!
 
 tree
--- a/git/GitRepositoriesResource.st	Sun Sep 30 22:13:12 2012 +0000
+++ b/git/GitRepositoriesResource.st	Tue Oct 02 13:53:10 2012 +0000
@@ -29,7 +29,7 @@
 	instanceVariableNames:'repositoryDirectory'
 	classVariableNames:'GitRepositoriesArchiveDir'
 	poolDictionaries:''
-	category:'SCM-Git-Tests'
+	category:'SCM-Git-Core-Tests'
 !
 
 !GitRepositoriesResource class methodsFor:'documentation'!
--- a/git/GitRepository.st	Sun Sep 30 22:13:12 2012 +0000
+++ b/git/GitRepository.st	Tue Oct 02 13:53:10 2012 +0000
@@ -1,10 +1,10 @@
 "{ Package: 'stx:libscm/git' }"
 
 GitLibraryObject subclass:#GitRepository
-	instanceVariableNames:'path workdir index remotes'
+	instanceVariableNames:'path workdir remotes index'
 	classVariableNames:''
 	poolDictionaries:'GitObjectType GitStatusCodes'
-	category:'SCM-Git-Model'
+	category:'SCM-Git-Core'
 !
 
 
@@ -81,6 +81,36 @@
     "Created: / 25-09-2012 / 10:48:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+index
+    "Return repository working index"
+
+    index isNil ifTrue:[
+        | ref err |
+
+        ref := ByteArray new: ExternalBytes sizeofPointer.
+        err := GitPrimitives prim_git_repository_index: ref repo: handle.
+               GitError raiseIfError: err.
+        index := GitIndex new
+                setHandleFromRef: ref;
+                setRepository: self;
+                yourself
+    ].
+    ^index
+
+    "Created: / 02-10-2012 / 15:33:15 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+index: aGitIndex
+    "Sets repository working index to given index"
+
+    self assert: (aGitIndex isKindOf: aGitIndex).
+    index := nil.
+    GitPrimitives prim_git_repository_set_index: handle index: aGitIndex getHandle.
+    index := aGitIndex
+
+    "Created: / 02-10-2012 / 15:33:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 path
     ^ path
 !
@@ -103,10 +133,7 @@
 !
 
 workingCopy
-    self isBare ifTrue:[
-        GitError raiseErrorString: 'Repository is bare'.
-    ].
-    ^GitWorkingCopy new setRepository: self
+    ^self workingCopyOn: self path
 
     "Created: / 19-09-2012 / 15:32:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
@@ -174,6 +201,7 @@
     "pushes all changes to given remote repository"
 
     GitCommand push
+        workingDirectory: self path;
         remote: aGitRemote name;
         execute
 
@@ -287,6 +315,12 @@
     "Created: / 17-09-2012 / 21:20:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+getIndex
+    ^index
+
+    "Created: / 02-10-2012 / 15:40:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 remoteNamed: name
     | ref err |
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/git/GitSourceCodeManagementSettingsAppl2.st	Tue Oct 02 13:53:10 2012 +0000
@@ -0,0 +1,88 @@
+"{ Package: 'stx:libscm/git' }"
+
+AbstractSourceCodeManagementSettingsAppl subclass:#GitSourceCodeManagementSettingsAppl2
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SCM-Git-StX-Config-UI'
+!
+
+
+!GitSourceCodeManagementSettingsAppl2 class methodsFor:'image specs'!
+
+defaultIcon
+    ^ self defaultIcon2
+
+    "Created: / 22-12-2011 / 13:47:11 / cg"
+!
+
+defaultIcon1
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self defaultIcon1 inspect
+     ImageEditor openOnClass:self andSelector:#defaultIcon1
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:'GitSourceCodeManagementSettingsAppl class defaultIcon1'
+        ifAbsentPut:[(Depth8Image new) width: 24; height: 24; photometric:(#palette); bitsPerSample:(#[8]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CT5MST5MP@5MST5MST@MST5MST5MP@@@CT5MST5MP@5MST5MST@MST5MST5MP@@@CT5MST5MP@5MST5
+MST@MST5MST5@@@@@CT5MST5MP@5MST5MST@MST5MST5@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@M#X@@@@@@CX6@@@@@@@6M#X@@@@@@@@@M#X@@@@@@CX6@@@@@@@6M#X@@@@@@CX6M#X6M @6M#X6M#X@M#X6M#X6M @@
+@CX6M#X6M @6M#X6M#X@M#X6M#X6M @@@@@@M#X@@@@@@CX6@@@@@@@6M#X@@@@@@@@@M#X@@@@@@CX6@@@@@@@6M#X@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@') ; colorMapFromArray:#[143 136 136 208 208 208 192 192 184 176 176 176 175 168 168 176 168 168 191 184 184 191 176 176 159 152 144 160 160 160 239 232 224 192 184 184 159 152 160 207 192 200 207 200 200 144 144 144 224 224 224 160 152 160 127 120 120 144 144 136 128 128 128 111 104 104 207 200 208 239 232 240 95 88 88 96 96 96 79 72 80 112 112 120 192 192 200 223 208 208 111 104 96 80 80 80 64 64 64 223 216 216 128 120 128 31 24 24 32 32 24 79 72 64 64 56 56 47 40 40 240 240 240 239 224 224 63 48 48 191 184 176 112 112 104 64 64 56 63 56 56 48 48 48 48 40 48 127 112 120 160 160 168 208 200 208 224 224 216 192 0 0 0 128 0]; mask:((Depth1Image new) width: 24; height: 24; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@@@@@@@@@@@@@@@@@@@@_/78_/78@@@@@@@@@@@@FCA FCA _/78_/78FCA FCA @@@@@@@@@@@@@@@@@@@@@@@@') ; yourself); yourself]
+!
+
+defaultIcon2
+    "This resource specification was automatically generated
+     by the ImageEditor of ST/X."
+
+    "Do not manually edit this!! If it is corrupted,
+     the ImageEditor may not be able to read the specification."
+
+    "
+     self defaultIcon2 inspect
+     ImageEditor openOnClass:self andSelector:#defaultIcon2
+     Icon flushCachedIcons
+    "
+
+    <resource: #image>
+
+    ^Icon
+        constantNamed:'GitSourceCodeManagementSettingsAppl2 defaultIcon2'
+        ifAbsentPut:[(Depth8Image new) width: 24; height: 24; photometric:(#palette); bitsPerSample:(#[8]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CP4MCP4@CP4MCP4@CP4MCP4@@@@@@@@@C 8NC 8@C 8NC 8@
+C 8NC 8@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@,B@@@@@@,B@@@@@@,B@@@@@@@@@@@@@@,BB0,@
+@@,BB0,@@@,BB0,@@@@@@@@@@ HB@ H@@ HB@ H@@ HB@ H@@@@@@@@@B0,BB0H@B0,BB0H@B0,BB0H@@@@@@@@@B0,BB0@@B0,BB0@@B0,BB0@@@@@@@@@@
+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HB@TEC0@@@@@@@@@@@@@@@@@@@@@@@@THB@ HAP@@@@@@@@@@@@@@@@@@@@@@@P H@@<@@@T@@@@@@@@@CP4@@@@@
+@@@@AP,E@@@@@@@@@@@@@@@@CP4@@@@@@@TEB@\HA @@BP@@@@@@@@@@CP4@@@@@@@@EA0 E@@@IBP$@@@@@@@@@CP4@@@@@@@@@APP@@@$C@00I@@@MCP4M
+CP4MCP4M@@@@@@@@@@@JBP$I@@@MCP4MCP4MCP4M@@@I@@<@@@@IBP@@@@@@@@@@CP4@@@@@@@@@BP$IBP$I@@@@@@@@@@@@CP4@@@@@@@@@@@(IBP$@@@@@
+@@@@@@@@CP4@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CP4@@@@@') ; colorMapFromArray:#[0 0 0 0 64 0 0 128 0 32 32 32 32 64 32 32 96 32 32 128 32 32 128 64 32 160 64 64 64 64 96 96 96 96 192 128 128 128 128 192 0 0 209 87 87 255 255 255]; mask:((Depth1Image new) width: 24; height: 24; photometric:(#blackIs0); bitsPerSample:(#[1]); samplesPerPixel:(1); bits:(ByteArray fromPackedString:'@@@@@@@@@>>>@>>>@@@@@@@@@XXX@^^^@>>>@<<<@LLL@@@@A<@@C<@@GR@0G@@0_$@0ON@0F_O?@OO?JL@0G<@0C8@0@@@0') ; yourself); yourself]
+! !
+
+!GitSourceCodeManagementSettingsAppl2 class methodsFor:'queries'!
+
+managerClass
+    "backlink to my manager class (needed by the settings app)"
+
+    ^ GitSourceCodeManager2
+
+    "Created: / 19-04-2011 / 12:46:52 / cg"
+    "Modified: / 02-10-2012 / 14:30:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!GitSourceCodeManagementSettingsAppl2 class methodsFor:'documentation'!
+
+version_SVN
+    ^ '$Id::                                                                                                                        $'
+! !
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/git/GitSourceCodeManager2.st	Tue Oct 02 13:53:10 2012 +0000
@@ -0,0 +1,170 @@
+"{ Package: 'stx:libscm/git' }"
+
+AbstractSourceCodeManager subclass:#GitSourceCodeManager2
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SCM-Git-StX'
+!
+
+
+!GitSourceCodeManager2 class methodsFor:'accessing'!
+
+repositoryNameForPackage:packageId
+    "Return the repository ULR for the given package. 
+     Used for testing/debugging source code management configuration"
+
+    ^ self shouldImplement
+! !
+
+!GitSourceCodeManager2 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 shouldImplement
+!
+
+checkoutModule:aModule directory:aPackage andDo:aBlock
+    "check out everything from a package into a temporary directory.
+     Then evaluate aBlock, passing the name of that temp-directory.
+     Afterwards, the tempDir is removed.
+     Return true, if OK, false if any error occurred."
+
+    ^ self shouldImplement
+!
+
+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 shouldImplement
+! !
+
+!GitSourceCodeManager2 class methodsFor:'basic administration'!
+
+checkForExistingContainer:fileName inModule:moduleName directory:dirName
+    "check for a container to be present"
+
+    ^ self shouldImplement
+!
+
+checkForExistingModule:moduleName
+    "check for a module directory to be present"
+
+    ^ self shouldImplement
+!
+
+checkForExistingModule:moduleDir directory:packageDir
+    "check for a package directory to be present"
+
+    ^ self shouldImplement
+!
+
+createContainerFor:aClass inModule:moduleName directory:dirName container:fileName
+    "create a new container & check into it an initial version of aClass"
+
+    ^ self shouldImplement
+!
+
+createModule:moduleName
+    "create a new module directory"
+
+    ^ self shouldImplement
+!
+
+createModule:module directory:directory
+    "create a new package directory"
+
+    ^ self shouldImplement
+!
+
+initialRevisionStringFor:aClass inModule:moduleDir directory:packageDir container:fileName
+    "return a string usable as initial revision string"
+
+    ^ self shouldImplement
+!
+
+revisionLogOf:clsOrNil fromRevision:rev1OrNil toRevision:rev2OrNil numberOfRevisions:limitOrNil 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 shouldImplement
+! !
+
+!GitSourceCodeManager2 class methodsFor:'queries'!
+
+isResponsibleForPackage:aStringOrSymbol
+    "Returns true if the manager can handle source code for given package.
+     
+     Answering true does not imply that receiver is configured default
+     manager for that package, it only means that it has a repository
+     configured for given package."
+
+    ^ self shouldImplement
+!
+
+managerTypeName
+    "superclass AbstractSourceCodeManager class says that I am responsible to implement this method"
+
+    ^ 'Git+'
+
+    "Modified: / 02-10-2012 / 13:25:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+settingsApplicationClass
+    "link to my settings application (needed for the settings dialog"
+
+    ^ GitSourceCodeManagementSettingsAppl2
+
+    "Modified: / 02-10-2012 / 14:29:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!GitSourceCodeManager2 class methodsFor:'source code administration'!
+
+getExistingContainersInModule:aModule directory:aPackage
+    "{ Pragma: +optSpace }"
+
+    ^ self shouldImplement
+!
+
+getExistingDirectoriesInModule:aModule
+    "{ Pragma: +optSpace }"
+
+    ^ self shouldImplement
+!
+
+getExistingModules
+    "{ Pragma: +optSpace }"
+
+    ^ self shouldImplement
+!
+
+removeContainer:container inModule:module directory:directory
+    "remove a container"
+
+    ^ self shouldImplement
+!
+
+revisionInfoFromString:aString
+    "{ Pragma: +optSpace }"
+
+    ^ self shouldImplement
+! !
+
+!GitSourceCodeManager2 class methodsFor:'subclass responsibility'!
+
+reportHistoryLogSince:timeGoal filterSTSources:filter filterUser:userFilter filterRepository:repositoryFilter filterModules:moduleFilter inTo:aBlock
+    "superclass AbstractSourceCodeManager class says that I am responsible to implement this method"
+
+    ^ self shouldImplement
+! !
+
+!GitSourceCodeManager2 class methodsFor:'documentation'!
+
+version_SVN
+    ^ '$Id::                                                                                                                        $'
+! !
--- a/git/GitStructure.st	Sun Sep 30 22:13:12 2012 +0000
+++ b/git/GitStructure.st	Tue Oct 02 13:53:10 2012 +0000
@@ -4,7 +4,7 @@
 	instanceVariableNames:''
 	classVariableNames:''
 	poolDictionaries:''
-	category:'SCM-Git-Internal-Structures'
+	category:'SCM-Git-Core-Internal-Structures'
 !
 
 
@@ -16,6 +16,12 @@
     "Created: / 19-09-2012 / 14:04:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+fromExternalAddress:anExternalAddress
+    ^ self basicNew fromExternalAddress:anExternalAddress
+
+    "Created: / 01-10-2012 / 14:26:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 new
     ^self new: self structSize
 
--- a/git/GitTests.st	Sun Sep 30 22:13:12 2012 +0000
+++ b/git/GitTests.st	Tue Oct 02 13:53:10 2012 +0000
@@ -4,7 +4,7 @@
 	instanceVariableNames:'repositories'
 	classVariableNames:''
 	poolDictionaries:''
-	category:'SCM-Git-Tests'
+	category:'SCM-Git-Core-Tests'
 !
 
 
--- a/git/GitWorkingCopy.st	Sun Sep 30 22:13:12 2012 +0000
+++ b/git/GitWorkingCopy.st	Tue Oct 02 13:53:10 2012 +0000
@@ -4,7 +4,7 @@
 	instanceVariableNames:'reference commit index root detached'
 	classVariableNames:''
 	poolDictionaries:'GitStatusCodes'
-	category:'SCM-Git-Model'
+	category:'SCM-Git-Core'
 !
 
 
@@ -23,16 +23,21 @@
     "Get the Index file for this repository."
 
     index isNil ifTrue:[
-        | ref err |
+        index := repository getIndex.
+        index isNil ifTrue:[
+            (repository workdir asString = repository path asString) ifTrue:[
+                "/ OK, this is a default working copy..."
+                index := repository index. "/ lazily initialized
+            ] ifFalse:[
+                | indexPath |
+                "/ Hmm...creating external working copy, create one"
 
-        ref := ByteArray new: ExternalBytes sizeofPointer.
-        err := GitPrimitives prim_git_repository_index: ref repo: handle.
-        GitError raiseIfError: err.
-
-        index := GitIndex new
-            setHandleFromRef: ref;
-            setRepository: repository;
-            yourself
+                indexPath := (repository path asFilename / '.git' / 'index_', self hash hexPrintString) pathName.
+                index := GitIndex on: indexPath.
+                index write.
+                repository index: index.
+            ]
+        ]
     ].
     ^ index
 
@@ -76,19 +81,19 @@
 !
 
 commit: message
-    self commit: message tree: index tree
+    ^self commit: message tree: index tree
 
     "Created: / 25-09-2012 / 10:19:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 commit: message tree: tree
-    self commit: message tree: tree parents: (Array with: commit)
+    ^self commit: message tree: tree parents: (Array with: self commit)
 
     "Created: / 25-09-2012 / 11:09:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 commit: message tree: tree parents: parents 
-    self commit: message tree: tree parents: parents update: (detached ifTrue:[nil] ifFalse:[reference]).
+    ^self commit: message tree: tree parents: parents update: (detached ifTrue:[nil] ifFalse:[reference]).
 
     "Created: / 25-09-2012 / 11:11:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
--- a/git/Make.proto	Sun Sep 30 22:13:12 2012 +0000
+++ b/git/Make.proto	Tue Oct 02 13:53:10 2012 +0000
@@ -34,7 +34,7 @@
 # add the path(es) here:,
 # ********** OPTIONAL: MODIFY the next lines ***
 # LOCALINCLUDES=-Ifoo -Ibar
-LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/goodies/sunit -I$(INCLUDE_TOP)/stx/libbasic
+LOCALINCLUDES= -I$(INCLUDE_TOP)/stx/libview -I$(INCLUDE_TOP)/stx/libview2 -I$(INCLUDE_TOP)/stx/goodies/sunit -I$(INCLUDE_TOP)/stx/libbasic -I$(INCLUDE_TOP)/stx/libbasic3 -I$(INCLUDE_TOP)/stx/libtool
 
 
 # if you need any additional defines for embedded C code,
@@ -108,9 +108,20 @@
 prereq: $(REQUIRED_SUPPORT_DIRS)
 	cd ../../libbasic && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../libbasic2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../../libcomp && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../libview && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../../libdb && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../libview2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../../libboss && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../../libdb/libodbc && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../../libdb/libsqlite && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../goodies/sunit && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../../libui && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../../libbasic3 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../../libwidg && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../../libhtml && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../../libwidg2 && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
+	cd ../../libtool && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 	cd ../../librun && $(MAKE) "CFLAGS_LOCAL=$(GLOBALDEFINES)"
 
 
@@ -161,6 +172,8 @@
 $(OUTDIR)GitResetType.$(O) GitResetType.$(H): GitResetType.st $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)GitRevwalkHandle.$(O) GitRevwalkHandle.$(H): GitRevwalkHandle.st $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)GitSignatureQuery.$(O) GitSignatureQuery.$(H): GitSignatureQuery.st $(INCLUDE_TOP)/stx/libbasic/Query.$(H) $(INCLUDE_TOP)/stx/libbasic/Notification.$(H) $(INCLUDE_TOP)/stx/libbasic/GenericException.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)GitSourceCodeManagementSettingsAppl2.$(O) GitSourceCodeManagementSettingsAppl2.$(H): GitSourceCodeManagementSettingsAppl2.st $(INCLUDE_TOP)/stx/libtool/AbstractSourceCodeManagementSettingsAppl.$(H) $(INCLUDE_TOP)/stx/libtool/AbstractSettingsApplication.$(H) $(INCLUDE_TOP)/stx/libview2/ApplicationModel.$(H) $(INCLUDE_TOP)/stx/libview2/Model.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)GitSourceCodeManager2.$(O) GitSourceCodeManager2.$(H): GitSourceCodeManager2.st $(INCLUDE_TOP)/stx/libbasic3/AbstractSourceCodeManager.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)GitStatusCodes.$(O) GitStatusCodes.$(H): GitStatusCodes.st $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)GitStatusShowType.$(O) GitStatusShowType.$(H): GitStatusShowType.st $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)GitStructure.$(O) GitStructure.$(H): GitStructure.st $(INCLUDE_TOP)/stx/libbasic/ExternalStructure.$(H) $(INCLUDE_TOP)/stx/libbasic/ExternalBytes.$(H) $(INCLUDE_TOP)/stx/libbasic/UninterpretedBytes.$(H) $(INCLUDE_TOP)/stx/libbasic/ArrayedCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/SequenceableCollection.$(H) $(INCLUDE_TOP)/stx/libbasic/Collection.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
--- a/git/Make.spec	Sun Sep 30 22:13:12 2012 +0000
+++ b/git/Make.spec	Tue Oct 02 13:53:10 2012 +0000
@@ -135,6 +135,8 @@
 	GitCommand \
 	GitStringArray \
 	GitRemote \
+	GitSourceCodeManagementSettingsAppl2 \
+	GitSourceCodeManager2 \
 
 
 
@@ -225,6 +227,8 @@
     $(OUTDIR)GitCommand.$(O) \
     $(OUTDIR)GitStringArray.$(O) \
     $(OUTDIR)GitRemote.$(O) \
+    $(OUTDIR)GitSourceCodeManagementSettingsAppl2.$(O) \
+    $(OUTDIR)GitSourceCodeManager2.$(O) \
     $(OUTDIR)extensions.$(O) \
 
 
--- a/git/abbrev.stc	Sun Sep 30 22:13:12 2012 +0000
+++ b/git/abbrev.stc	Tue Oct 02 13:53:10 2012 +0000
@@ -1,90 +1,92 @@
 # automagically generated by the project definition
 # this file is needed for stc to be able to compile modules independently.
 # it provides information about a classes filename, category and especially namespace.
-GitLibraryObject GitLibraryObject stx:libscm/git 'SCM-Git-Model' 0
-GitRepositoryObject GitRepositoryObject stx:libscm/git 'SCM-Git-Model' 0
-GitStatusCodes GitStatusCodes stx:libscm/git 'SCM-Git-Internal-Constants' 0
-GitErrorKlass GitErrorKlass stx:libscm/git 'Git-Internal-Constants' 0
-GitStructure GitStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitObjectType GitObjectType stx:libscm/git 'Git-Internal-Constants' 0
-GitError GitError stx:libscm/git 'SCM-Git-Exceptions' 1
-GitObject GitObject stx:libscm/git 'SCM-Git-Model' 0
-GitCommit GitCommit stx:libscm/git 'SCM-Git-Model' 0
-GitOid GitOid stx:libscm/git 'SCM-Git-Model' 0
-GitRepository GitRepository stx:libscm/git 'SCM-Git-Model' 0
-GitTree GitTree stx:libscm/git 'SCM-Git-Model' 0
+GitLibraryObject GitLibraryObject stx:libscm/git 'SCM-Git-Core' 0
+GitRepositoryObject GitRepositoryObject stx:libscm/git 'SCM-Git-Core' 0
+GitStatusCodes GitStatusCodes stx:libscm/git 'SCM-Git-Core-Internal-Constants' 0
+GitErrorKlass GitErrorKlass stx:libscm/git 'SCM-Git-Core-Internal-Constants' 0
+GitStructure GitStructure stx:libscm/git 'SCM-Git-Core-Internal-Structures' 1
+GitObjectType GitObjectType stx:libscm/git 'SCM-Git-Core-Internal-Constants' 0
+GitError GitError stx:libscm/git 'SCM-Git-Core-Exceptions' 1
+GitObject GitObject stx:libscm/git 'SCM-Git-Core' 0
+GitCommit GitCommit stx:libscm/git 'SCM-Git-Core' 0
+GitOid GitOid stx:libscm/git 'SCM-Git-Core' 0
+GitRepository GitRepository stx:libscm/git 'SCM-Git-Core' 0
+GitTree GitTree stx:libscm/git 'SCM-Git-Core' 0
 stx_libscm_git stx_libscm_git stx:libscm/git '* Projects & Packages *' 3
-GitAttrType GitAttrType stx:libscm/git 'Git-Internal-Constants' 0
-GitBlobHandle GitBlobHandle stx:libscm/git 'Git-Internal-Handles' 0
-GitBranchType GitBranchType stx:libscm/git 'Git-Internal-Constants' 0
-GitCommitHandle GitCommitHandle stx:libscm/git 'Git-Internal-Handles' 0
-GitConfigFileStructure GitConfigFileStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitConfigHandle GitConfigHandle stx:libscm/git 'Git-Internal-Handles' 0
-GitCvarMapStructure GitCvarMapStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitCvarType GitCvarType stx:libscm/git 'Git-Internal-Constants' 0
-GitDeltaType GitDeltaType stx:libscm/git 'Git-Internal-Constants' 0
-GitDiffDeltaStructure GitDiffDeltaStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitDiffFileStructure GitDiffFileStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitDiffListHandle GitDiffListHandle stx:libscm/git 'Git-Internal-Handles' 0
-GitDiffOptionsStructure GitDiffOptionsStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitDiffRangeStructure GitDiffRangeStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitErrorStructure GitErrorStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitFilemodeType GitFilemodeType stx:libscm/git 'Git-Internal-Constants' 0
-GitIndexEntryStructure GitIndexEntryStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitIndexEntryUnmergedStructure GitIndexEntryUnmergedStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitIndexHandle GitIndexHandle stx:libscm/git 'Git-Internal-Handles' 0
-GitIndexTimeStructure GitIndexTimeStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitIndexerHandle GitIndexerHandle stx:libscm/git 'Git-Internal-Handles' 0
-GitIndexerStatsStructure GitIndexerStatsStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitIndexerStreamHandle GitIndexerStreamHandle stx:libscm/git 'Git-Internal-Handles' 0
-GitNoteDataStructure GitNoteDataStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitNoteHandle GitNoteHandle stx:libscm/git 'Git-Internal-Handles' 0
-GitObjectHandle GitObjectHandle stx:libscm/git 'Git-Internal-Handles' 0
-GitOdbBackendStructure GitOdbBackendStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitOdbHandle GitOdbHandle stx:libscm/git 'Git-Internal-Handles' 0
-GitOdbObjectHandle GitOdbObjectHandle stx:libscm/git 'Git-Internal-Handles' 0
-GitOdbStreamStructure GitOdbStreamStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitOidShortenHandle GitOidShortenHandle stx:libscm/git 'Git-Internal-Handles' 0
-GitRefType GitRefType stx:libscm/git 'Git-Internal-Constants' 0
-GitReferenceHandle GitReferenceHandle stx:libscm/git 'Git-Internal-Handles' 0
-GitReflogEntryHandle GitReflogEntryHandle stx:libscm/git 'Git-Internal-Handles' 0
-GitReflogHandle GitReflogHandle stx:libscm/git 'Git-Internal-Handles' 0
-GitRefspecHandle GitRefspecHandle stx:libscm/git 'Git-Internal-Handles' 0
-GitRemoteCallbacksStructure GitRemoteCallbacksStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitRemoteCompletionType GitRemoteCompletionType stx:libscm/git 'Git-Internal-Constants' 0
-GitRemoteHandle GitRemoteHandle stx:libscm/git 'Git-Internal-Handles' 0
-GitRemoteHeadStructure GitRemoteHeadStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitRepositoryHandle GitRepositoryHandle stx:libscm/git 'Git-Internal-Handles' 0
-GitRepositoryInitOptionsStructure GitRepositoryInitOptionsStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitResetType GitResetType stx:libscm/git 'Git-Internal-Constants' 0
-GitRevwalkHandle GitRevwalkHandle stx:libscm/git 'Git-Internal-Handles' 0
-GitSignatureStructure GitSignatureStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitStatusOptionsStructure GitStatusOptionsStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitStatusShowType GitStatusShowType stx:libscm/git 'Git-Internal-Constants' 0
-GitSubmoduleHandle GitSubmoduleHandle stx:libscm/git 'Git-Internal-Handles' 0
-GitSubmoduleIgnoreType GitSubmoduleIgnoreType stx:libscm/git 'Git-Internal-Constants' 0
-GitSubmoduleStatusType GitSubmoduleStatusType stx:libscm/git 'Git-Internal-Constants' 0
-GitSubmoduleUpdateType GitSubmoduleUpdateType stx:libscm/git 'Git-Internal-Constants' 0
-GitTagHandle GitTagHandle stx:libscm/git 'Git-Internal-Handles' 0
-GitTimeStructure GitTimeStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitTreeEntryHandle GitTreeEntryHandle stx:libscm/git 'Git-Internal-Handles' 0
-GitTreeHandle GitTreeHandle stx:libscm/git 'Git-Internal-Handles' 0
-GitTreebuilderHandle GitTreebuilderHandle stx:libscm/git 'Git-Internal-Handles' 0
-GitTreewalkModeType GitTreewalkModeType stx:libscm/git 'Git-Internal-Constants' 0
-GitPrimitives GitPrimitives stx:libscm/git 'SCM-Git-Internal' 0
-GitSignature GitSignature stx:libscm/git 'SCM-Git-Model' 0
-GitWorkingCopy GitWorkingCopy stx:libscm/git 'SCM-Git-Model' 0
-GitTag GitTag stx:libscm/git 'SCM-Git-Model' 0
-GitCheckoutStrategy GitCheckoutStrategy stx:libscm/git 'SCM-Git-Internal-Constants' 0
-GitRepositoriesResource GitRepositoriesResource stx:libscm/git 'SCM-Git-Tests' 1
-GitTests GitTests stx:libscm/git 'SCM-Git-Tests' 1
-GitCheckoutOptions GitCheckoutOptions stx:libscm/git 'SCM-Git-Model' 1
-GitIndex GitIndex stx:libscm/git 'SCM-Git-Model' 0
-GitWorkingCopyEntry GitWorkingCopyEntry stx:libscm/git 'SCM-Git-Model' 0
-GitSignatureQuery GitSignatureQuery stx:libscm/git 'SCM-Git-Exceptions' 1
-GitAuthorQuery GitAuthorQuery stx:libscm/git 'SCM-Git-Exceptions' 1
-GitCommitterQuery GitCommitterQuery stx:libscm/git 'SCM-Git-Exceptions' 1
-GitReference GitReference stx:libscm/git 'SCM-Git-Model' 0
+GitAttrType GitAttrType stx:libscm/git 'SCM-Git-Core-Internal-Constants' 0
+GitBlobHandle GitBlobHandle stx:libscm/git 'SCM-Git-Core-Internal-Handles' 0
+GitBranchType GitBranchType stx:libscm/git 'SCM-Git-Core-Internal-Constants' 0
+GitCommitHandle GitCommitHandle stx:libscm/git 'SCM-Git-Core-Internal-Handles' 0
+GitConfigFileStructure GitConfigFileStructure stx:libscm/git 'SCM-Git-Core-Internal-Structures' 1
+GitConfigHandle GitConfigHandle stx:libscm/git 'SCM-Git-Core-Internal-Handles' 0
+GitCvarMapStructure GitCvarMapStructure stx:libscm/git 'SCM-Git-Core-Internal-Structures' 1
+GitCvarType GitCvarType stx:libscm/git 'SCM-Git-Core-Internal-Constants' 0
+GitDeltaType GitDeltaType stx:libscm/git 'SCM-Git-Core-Internal-Constants' 0
+GitDiffDeltaStructure GitDiffDeltaStructure stx:libscm/git 'SCM-Git-Core-Internal-Structures' 1
+GitDiffFileStructure GitDiffFileStructure stx:libscm/git 'SCM-Git-Core-Internal-Structures' 1
+GitDiffListHandle GitDiffListHandle stx:libscm/git 'SCM-Git-Core-Internal-Handles' 0
+GitDiffOptionsStructure GitDiffOptionsStructure stx:libscm/git 'SCM-Git-Core-Internal-Structures' 1
+GitDiffRangeStructure GitDiffRangeStructure stx:libscm/git 'SCM-Git-Core-Internal-Structures' 1
+GitErrorStructure GitErrorStructure stx:libscm/git 'SCM-Git-Core-Internal-Structures' 1
+GitFilemodeType GitFilemodeType stx:libscm/git 'SCM-Git-Core-Internal-Constants' 0
+GitIndexEntryStructure GitIndexEntryStructure stx:libscm/git 'SCM-Git-Core-Internal-Structures' 1
+GitIndexEntryUnmergedStructure GitIndexEntryUnmergedStructure stx:libscm/git 'SCM-Git-Core-Internal-Structures' 1
+GitIndexHandle GitIndexHandle stx:libscm/git 'SCM-Git-Core-Internal-Handles' 0
+GitIndexTimeStructure GitIndexTimeStructure stx:libscm/git 'SCM-Git-Core-Internal-Structures' 1
+GitIndexerHandle GitIndexerHandle stx:libscm/git 'SCM-Git-Core-Internal-Handles' 0
+GitIndexerStatsStructure GitIndexerStatsStructure stx:libscm/git 'SCM-Git-Core-Internal-Structures' 1
+GitIndexerStreamHandle GitIndexerStreamHandle stx:libscm/git 'SCM-Git-Core-Internal-Handles' 0
+GitNoteDataStructure GitNoteDataStructure stx:libscm/git 'SCM-Git-Core-Internal-Structures' 1
+GitNoteHandle GitNoteHandle stx:libscm/git 'SCM-Git-Core-Internal-Handles' 0
+GitObjectHandle GitObjectHandle stx:libscm/git 'SCM-Git-Core-Internal-Handles' 0
+GitOdbBackendStructure GitOdbBackendStructure stx:libscm/git 'SCM-Git-Core-Internal-Structures' 1
+GitOdbHandle GitOdbHandle stx:libscm/git 'SCM-Git-Core-Internal-Handles' 0
+GitOdbObjectHandle GitOdbObjectHandle stx:libscm/git 'SCM-Git-Core-Internal-Handles' 0
+GitOdbStreamStructure GitOdbStreamStructure stx:libscm/git 'SCM-Git-Core-Internal-Structures' 1
+GitOidShortenHandle GitOidShortenHandle stx:libscm/git 'SCM-Git-Core-Internal-Handles' 0
+GitRefType GitRefType stx:libscm/git 'SCM-Git-Core-Internal-Constants' 0
+GitReferenceHandle GitReferenceHandle stx:libscm/git 'SCM-Git-Core-Internal-Handles' 0
+GitReflogEntryHandle GitReflogEntryHandle stx:libscm/git 'SCM-Git-Core-Internal-Handles' 0
+GitReflogHandle GitReflogHandle stx:libscm/git 'SCM-Git-Core-Internal-Handles' 0
+GitRefspecHandle GitRefspecHandle stx:libscm/git 'SCM-Git-Core-Internal-Handles' 0
+GitRemoteCallbacksStructure GitRemoteCallbacksStructure stx:libscm/git 'SCM-Git-Core-Internal-Structures' 1
+GitRemoteCompletionType GitRemoteCompletionType stx:libscm/git 'SCM-Git-Core-Internal-Constants' 0
+GitRemoteHandle GitRemoteHandle stx:libscm/git 'SCM-Git-Core-Internal-Handles' 0
+GitRemoteHeadStructure GitRemoteHeadStructure stx:libscm/git 'SCM-Git-Core-Internal-Structures' 1
+GitRepositoryHandle GitRepositoryHandle stx:libscm/git 'SCM-Git-Core-Internal-Handles' 0
+GitRepositoryInitOptionsStructure GitRepositoryInitOptionsStructure stx:libscm/git 'SCM-Git-Core-Internal-Structures' 1
+GitResetType GitResetType stx:libscm/git 'SCM-Git-Core-Internal-Constants' 0
+GitRevwalkHandle GitRevwalkHandle stx:libscm/git 'SCM-Git-Core-Internal-Handles' 0
+GitSignatureStructure GitSignatureStructure stx:libscm/git 'SCM-Git-Core-Internal-Structures' 1
+GitStatusOptionsStructure GitStatusOptionsStructure stx:libscm/git 'SCM-Git-Core-Internal-Structures' 1
+GitStatusShowType GitStatusShowType stx:libscm/git 'SCM-Git-Core-Internal-Constants' 0
+GitSubmoduleHandle GitSubmoduleHandle stx:libscm/git 'SCM-Git-Core-Internal-Handles' 0
+GitSubmoduleIgnoreType GitSubmoduleIgnoreType stx:libscm/git 'SCM-Git-Core-Internal-Constants' 0
+GitSubmoduleStatusType GitSubmoduleStatusType stx:libscm/git 'SCM-Git-Core-Internal-Constants' 0
+GitSubmoduleUpdateType GitSubmoduleUpdateType stx:libscm/git 'SCM-Git-Core-Internal-Constants' 0
+GitTagHandle GitTagHandle stx:libscm/git 'SCM-Git-Core-Internal-Handles' 0
+GitTimeStructure GitTimeStructure stx:libscm/git 'SCM-Git-Core-Internal-Structures' 1
+GitTreeEntryHandle GitTreeEntryHandle stx:libscm/git 'SCM-Git-Core-Internal-Handles' 0
+GitTreeHandle GitTreeHandle stx:libscm/git 'SCM-Git-Core-Internal-Handles' 0
+GitTreebuilderHandle GitTreebuilderHandle stx:libscm/git 'SCM-Git-Core-Internal-Handles' 0
+GitTreewalkModeType GitTreewalkModeType stx:libscm/git 'SCM-Git-Core-Internal-Constants' 0
+GitPrimitives GitPrimitives stx:libscm/git 'SCM-Git-Core-Internal' 0
+GitSignature GitSignature stx:libscm/git 'SCM-Git-Core' 0
+GitWorkingCopy GitWorkingCopy stx:libscm/git 'SCM-Git-Core' 0
+GitTag GitTag stx:libscm/git 'SCM-Git-Core' 0
+GitCheckoutStrategy GitCheckoutStrategy stx:libscm/git 'SCM-Git-Core-Internal-Constants' 0
+GitRepositoriesResource GitRepositoriesResource stx:libscm/git 'SCM-Git-Core-Tests' 1
+GitTests GitTests stx:libscm/git 'SCM-Git-Core-Tests' 1
+GitCheckoutOptions GitCheckoutOptions stx:libscm/git 'SCM-Git-Core' 1
+GitIndex GitIndex stx:libscm/git 'SCM-Git-Core' 0
+GitWorkingCopyEntry GitWorkingCopyEntry stx:libscm/git 'SCM-Git-Core' 0
+GitSignatureQuery GitSignatureQuery stx:libscm/git 'SCM-Git-Core-Exceptions' 1
+GitAuthorQuery GitAuthorQuery stx:libscm/git 'SCM-Git-Core-Exceptions' 1
+GitCommitterQuery GitCommitterQuery stx:libscm/git 'SCM-Git-Core-Exceptions' 1
+GitReference GitReference stx:libscm/git 'SCM-Git-Core' 0
 GitCommand GitCommand stx:libscm/git 'SCM-Git-Internal' 0
-GitStringArray GitStringArray stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitRemote GitRemote stx:libscm/git 'SCM-Git-Model' 0
+GitStringArray GitStringArray stx:libscm/git 'SCM-Git-Core-Internal-Structures' 1
+GitRemote GitRemote stx:libscm/git 'SCM-Git-Core' 0
+GitSourceCodeManagementSettingsAppl2 GitSourceCodeManagementSettingsAppl2 stx:libscm/git 'SCM-Git-StX-Config-UI' 1
+GitSourceCodeManager2 GitSourceCodeManager2 stx:libscm/git 'SCM-Git-StX' 0
--- a/git/bc.mak	Sun Sep 30 22:13:12 2012 +0000
+++ b/git/bc.mak	Tue Oct 02 13:53:10 2012 +0000
@@ -34,7 +34,7 @@
 
 
 
-LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\goodies\sunit -I$(INCLUDE_TOP)\stx\libbasic
+LOCALINCLUDES= -I$(INCLUDE_TOP)\stx\libview -I$(INCLUDE_TOP)\stx\libview2 -I$(INCLUDE_TOP)\stx\goodies\sunit -I$(INCLUDE_TOP)\stx\libbasic -I$(INCLUDE_TOP)\stx\libbasic3 -I$(INCLUDE_TOP)\stx\libtool
 LOCALDEFINES=
 
 STCLOCALOPT=-package=$(PACKAGE) -I. $(LOCALINCLUDES) -headerDir=. $(STCLOCALOPTIMIZATIONS) $(STCWARNINGS) $(LOCALDEFINES)  -varPrefix=$(LIBNAME)
@@ -52,9 +52,20 @@
 prereq:
 	pushd ..\..\libbasic & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\libbasic2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\libcomp & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\libview & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\libdb & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\libview2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\libboss & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\libdb\libodbc & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\libdb\libsqlite & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\goodies\sunit & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\libui & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\libbasic3 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\libwidg & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\libhtml & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\libwidg2 & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
+	pushd ..\..\libtool & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 	pushd ..\..\librun & $(MAKE_BAT) "CFLAGS_LOCAL=$(GLOBALDEFINES) "
 
 
@@ -97,6 +108,8 @@
 $(OUTDIR)GitResetType.$(O) GitResetType.$(H): GitResetType.st $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)GitRevwalkHandle.$(O) GitRevwalkHandle.$(H): GitRevwalkHandle.st $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)GitSignatureQuery.$(O) GitSignatureQuery.$(H): GitSignatureQuery.st $(INCLUDE_TOP)\stx\libbasic\Query.$(H) $(INCLUDE_TOP)\stx\libbasic\Notification.$(H) $(INCLUDE_TOP)\stx\libbasic\GenericException.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)GitSourceCodeManagementSettingsAppl2.$(O) GitSourceCodeManagementSettingsAppl2.$(H): GitSourceCodeManagementSettingsAppl2.st $(INCLUDE_TOP)\stx\libtool\AbstractSourceCodeManagementSettingsAppl.$(H) $(INCLUDE_TOP)\stx\libtool\AbstractSettingsApplication.$(H) $(INCLUDE_TOP)\stx\libview2\ApplicationModel.$(H) $(INCLUDE_TOP)\stx\libview2\Model.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)GitSourceCodeManager2.$(O) GitSourceCodeManager2.$(H): GitSourceCodeManager2.st $(INCLUDE_TOP)\stx\libbasic3\AbstractSourceCodeManager.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)GitStatusCodes.$(O) GitStatusCodes.$(H): GitStatusCodes.st $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)GitStatusShowType.$(O) GitStatusShowType.$(H): GitStatusShowType.st $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)GitStructure.$(O) GitStructure.$(H): GitStructure.st $(INCLUDE_TOP)\stx\libbasic\ExternalStructure.$(H) $(INCLUDE_TOP)\stx\libbasic\ExternalBytes.$(H) $(INCLUDE_TOP)\stx\libbasic\UninterpretedBytes.$(H) $(INCLUDE_TOP)\stx\libbasic\ArrayedCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\SequenceableCollection.$(H) $(INCLUDE_TOP)\stx\libbasic\Collection.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
--- a/git/git.rc	Sun Sep 30 22:13:12 2012 +0000
+++ b/git/git.rc	Tue Oct 02 13:53:10 2012 +0000
@@ -3,7 +3,7 @@
 // automagically generated from the projectDefinition: stx_libscm_git.
 //
 VS_VERSION_INFO VERSIONINFO
-  FILEVERSION     6,2,22,22
+  FILEVERSION     6,2,25,25
   PRODUCTVERSION  6,2,3,1
 #if (__BORLANDC__)
   FILEFLAGSMASK   VS_FF_DEBUG | VS_FF_PRERELEASE
@@ -20,12 +20,12 @@
     BEGIN
       VALUE "CompanyName", "eXept Software AG\0"
       VALUE "FileDescription", "Smalltalk/X Class library (LIB)\0"
-      VALUE "FileVersion", "6.2.22.22\0"
+      VALUE "FileVersion", "6.2.25.25\0"
       VALUE "InternalName", "stx:libscm/git\0"
       VALUE "LegalCopyright", "Copyright Claus Gittinger 1988-2012\nCopyright eXept Software AG 1998-2012\0"
       VALUE "ProductName", "Smalltalk/X\0"
       VALUE "ProductVersion", "6.2.3.1\0"
-      VALUE "ProductDate", "Sun, 30 Sep 2012 22:14:17 GMT\0"
+      VALUE "ProductDate", "Tue, 02 Oct 2012 13:53:53 GMT\0"
     END
 
   END
--- a/git/libInit.cc	Sun Sep 30 22:13:12 2012 +0000
+++ b/git/libInit.cc	Tue Oct 02 13:53:10 2012 +0000
@@ -62,6 +62,8 @@
 _GitResetType_Init(pass,__pRT__,snd);
 _GitRevwalkHandle_Init(pass,__pRT__,snd);
 _GitSignatureQuery_Init(pass,__pRT__,snd);
+_GitSourceCodeManagementSettingsAppl2_Init(pass,__pRT__,snd);
+_GitSourceCodeManager2_Init(pass,__pRT__,snd);
 _GitStatusCodes_Init(pass,__pRT__,snd);
 _GitStatusShowType_Init(pass,__pRT__,snd);
 _GitStructure_Init(pass,__pRT__,snd);
--- a/git/stx_libscm_git.st	Sun Sep 30 22:13:12 2012 +0000
+++ b/git/stx_libscm_git.st	Tue Oct 02 13:53:10 2012 +0000
@@ -27,8 +27,12 @@
      exclude individual packages in the #excludedFromPrerequisites method."
 
     ^ #(
-        #'stx:goodies/sunit'    "TestAsserter - superclass of GitTests "
-        #'stx:libbasic'    "Error - superclass of GitError "
+        #'stx:goodies/sunit'    "TestAsserter - superclass of GitRepositoriesResource "
+        #'stx:libbasic'    "Notification - superclass of GitCommitterQuery "
+        #'stx:libbasic3'    "AbstractSourceCodeManager - superclass of GitSourceCodeManager2 "
+        #'stx:libtool'    "AbstractSourceCodeManagementSettingsAppl - superclass of GitSourceCodeManagementSettingsAppl2 "
+        #'stx:libview'    "Depth1Image - referenced by GitSourceCodeManagementSettingsAppl2 class>>defaultIcon2 "
+        #'stx:libview2'    "ApplicationModel - superclass of GitSourceCodeManagementSettingsAppl2 "
     )
 ! !
 
@@ -129,6 +133,8 @@
         GitCommand
         GitStringArray
         GitRemote
+        GitSourceCodeManagementSettingsAppl2
+        GitSourceCodeManager2
     )
 !