- GitCommitterQuery
authorvranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
Tue, 25 Sep 2012 15:35:04 +0000
changeset 16 83e178bfe891
parent 15 40921d056f87
child 17 f7d026eeca98
- GitCommitterQuery added: #version_SVN - stx_libscm_git changed: #classNamesAndAttributes #extensionMethodNames #preRequisites - GitSignatureQuery added: #version_SVN - GitAuthorQuery added: #version_SVN - GitReference added: #version_SVN - extensions ...
git/GitAuthorQuery.st
git/GitCommitterQuery.st
git/GitIndex.st
git/GitLibraryObject.st
git/GitModel.st
git/GitObject.st
git/GitReference.st
git/GitRepository.st
git/GitSignature.st
git/GitSignatureQuery.st
git/GitSignatureStructure.st
git/GitStructure.st
git/GitWorkingCopy.st
git/GitWorkingCopyEntry.st
git/Make.proto
git/Make.spec
git/abbrev.stc
git/bc.mak
git/git.rc
git/libInit.cc
git/stx_libscm_git.st
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/git/GitAuthorQuery.st	Tue Sep 25 15:35:04 2012 +0000
@@ -0,0 +1,15 @@
+"{ Package: 'stx:libscm/git' }"
+
+GitSignatureQuery subclass:#GitAuthorQuery
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SCM-Git-Exceptions'
+!
+
+
+!GitAuthorQuery class methodsFor:'documentation'!
+
+version_SVN
+    ^ '$Id::                                                                                                                        $'
+! !
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/git/GitCommitterQuery.st	Tue Sep 25 15:35:04 2012 +0000
@@ -0,0 +1,23 @@
+"{ Package: 'stx:libscm/git' }"
+
+GitSignatureQuery subclass:#GitCommitterQuery
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SCM-Git-Exceptions'
+!
+
+
+!GitCommitterQuery methodsFor:'default values'!
+
+defaultResumeValue
+    ^GitSignature default
+
+    "Created: / 25-09-2012 / 11:15:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!GitCommitterQuery class methodsFor:'documentation'!
+
+version_SVN
+    ^ '$Id::                                                                                                                        $'
+! !
--- a/git/GitIndex.st	Mon Sep 24 22:43:25 2012 +0000
+++ b/git/GitIndex.st	Tue Sep 25 15:35:04 2012 +0000
@@ -1,6 +1,6 @@
 "{ Package: 'stx:libscm/git' }"
 
-GitModel subclass:#GitIndex
+GitLibraryObject subclass:#GitIndex
 	instanceVariableNames:'repository'
 	classVariableNames:''
 	poolDictionaries:'GitObjectType'
@@ -8,16 +8,35 @@
 !
 
 
+!GitIndex methodsFor:'accessing'!
+
+tree
+    | oid err |
+
+    oid := GitOid new.
+    err := GitPrimitives prim_git_tree_create_fromindex: oid index: handle.
+    GitError raiseIfError: err.
+    ^repository lookup: oid type: OBJ_TREE
+
+    "Created: / 25-09-2012 / 10:22:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !GitIndex methodsFor:'adding & removing'!
 
 add: entry
+    ^self add: entry stage: 0
+
+    "Created: / 25-09-2012 / 00:26:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+add: entry stage: stage
     | path err |
 
     path := entry pathNameRelative.
-    err := GitPrimitives prim_git_index_add: handle path: path stage: 1.
+    err := GitPrimitives prim_git_index_add: handle path: path stage: stage.
     GitError raiseIfError: err.
 
-    "Created: / 25-09-2012 / 00:26:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Created: / 25-09-2012 / 10:11:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !GitIndex methodsFor:'initialization & release'!
@@ -55,6 +74,9 @@
 
 write
     | err |     
