git/GitRepository.st
author vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
Fri, 07 Sep 2012 23:38:22 +0000
changeset 1 8f4fde3c7129
parent 0 71c763bbb4bc
child 2 9731a2e41428
permissions -rw-r--r--
- GitHandle added: #basicFree #version_SVN changed: #free category of: - GitObject class definition added: #basicFree #finalize #free - GitPrimitives added: #dllPath #initialize #libraryName - GitRepository class definition added: #basicFree #finalize #free #open: - GitStructure added:7 methods category of: - GitSignature class definition added: #basicFree - stx_libscm_git changed: #classNamesAndAttributes #extensionMethodNames #preRequisites
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     1
"{ Package: 'stx:libscm/git' }"
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     2
1
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
     3
GitHandle subclass:#GitRepository
0
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     4
	instanceVariableNames:''
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     5
	classVariableNames:''
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     6
	poolDictionaries:''
1
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
     7
	category:'Git-Model'
0
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     8
!
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     9
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    10
1
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    11
!GitRepository class methodsFor:'instance creation'!
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    12
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    13
open: aString
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    14
    | ref err |
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    15
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    16
    ref := ByteArray new: ExternalBytes sizeofPointer.
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    17
    err := GitPrimitives prim_git_repository_open: ref path: aString.
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    18
    err ~~ 0 ifTrue:[
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    19
        self error:'gitlib2 error'
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    20
    ].
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    21
    ^self new setAddressFromBytes:ref
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    22
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    23
    "Created: / 07-09-2012 / 23:45:19 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    24
! !
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    25
0
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    26
!GitRepository class methodsFor:'accessing'!
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    27
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    28
libraryName
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    29
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    30
    OperatingSystem isUNIXlike ifTrue:[^'libgit2.so'].
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    31
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    32
    OperatingSystem isMSWINDOWSlike ifTrue:[^'git2.dll'].
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    33
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    34
    self error:'Library name for host OS is not known'
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    35
!
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    36
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    37
structSize
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    38
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    39
    ^0
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    40
! !
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    41
1
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    42
!GitRepository methodsFor:'finalization'!
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    43
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    44
basicFree
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    45
    GitPrimitives prim_git_object_free: self.
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    46
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    47
    "Created: / 08-09-2012 / 00:20:34 / Jan Vrany <jan.vrany@fit.cvut.cz>"
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    48
! !
8f4fde3c7129 - GitHandle
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 0
diff changeset
    49
0
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    50
!GitRepository class methodsFor:'documentation'!
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    51
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    52
version_SVN
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    53
    ^ '$Id::                                                                                                                        $'
71c763bbb4bc - GitConfig
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    54
! !