- GitReference
authorvranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
Tue, 02 Oct 2012 15:41:46 +0000
changeset 25 7a92ac0c9318
parent 24 bce2a03d1070
child 26 7ce8b2978128
- GitReference added: #isGitReference - GitWorkingCopy added: #checkout #isOffRepo changed: #checkout: #index #setRepository: - GitRepository added: #detach changed: #index: - stx_libscm_git changed: #classNamesAndAttributes #extensionMethodNames #preRequisites - GitTests changed: #test_02a - extensions ...
git/GitReference.st
git/GitRepository.st
git/GitTests.st
git/GitWorkingCopy.st
git/abbrev.stc
git/extensions.st
git/git.rc
git/stx_libscm_git.st
--- a/git/GitReference.st	Tue Oct 02 13:53:10 2012 +0000
+++ b/git/GitReference.st	Tue Oct 02 15:41:46 2012 +0000
@@ -45,6 +45,14 @@
     "Created: / 25-09-2012 / 10:44:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!GitReference methodsFor:'testing'!
+
+isGitReference
+    ^true
+
+    "Created: / 02-10-2012 / 16:12:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !GitReference class methodsFor:'documentation'!
 
 version_SVN
--- a/git/GitRepository.st	Tue Oct 02 13:53:10 2012 +0000
+++ b/git/GitRepository.st	Tue Oct 02 15:41:46 2012 +0000
@@ -103,9 +103,10 @@
 index: aGitIndex
     "Sets repository working index to given index"
 
-    self assert: (aGitIndex isKindOf: aGitIndex).
+    self assert: (aGitIndex isKindOf: GitIndex).
     index := nil.
     GitPrimitives prim_git_repository_set_index: handle index: aGitIndex getHandle.
+    aGitIndex setRepository: self.
     index := aGitIndex
 
     "Created: / 02-10-2012 / 15:33:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -197,6 +198,24 @@
     "Created: / 25-09-2012 / 14:51:55 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
+detach
+    "Detach the HEAD.
+     If the HEAD is already detached and points to a Commit, 0 is returned.
+
+     If the HEAD is already detached and points to a Tag, the HEAD is
+     updated into making it point to the peeled Commit, and 0 is returned.
+
+     If the HEAD is already detached and points to a non commitish, the HEAD is 
+     unaletered, and -1 is returned.
+
+     Otherwise, the HEAD will be detached and point to the peeled Commit.
+    "
+
+    GitError raiseIfError: (GitPrimitives prim_git_repository_detach_head: handle).
+
+    "Created: / 02-10-2012 / 17:07:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
 push: aGitRemote
     "pushes all changes to given remote repository"
 
--- a/git/GitTests.st	Tue Oct 02 13:53:10 2012 +0000
+++ b/git/GitTests.st	Tue Oct 02 15:41:46 2012 +0000
@@ -100,24 +100,21 @@
 test_02a
 
     "Test scenario
-        - clone an existing repo
+        - create an off-repo working copy
         - modify some files
-        - commit changes
-        - push to origin
-        
+        - commit changes        
     "
 
-    | repoOrig repoClone wc file1_txt commit_oid commit |
+    | repo wcpath wc file1_txt commit_oid commit |
 
-    repoOrig := self repositoryNamed: 'test_repo_01'.
-    "
-    UserPreferences fileBrowserClass openOn: repoOrig path    
+    repo := self repositoryNamed: 'test_repo_01'.
+    wcpath := Filename newTemporary.
+    wc := repo workingCopyOn: wcpath.
     "
-    repoClone := repoOrig cloneTo: (repositories add: Filename newTemporary).
+    UserPreferences fileBrowserClass openOn: repo path    
+    UserPreferences fileBrowserClass openOn: wcpath
     "
-    UserPreferences fileBrowserClass openOn: repoClone path
-    "
-    wc := repoClone workingCopy.
+
     "Modify some file"
     file1_txt := wc / 'file1.txt'.
     self assert: file1_txt isModified not.
@@ -128,10 +125,10 @@
     wc stage.
     commit_oid := (wc commit: 'test_02a commit 1') oid.
 