+
+"/    err := GitPrimitives prim_git_index_uniq: handle.
+"/    GitError raiseIfError: err.
     err := GitPrimitives prim_git_index_write: handle.
     GitError raiseIfError: err.
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/git/GitLibraryObject.st	Tue Sep 25 15:35:04 2012 +0000
@@ -0,0 +1,88 @@
+"{ Package: 'stx:libscm/git' }"
+
+Object subclass:#GitLibraryObject
+	instanceVariableNames:'handle'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SCM-Git-Model'
+!
+
+
+!GitLibraryObject methodsFor:'finalization'!
+
+executor
+    ^self class basicNew setHandleFromOriginal: self
+
+    "Created: / 08-09-2012 / 00:08:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+finalize
+    self free
+
+    "Created: / 07-09-2012 / 23:08:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!GitLibraryObject methodsFor:'initialization & release'!
+
+free
+    handle notNil ifTrue:[
+        self subclassResponsibility.
+        handle := nil.
+    ].
+
+    "Created: / 08-09-2012 / 00:01:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!GitLibraryObject methodsFor:'private-accessing'!
+
+getHandle
+    ^handle
+
+    "Created: / 19-09-2012 / 00:57:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+getHandleClass
+    ^self subclassResponsibility
+
+    "Created: / 17-09-2012 / 21:19:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+setHandle: hndl
+    self assert: (hndl isNil or:[hndl class == self getHandleClass]).
+    handle := hndl.
+    handle notNil ifTrue:[
+        self registerForFinalization.
+    ].
+
+    "Created: / 17-09-2012 / 21:13:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+setHandleFromExternalAddress: anExternalAddress
+    | cls |
+
+    cls := self getHandleClass.
+    self setHandle: (self getHandleClass new setAddress: anExternalAddress address size: cls structSize)
+
+    "Created: / 19-09-2012 / 01:33:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+setHandleFromOriginal: original
+    "To be called only from #executor"
+    handle := original getHandle
+
+    "Created: / 19-09-2012 / 01:26:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+setHandleFromRef: aByteArray
+    self assert: aByteArray isByteArray.
+    self assert: aByteArray size == ExternalAddress pointerSize.
+    self setHandle: (self getHandleClass newAddress: (aByteArray pointerAt: 1))
+
+    "Created: / 17-09-2012 / 21:22:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!GitLibraryObject class methodsFor:'documentation'!
+
+version_SVN
+    ^ '$Id::                                                                                                                        $'
+! !
--- a/git/GitModel.st	Mon Sep 24 22:43:25 2012 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-"{ Package: 'stx:libscm/git' }"
-
-Object subclass:#GitModel
-	instanceVariableNames:'handle'
-	classVariableNames:''
-	poolDictionaries:''
-	category:'SCM-Git-Model'
-!
-
-
-!GitModel methodsFor:'finalization'!
-
-executor
-    ^self class basicNew setHandleFromOriginal: self
-
-    "Created: / 08-09-2012 / 00:08:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-finalize
-    self free
-
-    "Created: / 07-09-2012 / 23:08:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!GitModel methodsFor:'initialization & release'!
-
-free
-    handle notNil ifTrue:[
-        self subclassResponsibility.
-        handle := nil.
-    ].
-
-    "Created: / 08-09-2012 / 00:01:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!GitModel methodsFor:'private-accessing'!
-
-getHandle
-    ^handle
-
-    "Created: / 19-09-2012 / 00:57:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-getHandleClass
-    ^self subclassResponsibility
-
-    "Created: / 17-09-2012 / 21:19:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-setHandle: hndl
-    self assert: (hndl isNil or:[hndl class == self getHandleClass]).
-    handle := hndl.
-    handle notNil ifTrue:[
-        self registerForFinalization.
-    ].
-
-    "Created: / 17-09-2012 / 21:13:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-setHandleFromExternalAddress: anExternalAddress
-    | cls |
-
-    cls := self getHandleClass.
-    self setHandle: (self getHandleClass new setAddress: anExternalAddress address size: cls structSize)
-
-    "Created: / 19-09-2012 / 01:33:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-setHandleFromOriginal: original
-    "To be called only from #executor"
-    handle := original getHandle
-
-    "Created: / 19-09-2012 / 01:26:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-!
-
-setHandleFromRef: aByteArray
-    self assert: aByteArray isByteArray.
-    self assert: aByteArray size == ExternalAddress pointerSize.
-    self setHandle: (self getHandleClass new setAddressFromBytes: aByteArray)
-
-    "Created: / 17-09-2012 / 21:22:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
-! !
-
-!GitModel class methodsFor:'documentation'!
-
-version_SVN
-    ^ '$Id::                                                                                                                        $'
-! !
--- a/git/GitObject.st	Mon Sep 24 22:43:25 2012 +0000
+++ b/git/GitObject.st	Tue Sep 25 15:35:04 2012 +0000
@@ -1,6 +1,6 @@
 "{ Package: 'stx:libscm/git' }"
 
-GitModel subclass:#GitObject
+GitLibraryObject subclass:#GitObject
 	instanceVariableNames:'oid repository'
 	classVariableNames:''
 	poolDictionaries:'GitObjectType'
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/git/GitReference.st	Tue Sep 25 15:35:04 2012 +0000
@@ -0,0 +1,51 @@
+"{ Package: 'stx:libscm/git' }"
+
+GitLibraryObject subclass:#GitReference
+	instanceVariableNames:'name'
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SCM-Git-Model'
+!
+
+
+!GitReference methodsFor:'accessing'!
+
+name
+    name isNil ifTrue:[
+        name := (GitPrimitives prim_git_reference_name: handle) copyCStringFromHeap 
+    ].
+    ^name
+
+    "Created: / 25-09-2012 / 11:00:51 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+oid
+    ^GitPrimitives prim_git_reference_oid: handle.
+
+    "Created: / 25-09-2012 / 10:48:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!GitReference methodsFor:'initialization & release'!
+
+free
+    handle notNil ifTrue:[
+        GitPrimitives prim_git_reference_free: handle. 
+        handle := nil.
+    ].
+
+    "Created: / 25-09-2012 / 10:44:32 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!GitReference methodsFor:'private-accessing'!
+
+getHandleClass
+    ^GitReferenceHandle
+
+    "Created: / 25-09-2012 / 10:44:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!GitReference class methodsFor:'documentation'!
+
+version_SVN
+    ^ '$Id::                                                                                                                        $'
+! !
--- a/git/GitRepository.st	Mon Sep 24 22:43:25 2012 +0000
+++ b/git/GitRepository.st	Tue Sep 25 15:35:04 2012 +0000
@@ -1,6 +1,6 @@
 "{ Package: 'stx:libscm/git' }"
 
-GitModel subclass:#GitRepository
+GitLibraryObject subclass:#GitRepository
 	instanceVariableNames:'path workdir index'
 	classVariableNames:''
 	poolDictionaries:'GitObjectType GitStatusCodes'
@@ -63,6 +63,17 @@
 
 !GitRepository methodsFor:'accessing'!
 
+head
+    | ref err |
+    ref := ByteArray new: ExternalBytes sizeofPointer.
+    err := GitPrimitives prim_git_repository_head: ref repo: handle.
+    GitError raiseIfError: err.
+
+    ^GitReference new setHandleFromRef: ref
+
+    "Created: / 25-09-2012 / 10:48:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 workingCopy
     self isBare ifTrue:[
         GitError raiseErrorString: 'Repository is bare'.
@@ -97,6 +108,40 @@
     "Created: / 19-09-2012 / 09:48:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!GitRepository methodsFor:'actions'!
+
+commit: message tree: tree parents: parents update: refOrNil commiter: commiterOrNil author: authorOrNil
+    | oid err committer author parentsA |
+
+    committer := commiterOrNil notNil 
+                    ifTrue:[committer copyNow]
+                    ifFalse:[GitCommitterQuery query copyNow].
+    author := commiterOrNil notNil
+                    ifTrue:[author]
+                    ifFalse:[committer copy].
+    parentsA := ByteArray new: (ExternalBytes sizeofPointer * parents size).
+    parents withIndexDo:[:each :idx|
+        parentsA pointerAt: (1 + ((idx - 1) * ExternalBytes sizeofPointer)) put: each getHandle.
+    ].
+    oid := GitOid new.
+
+    err := GitPrimitives prim_git_commit_create: oid 
+                                           repo: handle 
+                                     update_ref: (refOrNil notNil ifTrue:[refOrNil getHandle] ifFalse:[nil]) 
+                                         author: author getHandle
+                                      committer: committer getHandle
+                               message_encoding: 'utf-8'
+                                        message: message utf8Encoded
+                                           tree: tree getHandle
+                                   parent_count: parents size
+                                        parents: parentsA.
+    GitError raiseIfError: err.
+
+    ^self lookup: oid type: OBJ_COMMIT.
+
+    "Created: / 25-09-2012 / 14:51:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !GitRepository methodsFor:'copying'!
 
 shallowCopy
@@ -237,6 +282,18 @@
 
 !GitRepository methodsFor:'testing'!
 
+headIsDetached
+    ^(GitPrimitives prim_git_repository_head_detached: handle) == 1
+
+    "Created: / 25-09-2012 / 11:06:30 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+headIsOrphan
+    ^(GitPrimitives prim_git_repository_head_orphan: handle) == 1
+
+    "Created: / 25-09-2012 / 11:06:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 isBare
     "Check if a repository is bare"
 
--- a/git/GitSignature.st	Mon Sep 24 22:43:25 2012 +0000
+++ b/git/GitSignature.st	Tue Sep 25 15:35:04 2012 +0000
@@ -1,43 +1,123 @@
 "{ Package: 'stx:libscm/git' }"
 
-GitModel subclass:#GitSignature
-	instanceVariableNames:'name email timestamp'
-	classVariableNames:''
+GitLibraryObject subclass:#GitSignature
+	instanceVariableNames:'name namePtr email emailPtr timestamp'
+	classVariableNames:'Default'
 	poolDictionaries:''
 	category:'SCM-Git-Model'
 !
 
 
+!GitSignature class methodsFor:'instance creation'!
+
+new
+    | ref |
+
+    ref := ByteArray new: ExternalBytes sizeofPointer.
+    GitError raiseIfError: (GitPrimitives prim_git_signature_new: ref name: '**uninitialized**' email: '**uninitialized**' time: 0 offset: 0 ).
+    ^self basicNew 
+        setHandleFromRef:ref;
+        yourself
+
+    "
+        self new
+    "
+
+    "Created: / 25-09-2012 / 12:32:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!GitSignature class methodsFor:'accessing-default'!
+
+default
+    Default isNil ifTrue:[ 
+        Default := self new.
+        Default name: OperatingSystem getFullUserName.
+        Default email: (Dialog request:'Git - Enter your email')
+    ].
+    ^ Default.
+
+    "
+        GitSignature default
+    "
+
+    "Created: / 25-09-2012 / 11:15:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !GitSignature methodsFor:'accessing'!
 
 email
 
     (email isNil and:[handle notNil]) ifTrue:[
-        email := handle email copyCStringFromHeap utf8Decoded
+        email := (emailPtr := handle email) copyCStringFromHeap utf8Decoded
     ].
     ^email
 
-    "Modified: / 19-09-2012 / 01:56:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 25-09-2012 / 11:28:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+email:aString
+
+    email := aString.
+    emailPtr := ExternalBytes newNullTerminatedFromString:aString.
+    handle email: emailPtr address
+
+    "Modified: / 25-09-2012 / 14:26:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 name
 
     (name isNil and:[handle notNil]) ifTrue:[
-        name := handle name copyCStringFromHeap utf8Decoded
+        name := (namePtr := handle name) copyCStringFromHeap utf8Decoded
     ].
     ^name
 
-    "Modified: / 19-09-2012 / 01:56:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 25-09-2012 / 11:28:31 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+name:aString
+
+    name := aString.
+    namePtr := ExternalBytes newNullTerminatedFromString:aString.
+    handle name: namePtr address
+
+    "Modified: / 25-09-2012 / 14:26:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 timestamp
 
     (timestamp isNil and:[handle notNil]) ifTrue:[
-        timestamp := Timestamp new osTime: handle when time
+        timestamp := Timestamp new osTime: handle time
+    ].
+    ^timestamp
+
+    "Modified: / 25-09-2012 / 14:48:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+timestamp: aTimestamp
+
+    timestamp := aTimestamp. 
+    handle notNil ifTrue:[
+        handle time: timestamp osTime.
     ].
     ^timestamp
 
-    "Modified: / 19-09-2012 / 01:20:33 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Created: / 25-09-2012 / 14:36:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!GitSignature methodsFor:'copying'!
+
+copyNow
+    ^self copy timestamp: Timestamp now.
+
+    "Created: / 25-09-2012 / 14:40:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+shallowCopy
+    ^self class basicNew 
+        setHandle:(GitPrimitives prim_git_signature_dup: handle);
+        yourself
+
+    "Created: / 25-09-2012 / 14:38:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !GitSignature methodsFor:'printing & storing'!
@@ -52,9 +132,9 @@
         nextPutAll: self email;
         nextPut:$>;
         space.
-"/    self timestamp printOn: aStream
+    self timestamp printOn: aStream
 
-    "Modified: / 19-09-2012 / 14:05:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 25-09-2012 / 14:40:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !GitSignature methodsFor:'private-accessing'!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/git/GitSignatureQuery.st	Tue Sep 25 15:35:04 2012 +0000
@@ -0,0 +1,15 @@
+"{ Package: 'stx:libscm/git' }"
+
+Query subclass:#GitSignatureQuery
+	instanceVariableNames:''
+	classVariableNames:''
+	poolDictionaries:''
+	category:'SCM-Git-Exceptions'
+!
+
+
+!GitSignatureQuery class methodsFor:'documentation'!
+
+version_SVN
+    ^ '$Id::                                                                                                                        $'
+! !
--- a/git/GitSignatureStructure.st	Mon Sep 24 22:43:25 2012 +0000
+++ b/git/GitSignatureStructure.st	Tue Sep 25 15:35:04 2012 +0000
@@ -37,7 +37,9 @@
 
 email: value
 
-    self pointerAt:1 + 4 put:value
+    self longAt:1 + 4 put:value
+
+    "Modified: / 25-09-2012 / 14:29:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 name
@@ -50,24 +52,37 @@
 
 name: value
 
-    self pointerAt:1 + 0 put:value
+    self longAt:1 + 0 put:value
+
+    "Modified: / 25-09-2012 / 14:30:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+offset"^ <SmallInteger>"
+    
+    ^self longAt:1 + 8 + 8
+
+    "Created: / 25-09-2012 / 14:47:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-when
-    "Returns ;; Line: 2991
-;; Class: GitTimeStructure
-"
+offset: value"<SmallInteger>"
+    
+    ^self longAt:1 + 8 + 8 put: value
 
-    ^GitTimeStructure address: (self longAt:1 + 8)
-
-    "Modified: / 19-09-2012 / 14:04:44 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Created: / 25-09-2012 / 14:47:36 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
-when: aGitTimeStructure
+time"^ <LargeInteger>"
+    
+    ^self longLongAt:1 + 8
 
-    self pointerAt:1 + 8 put:aGitTimeStructure address
+    "Created: / 25-09-2012 / 14:46:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
 
-    "Modified: / 19-09-2012 / 01:17:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+time: value"<LargeInteger>"
+    
+    ^self longLongAt:1 + 8 put: value
+
+    "Created: / 25-09-2012 / 14:46:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !GitSignatureStructure class methodsFor:'documentation'!
--- a/git/GitStructure.st	Mon Sep 24 22:43:25 2012 +0000
+++ b/git/GitStructure.st	Tue Sep 25 15:35:04 2012 +0000
@@ -14,6 +14,12 @@
     ^self address: address size: self structSize.
 
     "Created: / 19-09-2012 / 14:04:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+newAddress: address
+    ^self address: address size: self structSize.
+
+    "Created: / 25-09-2012 / 15:07:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
 !GitStructure class methodsFor:'accessing'!
--- a/git/GitWorkingCopy.st	Mon Sep 24 22:43:25 2012 +0000
+++ b/git/GitWorkingCopy.st	Tue Sep 25 15:35:04 2012 +0000
@@ -1,7 +1,7 @@
 "{ Package: 'stx:libscm/git' }"
 
-GitModel subclass:#GitWorkingCopy
-	instanceVariableNames:'repository root index'
+GitLibraryObject subclass:#GitWorkingCopy
+	instanceVariableNames:'repository reference commit index root detached'
 	classVariableNames:''
 	poolDictionaries:'GitStatusCodes'
 	category:'SCM-Git-Model'
@@ -50,20 +50,61 @@
         obj := repository lookup: oid.
     ].
 