-    wc repository push: (wc repository remotes at:#origin).
+    commit := repo lookup: commit_oid.
+    self assert: commit message = 'test_02a commit 1'.
 
-    commit := repoOrig lookup: commit_oid.
-    self assert: commit message = 'test_02a commit 1'
+    self halt.
 
     "Created: / 30-09-2012 / 19:01:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
--- a/git/GitWorkingCopy.st	Tue Oct 02 13:53:10 2012 +0000
+++ b/git/GitWorkingCopy.st	Tue Oct 02 15:41:46 2012 +0000
@@ -25,14 +25,14 @@
     index isNil ifTrue:[
         index := repository getIndex.
         index isNil ifTrue:[
-            (repository workdir asString = repository path asString) ifTrue:[
+            self isOffRepo ifFalse:[
                 "/ OK, this is a default working copy..."
                 index := repository index. "/ lazily initialized
-            ] ifFalse:[
+            ] ifTrue:[
                 | indexPath |
                 "/ Hmm...creating external working copy, create one"
 
-                indexPath := (repository path asFilename / '.git' / 'index_', self hash hexPrintString) pathName.
+                indexPath := (repository path asFilename / '.git' / ('index_', self hash hexPrintString)) pathName.
                 index := GitIndex on: indexPath.
                 index write.
                 repository index: index.
@@ -60,17 +60,29 @@
 
 !GitWorkingCopy methodsFor:'actions'!
 
-checkout: aStringOrOidOrTreeish
+checkout
+    self checkout: self reference
+
+    "Created: / 02-10-2012 / 16:19:40 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+!
+
+checkout: aStringOrOidOrTreeishOrReference
     | obj |
 
-    aStringOrOidOrTreeish isGitTreeish ifTrue:[
-        obj := aStringOrOidOrTreeish 
+    aStringOrOidOrTreeishOrReference isGitTreeish ifTrue:[
+        obj := aStringOrOidOrTreeishOrReference 
     ] ifFalse:[
         | oid |
 
-        oid := aStringOrOidOrTreeish isGitOid 
-                    ifTrue:[aStringOrOidOrTreeish]
-                    ifFalse:[GitOid fromString: aStringOrOidOrTreeish].
+        aStringOrOidOrTreeishOrReference isGitOid  ifTrue:[
+            oid := aStringOrOidOrTreeishOrReference
+        ] ifFalse:[
+            aStringOrOidOrTreeishOrReference isGitReference ifTrue:[
+                oid := aStringOrOidOrTreeishOrReference oid.
+            ] ifFalse:[
+                oid := GitOid fromString: aStringOrOidOrTreeishOrReference
+            ].
+        ].
         obj := repository lookup: oid.
     ].
 
@@ -156,6 +168,11 @@
 setRepository: aGitRepository
     super setRepository: aGitRepository.
     handle := aGitRepository getHandle.
+    self isOffRepo ifTrue:[
+        repository detach.
+        self index.
+        self checkout.
+    ].
     root := GitWorkingCopyEntry wc: self path: repository workdir.
 
     "Created: / 19-09-2012 / 09:43:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
@@ -200,6 +217,18 @@
     "Modified (comment): / 25-09-2012 / 00:39:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
+!GitWorkingCopy methodsFor:'testing'!
+
+isOffRepo
+    "Return true, if the working copy is off-repository, i.e.,
+     whether working copy path is not the same as repository
+     path."
+
+    ^repository workdir pathName ~= repository path
+
+    "Created: / 02-10-2012 / 16:09:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
 !GitWorkingCopy class methodsFor:'documentation'!
 
 version_SVN
--- a/git/abbrev.stc	Tue Oct 02 13:53:10 2012 +0000
+++ b/git/abbrev.stc	Tue Oct 02 15:41:46 2012 +0000
@@ -1,92 +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-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
+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-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
+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-Core' 0
-GitTree GitTree stx:libscm/git 'SCM-Git-Core' 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-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
+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-Core' 0
-GitTag GitTag stx:libscm/git 'SCM-Git-Core' 0
-GitCheckoutStrategy GitCheckoutStrategy stx:libscm/git 'SCM-Git-Core-Internal-Constants' 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-Core-Tests' 1
 GitTests GitTests stx:libscm/git 'SCM-Git-Core-Tests' 1
-GitCheckoutOptions GitCheckoutOptions stx:libscm/git 'SCM-Git-Core' 1
+GitCheckoutOptions GitCheckoutOptions stx:libscm/git 'SCM-Git-Model' 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
+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
 GitCommand GitCommand stx:libscm/git 'SCM-Git-Internal' 0
-GitStringArray GitStringArray stx:libscm/git 'SCM-Git-Core-Internal-Structures' 1
-GitRemote GitRemote stx:libscm/git 'SCM-Git-Core' 0
+GitStringArray GitStringArray stx:libscm/git 'SCM-Git-Internal-Structures' 1
+GitRemote GitRemote stx:libscm/git 'SCM-Git-Model' 0
 GitSourceCodeManagementSettingsAppl2 GitSourceCodeManagementSettingsAppl2 stx:libscm/git 'SCM-Git-StX-Config-UI' 1
 GitSourceCodeManager2 GitSourceCodeManager2 stx:libscm/git 'SCM-Git-StX' 0
--- a/git/extensions.st	Tue Oct 02 13:53:10 2012 +0000
+++ b/git/extensions.st	Tue Oct 02 15:41:46 2012 +0000
@@ -34,6 +34,14 @@
 
 !Object methodsFor:'testing'!
 
+isGitReference
+    ^false
+
+    "Created: / 02-10-2012 / 16:12:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
+
+!Object methodsFor:'testing'!
+
 isGitRepository
     ^false
 
--- a/git/git.rc	Tue Oct 02 13:53:10 2012 +0000
+++ b/git/git.rc	Tue Oct 02 15:41:46 2012 +0000
@@ -3,7 +3,7 @@
 // automagically generated from the projectDefinition: stx_libscm_git.
 //
 VS_VERSION_INFO VERSIONINFO
-  FILEVERSION     6,2,25,25
+  FILEVERSION     6,2,26,26
   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.25.25\0"
+      VALUE "FileVersion", "6.2.26.26\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", "Tue, 02 Oct 2012 13:53:53 GMT\0"
+      VALUE "ProductDate", "Tue, 02 Oct 2012 15:42:46 GMT\0"
     END
 
   END
--- a/git/stx_libscm_git.st	Tue Oct 02 13:53:10 2012 +0000
+++ b/git/stx_libscm_git.st	Tue Oct 02 15:41:46 2012 +0000
@@ -27,11 +27,11 @@
      exclude individual packages in the #excludedFromPrerequisites method."
 
     ^ #(
-        #'stx:goodies/sunit'    "TestAsserter - superclass of GitRepositoriesResource "
-        #'stx:libbasic'    "Notification - superclass of GitCommitterQuery "
+        #'stx:goodies/sunit'    "TestAsserter - superclass of GitTests "
+        #'stx:libbasic'    "ByteArray - superclass of GitOid "
         #'stx:libbasic3'    "AbstractSourceCodeManager - superclass of GitSourceCodeManager2 "
-        #'stx:libtool'    "AbstractSourceCodeManagementSettingsAppl - superclass of GitSourceCodeManagementSettingsAppl2 "
-        #'stx:libview'    "Depth1Image - referenced by GitSourceCodeManagementSettingsAppl2 class>>defaultIcon2 "
+        #'stx:libtool'    "AbstractSettingsApplication - superclass of GitSourceCodeManagementSettingsAppl2 "
+        #'stx:libview'    "Depth8Image - referenced by GitSourceCodeManagementSettingsAppl2 class>>defaultIcon2 "
         #'stx:libview2'    "ApplicationModel - superclass of GitSourceCodeManagementSettingsAppl2 "
     )
 ! !
@@ -151,6 +151,7 @@
         Object isGitTag
         Object isGitTree
         Object isGitTreeish
+        Object isGitReference
     )
 ! !