-    repository checkout: obj
+    repository checkout: obj.
+    commit := obj.
 
     "Created: / 19-09-2012 / 14:00:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+commit: message
+    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)
+
+    "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]).
+
+    "Created: / 25-09-2012 / 11:11:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+commit: message tree: tree parents: parents update: refOrNil
+    ^self commit: message tree: tree parents: parents update: refOrNil commiter: nil.
+
+    "Created: / 25-09-2012 / 12:24:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+commit: message tree: tree parents: parents update: refOrNil commiter: commiterOrNil
+    ^self commit: message tree: tree parents: parents update: refOrNil commiter: commiterOrNil author: nil
+
+    "Created: / 25-09-2012 / 14:50:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+commit: message tree: tree parents: parents update: refOrNil commiter: commiterOrNil author: authorOrNil
+    ^repository commit: message tree: tree parents: parents update: refOrNil commiter: commiterOrNil author: authorOrNil
+
+    "Created: / 25-09-2012 / 14:50:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 stage
     "Stage all unstaged files"
 
     self entriesAndStatusesDo: [:entry :status|
-        (status bitAnd: (GIT_STATUS_INDEX_NEW | GIT_STATUS_INDEX_MODIFIED | GIT_STATUS_INDEX_DELETED)) ~~ 0 ifTrue:[
+        (status bitAnd: (GIT_STATUS_WT_MODIFIED | GIT_STATUS_WT_DELETED)) ~~ 0 ifTrue:[
             self index add: entry.            
+        ] ifFalse:[
+            (status bitAnd: (GIT_STATUS_WT_DELETED)) ~~ 0 ifTrue:[
+                self index remove: entry.
+            ].
         ].
     ].
-    self index unique; write
+    self index write
 
     "Created: / 25-09-2012 / 00:13:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
@@ -88,8 +129,11 @@
 !GitWorkingCopy methodsFor:'initialization'!
 
 setRepository: aGitRepository
+    handle := aGitRepository getHandle.
     repository := aGitRepository.
-    handle := aGitRepository getHandle.
+    reference := repository head.
+    detached := repository headIsDetached.
+    commit := repository lookup: reference oid.
     root := GitWorkingCopyEntry wc: self path: repository workdir.
 
     "Created: / 19-09-2012 / 09:43:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
--- a/git/GitWorkingCopyEntry.st	Mon Sep 24 22:43:25 2012 +0000
+++ b/git/GitWorkingCopyEntry.st	Tue Sep 25 15:35:04 2012 +0000
@@ -21,7 +21,7 @@
 pathNameRelative
     ^self == wc root
         ifTrue:[wc root pathName]
-        ifFalse:[file pathName copyFrom: (wc root pathName + 2)]
+        ifFalse:[file pathName copyFrom: (wc root pathName size + 2)]
 
     "Created: / 25-09-2012 / 00:28:20 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
--- a/git/Make.proto	Mon Sep 24 22:43:25 2012 +0000
+++ b/git/Make.proto	Tue Sep 25 15:35:04 2012 +0000
@@ -159,6 +159,7 @@
 $(OUTDIR)GitRepositoryHandle.$(O) GitRepositoryHandle.$(H): GitRepositoryHandle.st $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(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)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)
@@ -172,7 +173,9 @@
 $(OUTDIR)GitTreebuilderHandle.$(O) GitTreebuilderHandle.$(H): GitTreebuilderHandle.st $(INCLUDE_TOP)/stx/libbasic/ExternalAddress.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)GitTreewalkModeType.$(O) GitTreewalkModeType.$(H): GitTreewalkModeType.st $(INCLUDE_TOP)/stx/libbasic/SharedPool.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)stx_libscm_git.$(O) stx_libscm_git.$(H): stx_libscm_git.st $(INCLUDE_TOP)/stx/libbasic/LibraryDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/ProjectDefinition.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
+$(OUTDIR)GitAuthorQuery.$(O) GitAuthorQuery.$(H): GitAuthorQuery.st $(INCLUDE_TOP)/stx/libscm/git/GitSignatureQuery.$(H) $(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)GitCheckoutOptions.$(O) GitCheckoutOptions.$(H): GitCheckoutOptions.st $(INCLUDE_TOP)/stx/libscm/git/GitCheckoutStrategy.$(H) $(INCLUDE_TOP)/stx/libscm/git/GitStructure.$(H) $(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)
+$(OUTDIR)GitCommitterQuery.$(O) GitCommitterQuery.$(H): GitCommitterQuery.st $(INCLUDE_TOP)/stx/libscm/git/GitSignatureQuery.$(H) $(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)GitConfigFileStructure.$(O) GitConfigFileStructure.$(H): GitConfigFileStructure.st $(INCLUDE_TOP)/stx/libscm/git/GitStructure.$(H) $(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)
 $(OUTDIR)GitCvarMapStructure.$(O) GitCvarMapStructure.$(H): GitCvarMapStructure.st $(INCLUDE_TOP)/stx/libscm/git/GitStructure.$(H) $(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)
 $(OUTDIR)GitDiffDeltaStructure.$(O) GitDiffDeltaStructure.$(H): GitDiffDeltaStructure.st $(INCLUDE_TOP)/stx/libscm/git/GitStructure.$(H) $(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)
@@ -190,6 +193,7 @@
 $(OUTDIR)GitObject.$(O) GitObject.$(H): GitObject.st $(INCLUDE_TOP)/stx/libscm/git/GitObjectType.$(H) $(INCLUDE_TOP)/stx/libscm/git/GitModel.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)GitOdbBackendStructure.$(O) GitOdbBackendStructure.$(H): GitOdbBackendStructure.st $(INCLUDE_TOP)/stx/libscm/git/GitStructure.$(H) $(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)
 $(OUTDIR)GitOdbStreamStructure.$(O) GitOdbStreamStructure.$(H): GitOdbStreamStructure.st $(INCLUDE_TOP)/stx/libscm/git/GitStructure.$(H) $(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)
+$(OUTDIR)GitReference.$(O) GitReference.$(H): GitReference.st $(INCLUDE_TOP)/stx/libscm/git/GitModel.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
 $(OUTDIR)GitRemoteCallbacksStructure.$(O) GitRemoteCallbacksStructure.$(H): GitRemoteCallbacksStructure.st $(INCLUDE_TOP)/stx/libscm/git/GitStructure.$(H) $(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)
 $(OUTDIR)GitRemoteHeadStructure.$(O) GitRemoteHeadStructure.$(H): GitRemoteHeadStructure.st $(INCLUDE_TOP)/stx/libscm/git/GitStructure.$(H) $(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)
 $(OUTDIR)GitRepository.$(O) GitRepository.$(H): GitRepository.st $(INCLUDE_TOP)/stx/libscm/git/GitObjectType.$(H) $(INCLUDE_TOP)/stx/libscm/git/GitStatusCodes.$(H) $(INCLUDE_TOP)/stx/libscm/git/GitModel.$(H) $(INCLUDE_TOP)/stx/libbasic/Object.$(H) $(STCHDR)
--- a/git/Make.spec	Mon Sep 24 22:43:25 2012 +0000
+++ b/git/Make.spec	Tue Sep 25 15:35:04 2012 +0000
@@ -50,11 +50,11 @@
 STCWARNINGS=-warnNonStandard
 
 COMMON_CLASSES= \
+	GitLibraryObject \
 	GitStatusCodes \
 	GitErrorKlass \
 	GitStructure \
 	GitObjectType \
-	GitModel \
 	GitError \
 	GitObject \
 	GitCommit \
@@ -128,16 +128,20 @@
 	GitCheckoutOptions \
 	GitIndex \
 	GitWorkingCopyEntry \
+	GitSignatureQuery \
+	GitAuthorQuery \
+	GitCommitterQuery \
+	GitReference \
 
 
 
 
 COMMON_OBJS= \
+    $(OUTDIR)GitModel.$(O) \
     $(OUTDIR)GitStatusCodes.$(O) \
     $(OUTDIR)GitErrorKlass.$(O) \
     $(OUTDIR)GitStructure.$(O) \
     $(OUTDIR)GitObjectType.$(O) \
-    $(OUTDIR)GitModel.$(O) \
     $(OUTDIR)GitError.$(O) \
     $(OUTDIR)GitObject.$(O) \
     $(OUTDIR)GitCommit.$(O) \
@@ -211,6 +215,10 @@
     $(OUTDIR)GitCheckoutOptions.$(O) \
     $(OUTDIR)GitIndex.$(O) \
     $(OUTDIR)GitWorkingCopyEntry.$(O) \
+    $(OUTDIR)GitSignatureQuery.$(O) \
+    $(OUTDIR)GitAuthorQuery.$(O) \
+    $(OUTDIR)GitCommitterQuery.$(O) \
+    $(OUTDIR)GitReference.$(O) \
     $(OUTDIR)extensions.$(O) \
 
 
--- a/git/abbrev.stc	Mon Sep 24 22:43:25 2012 +0000
+++ b/git/abbrev.stc	Tue Sep 25 15:35:04 2012 +0000
@@ -1,11 +1,11 @@
 # 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
 GitStatusCodes GitStatusCodes stx:libscm/git 'SCM-Git-Internal-Constants' 0
-GitErrorKlass GitErrorKlass 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 'SCM-Git-Internal-Constants' 0
-GitModel GitModel stx:libscm/git 'SCM-Git-Model' 0
+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
@@ -13,64 +13,64 @@
 GitRepository GitRepository stx:libscm/git 'SCM-Git-Model' 0
 GitTree GitTree stx:libscm/git 'SCM-Git-Model' 0
 stx_libscm_git stx_libscm_git stx:libscm/git '* Projects & Packages *' 3
-GitAttrType GitAttrType stx:libscm/git 'SCM-Git-Internal-Constants' 0
-GitBlobHandle GitBlobHandle stx:libscm/git 'SCM-Git-Internal-Handles' 0
-GitBranchType GitBranchType stx:libscm/git 'SCM-Git-Internal-Constants' 0
-GitCommitHandle GitCommitHandle stx:libscm/git 'SCM-Git-Internal-Handles' 0
+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 'SCM-Git-Internal-Handles' 0
+GitConfigHandle GitConfigHandle stx:libscm/git 'Git-Internal-Handles' 0
 GitCvarMapStructure GitCvarMapStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitCvarType GitCvarType stx:libscm/git 'SCM-Git-Internal-Constants' 0
-GitDeltaType GitDeltaType stx:libscm/git 'SCM-Git-Internal-Constants' 0
+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 'SCM-Git-Internal-Handles' 0
+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 'SCM-Git-Internal-Constants' 0
+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 'SCM-Git-Internal-Handles' 0
+GitIndexHandle GitIndexHandle stx:libscm/git 'Git-Internal-Handles' 0
 GitIndexTimeStructure GitIndexTimeStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitIndexerHandle GitIndexerHandle stx:libscm/git 'SCM-Git-Internal-Handles' 0
+GitIndexerHandle GitIndexerHandle stx:libscm/git 'Git-Internal-Handles' 0
 GitIndexerStatsStructure GitIndexerStatsStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitIndexerStreamHandle GitIndexerStreamHandle stx:libscm/git 'SCM-Git-Internal-Handles' 0
+GitIndexerStreamHandle GitIndexerStreamHandle stx:libscm/git 'Git-Internal-Handles' 0
 GitNoteDataStructure GitNoteDataStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitNoteHandle GitNoteHandle stx:libscm/git 'SCM-Git-Internal-Handles' 0
-GitObjectHandle GitObjectHandle stx:libscm/git 'SCM-Git-Internal-Handles' 0
+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 'SCM-Git-Internal-Handles' 0
-GitOdbObjectHandle GitOdbObjectHandle stx:libscm/git 'SCM-Git-Internal-Handles' 0
+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 'SCM-Git-Internal-Handles' 0
-GitRefType GitRefType stx:libscm/git 'SCM-Git-Internal-Constants' 0
-GitReferenceHandle GitReferenceHandle stx:libscm/git 'SCM-Git-Internal-Handles' 0
-GitReflogEntryHandle GitReflogEntryHandle stx:libscm/git 'SCM-Git-Internal-Handles' 0
-GitReflogHandle GitReflogHandle stx:libscm/git 'SCM-Git-Internal-Handles' 0
-GitRefspecHandle GitRefspecHandle stx:libscm/git 'SCM-Git-Internal-Handles' 0
+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 'SCM-Git-Internal-Constants' 0
-GitRemoteHandle GitRemoteHandle stx:libscm/git 'SCM-Git-Internal-Handles' 0
+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 'SCM-Git-Internal-Handles' 0
+GitRepositoryHandle GitRepositoryHandle stx:libscm/git 'Git-Internal-Handles' 0
 GitRepositoryInitOptionsStructure GitRepositoryInitOptionsStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitResetType GitResetType stx:libscm/git 'SCM-Git-Internal-Constants' 0
-GitRevwalkHandle GitRevwalkHandle stx:libscm/git 'SCM-Git-Internal-Handles' 0
+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 'SCM-Git-Internal-Constants' 0
+GitStatusShowType GitStatusShowType stx:libscm/git 'Git-Internal-Constants' 0
 GitStrarrayStructure GitStrarrayStructure stx:libscm/git 'SCM-Git-Internal-Structures' 1
-GitSubmoduleHandle GitSubmoduleHandle stx:libscm/git 'SCM-Git-Internal-Handles' 0
-GitSubmoduleIgnoreType GitSubmoduleIgnoreType stx:libscm/git 'SCM-Git-Internal-Constants' 0
-GitSubmoduleStatusType GitSubmoduleStatusType stx:libscm/git 'SCM-Git-Internal-Constants' 0
-GitSubmoduleUpdateType GitSubmoduleUpdateType stx:libscm/git 'SCM-Git-Internal-Constants' 0
-GitTagHandle GitTagHandle stx:libscm/git 'SCM-Git-Internal-Handles' 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 'SCM-Git-Internal-Handles' 0
-GitTreeHandle GitTreeHandle stx:libscm/git 'SCM-Git-Internal-Handles' 0
-GitTreebuilderHandle GitTreebuilderHandle stx:libscm/git 'SCM-Git-Internal-Handles' 0
-GitTreewalkModeType GitTreewalkModeType stx:libscm/git 'SCM-Git-Internal-Constants' 0
+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
@@ -81,3 +81,7 @@
 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
--- a/git/bc.mak	Mon Sep 24 22:43:25 2012 +0000
+++ b/git/bc.mak	Tue Sep 25 15:35:04 2012 +0000
@@ -95,6 +95,7 @@
 $(OUTDIR)GitRepositoryHandle.$(O) GitRepositoryHandle.$(H): GitRepositoryHandle.st $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(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)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)
@@ -108,7 +109,9 @@
 $(OUTDIR)GitTreebuilderHandle.$(O) GitTreebuilderHandle.$(H): GitTreebuilderHandle.st $(INCLUDE_TOP)\stx\libbasic\ExternalAddress.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)GitTreewalkModeType.$(O) GitTreewalkModeType.$(H): GitTreewalkModeType.st $(INCLUDE_TOP)\stx\libbasic\SharedPool.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)stx_libscm_git.$(O) stx_libscm_git.$(H): stx_libscm_git.st $(INCLUDE_TOP)\stx\libbasic\LibraryDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\ProjectDefinition.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
+$(OUTDIR)GitAuthorQuery.$(O) GitAuthorQuery.$(H): GitAuthorQuery.st $(INCLUDE_TOP)\stx\libscm\git\GitSignatureQuery.$(H) $(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)GitCheckoutOptions.$(O) GitCheckoutOptions.$(H): GitCheckoutOptions.st $(INCLUDE_TOP)\stx\libscm\git\GitCheckoutStrategy.$(H) $(INCLUDE_TOP)\stx\libscm\git\GitStructure.$(H) $(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)
+$(OUTDIR)GitCommitterQuery.$(O) GitCommitterQuery.$(H): GitCommitterQuery.st $(INCLUDE_TOP)\stx\libscm\git\GitSignatureQuery.$(H) $(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)GitConfigFileStructure.$(O) GitConfigFileStructure.$(H): GitConfigFileStructure.st $(INCLUDE_TOP)\stx\libscm\git\GitStructure.$(H) $(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)
 $(OUTDIR)GitCvarMapStructure.$(O) GitCvarMapStructure.$(H): GitCvarMapStructure.st $(INCLUDE_TOP)\stx\libscm\git\GitStructure.$(H) $(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)
 $(OUTDIR)GitDiffDeltaStructure.$(O) GitDiffDeltaStructure.$(H): GitDiffDeltaStructure.st $(INCLUDE_TOP)\stx\libscm\git\GitStructure.$(H) $(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)
@@ -126,6 +129,7 @@
 $(OUTDIR)GitObject.$(O) GitObject.$(H): GitObject.st $(INCLUDE_TOP)\stx\libscm\git\GitObjectType.$(H) $(INCLUDE_TOP)\stx\libscm\git\GitModel.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)GitOdbBackendStructure.$(O) GitOdbBackendStructure.$(H): GitOdbBackendStructure.st $(INCLUDE_TOP)\stx\libscm\git\GitStructure.$(H) $(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)
 $(OUTDIR)GitOdbStreamStructure.$(O) GitOdbStreamStructure.$(H): GitOdbStreamStructure.st $(INCLUDE_TOP)\stx\libscm\git\GitStructure.$(H) $(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)
+$(OUTDIR)GitReference.$(O) GitReference.$(H): GitReference.st $(INCLUDE_TOP)\stx\libscm\git\GitModel.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
 $(OUTDIR)GitRemoteCallbacksStructure.$(O) GitRemoteCallbacksStructure.$(H): GitRemoteCallbacksStructure.st $(INCLUDE_TOP)\stx\libscm\git\GitStructure.$(H) $(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)
 $(OUTDIR)GitRemoteHeadStructure.$(O) GitRemoteHeadStructure.$(H): GitRemoteHeadStructure.st $(INCLUDE_TOP)\stx\libscm\git\GitStructure.$(H) $(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)
 $(OUTDIR)GitRepository.$(O) GitRepository.$(H): GitRepository.st $(INCLUDE_TOP)\stx\libscm\git\GitObjectType.$(H) $(INCLUDE_TOP)\stx\libscm\git\GitStatusCodes.$(H) $(INCLUDE_TOP)\stx\libscm\git\GitModel.$(H) $(INCLUDE_TOP)\stx\libbasic\Object.$(H) $(STCHDR)
--- a/git/git.rc	Mon Sep 24 22:43:25 2012 +0000
+++ b/git/git.rc	Tue Sep 25 15:35:04 2012 +0000
@@ -3,7 +3,7 @@
 // automagically generated from the projectDefinition: stx_libscm_git.
 //
 VS_VERSION_INFO VERSIONINFO
-  FILEVERSION     6,2,14,14
+  FILEVERSION     6,2,17,17
   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.14.14\0"
+      VALUE "FileVersion", "6.2.17.17\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", "Mon, 24 Sep 2012 22:43:33 GMT\0"
+      VALUE "ProductDate", "Tue, 25 Sep 2012 15:35:28 GMT\0"
     END
 
   END
--- a/git/libInit.cc	Mon Sep 24 22:43:25 2012 +0000
+++ b/git/libInit.cc	Tue Sep 25 15:35:04 2012 +0000
@@ -41,7 +41,7 @@
 _GitIndexHandle_Init(pass,__pRT__,snd);
 _GitIndexerHandle_Init(pass,__pRT__,snd);
 _GitIndexerStreamHandle_Init(pass,__pRT__,snd);
-_GitModel_Init(pass,__pRT__,snd);
+_GitLibraryObject_Init(pass,__pRT__,snd);
 _GitNoteHandle_Init(pass,__pRT__,snd);
 _GitObjectHandle_Init(pass,__pRT__,snd);
 _GitObjectType_Init(pass,__pRT__,snd);
@@ -60,6 +60,7 @@
 _GitRepositoryHandle_Init(pass,__pRT__,snd);
 _GitResetType_Init(pass,__pRT__,snd);
 _GitRevwalkHandle_Init(pass,__pRT__,snd);
+_GitSignatureQuery_Init(pass,__pRT__,snd);
 _GitStatusCodes_Init(pass,__pRT__,snd);
 _GitStatusShowType_Init(pass,__pRT__,snd);
 _GitStructure_Init(pass,__pRT__,snd);
@@ -73,7 +74,9 @@
 _GitTreebuilderHandle_Init(pass,__pRT__,snd);
 _GitTreewalkModeType_Init(pass,__pRT__,snd);
 _stx_137libscm_137git_Init(pass,__pRT__,snd);
+_GitAuthorQuery_Init(pass,__pRT__,snd);
 _GitCheckoutOptions_Init(pass,__pRT__,snd);
+_GitCommitterQuery_Init(pass,__pRT__,snd);
 _GitConfigFileStructure_Init(pass,__pRT__,snd);
 _GitCvarMapStructure_Init(pass,__pRT__,snd);
 _GitDiffDeltaStructure_Init(pass,__pRT__,snd);
@@ -91,6 +94,7 @@
 _GitObject_Init(pass,__pRT__,snd);
 _GitOdbBackendStructure_Init(pass,__pRT__,snd);
 _GitOdbStreamStructure_Init(pass,__pRT__,snd);
+_GitReference_Init(pass,__pRT__,snd);
 _GitRemoteCallbacksStructure_Init(pass,__pRT__,snd);
 _GitRemoteHeadStructure_Init(pass,__pRT__,snd);
 _GitRepository_Init(pass,__pRT__,snd);
--- a/git/stx_libscm_git.st	Mon Sep 24 22:43:25 2012 +0000
+++ b/git/stx_libscm_git.st	Tue Sep 25 15:35:04 2012 +0000
@@ -27,8 +27,8 @@
      exclude individual packages in the #excludedFromPrerequisites method."
 
     ^ #(
-        #'stx:goodies/sunit'    "TestResource - superclass of GitRepositoriesResource "
-        #'stx:libbasic'    "Object - superclass of GitDeltaType "
+        #'stx:goodies/sunit'    "TestCase - superclass of GitTests "
+        #'stx:libbasic'    "ExternalBytes - superclass of GitStrarrayStructure "
     )
 ! !
 
@@ -42,11 +42,11 @@
 
     ^ #(
         "<className> or (<className> attributes...) in load order"
+        GitLibraryObject
         GitStatusCodes
         GitErrorKlass
         GitStructure
         GitObjectType
-        GitModel
         GitError
         GitObject
         GitCommit
@@ -122,6 +122,10 @@
         GitCheckoutOptions
         GitIndex
         GitWorkingCopyEntry
+        GitSignatureQuery
+        GitAuthorQuery
+        GitCommitterQuery
+        GitReference
     )
 !
 
@@ -196,7 +200,7 @@
     "Return a SVN revision number of myself.
      This number is updated after a commit"
 
-    ^ "$SVN-Revision:"'5               '"$"
+    ^ "$SVN-Revision:"'16              '"$"
 ! !
 
 !stx_libscm_git class methodsFor:'documentation'!