git/GitWorkingCopy.st
author vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
Sun, 30 Sep 2012 08:42:35 +0000
changeset 20 24ae01b36807
parent 18 d359fb6d415c
child 23 5cbdd3cb7ce4
permissions -rw-r--r--
fixes, test_01a finished & passed on linux
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9
2783c9882d30 - GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     1
"{ Package: 'stx:libscm/git' }"
2783c9882d30 - GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     2
16
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
     3
GitLibraryObject subclass:#GitWorkingCopy
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
     4
	instanceVariableNames:'repository reference commit index root detached'
9
2783c9882d30 - GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     5
	classVariableNames:''
15
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
     6
	poolDictionaries:'GitStatusCodes'
9
2783c9882d30 - GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     7
	category:'SCM-Git-Model'
2783c9882d30 - GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     8
!
2783c9882d30 - GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
     9
2783c9882d30 - GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
    10
15
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    11
!GitWorkingCopy methodsFor:'accessing'!
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    12
20
24ae01b36807 fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 18
diff changeset
    13
commit
24ae01b36807 fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 18
diff changeset
    14
    commit isNil ifTrue:[
24ae01b36807 fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 18
diff changeset
    15
        commit := repository lookup: self reference oid.
24ae01b36807 fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 18
diff changeset
    16
    ].
24ae01b36807 fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 18
diff changeset
    17
    ^ commit
24ae01b36807 fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 18
diff changeset
    18
24ae01b36807 fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 18
diff changeset
    19
    "Modified: / 30-09-2012 / 10:25:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24ae01b36807 fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 18
diff changeset
    20
!
24ae01b36807 fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 18
diff changeset
    21
15
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    22
index
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    23
    "Get the Index file for this repository."
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    24
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    25
    index isNil ifTrue:[
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    26
        | ref err |
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    27
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    28
        ref := ByteArray new: ExternalBytes sizeofPointer.
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    29
        err := GitPrimitives prim_git_repository_index: ref repo: handle.
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    30
        GitError raiseIfError: err.
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    31
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    32
        index := GitIndex new
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    33
            setHandleFromRef: ref;
18
d359fb6d415c - Basic simple commit works - timestamp in signatures are messed up, though.
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 16
diff changeset
    34
            setRepository: repository;
15
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    35
            yourself
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    36
    ].
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    37
    ^ index
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    38
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    39
    "Created: / 24-09-2012 / 15:42:05 / Jan Vrany <jan.vrany@fit.cvut.cz>"
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    40
!
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    41
20
24ae01b36807 fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 18
diff changeset
    42
reference
24ae01b36807 fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 18
diff changeset
    43
    reference isNil ifTrue:[
24ae01b36807 fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 18
diff changeset
    44
        reference := repository head.
24ae01b36807 fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 18
diff changeset
    45
        detached := repository headIsDetached.
24ae01b36807 fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 18
diff changeset
    46
    ].
24ae01b36807 fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 18
diff changeset
    47
    ^reference
24ae01b36807 fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 18
diff changeset
    48
24ae01b36807 fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 18
diff changeset
    49
    "Created: / 30-09-2012 / 10:24:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
24ae01b36807 fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 18
diff changeset
    50
!
24ae01b36807 fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 18
diff changeset
    51
15
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    52
root
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    53
    ^ root
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    54
! !
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    55
10
3d98ee6c5c64 - GitStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 9
diff changeset
    56
!GitWorkingCopy methodsFor:'actions'!
3d98ee6c5c64 - GitStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 9
diff changeset
    57
3d98ee6c5c64 - GitStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 9
diff changeset
    58
checkout: aStringOrOidOrTreeish
3d98ee6c5c64 - GitStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 9
diff changeset
    59
    | obj |
3d98ee6c5c64 - GitStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 9
diff changeset
    60
3d98ee6c5c64 - GitStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 9
diff changeset
    61
    aStringOrOidOrTreeish isGitTreeish ifTrue:[
3d98ee6c5c64 - GitStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 9
diff changeset
    62
        obj := aStringOrOidOrTreeish 
3d98ee6c5c64 - GitStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 9
diff changeset
    63
    ] ifFalse:[
3d98ee6c5c64 - GitStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 9
diff changeset
    64
        | oid |
3d98ee6c5c64 - GitStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 9
diff changeset
    65
3d98ee6c5c64 - GitStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 9
diff changeset
    66
        oid := aStringOrOidOrTreeish isGitOid 
3d98ee6c5c64 - GitStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 9
diff changeset
    67
                    ifTrue:[aStringOrOidOrTreeish]
3d98ee6c5c64 - GitStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 9
diff changeset
    68
                    ifFalse:[GitOid fromString: aStringOrOidOrTreeish].
3d98ee6c5c64 - GitStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 9
diff changeset
    69
        obj := repository lookup: oid.
3d98ee6c5c64 - GitStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 9
diff changeset
    70
    ].
3d98ee6c5c64 - GitStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 9
diff changeset
    71
16
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
    72
    repository checkout: obj.
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
    73
    commit := obj.
10
3d98ee6c5c64 - GitStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 9
diff changeset
    74
3d98ee6c5c64 - GitStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 9
diff changeset
    75
    "Created: / 19-09-2012 / 14:00:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
15
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    76
!
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
    77
16
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
    78
commit: message
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
    79
    self commit: message tree: index tree
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
    80
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
    81
    "Created: / 25-09-2012 / 10:19:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
    82
!
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
    83
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
    84
commit: message tree: tree
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
    85
    self commit: message tree: tree parents: (Array with: commit)
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
    86
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
    87
    "Created: / 25-09-2012 / 11:09:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
    88
!
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
    89
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
    90
commit: message tree: tree parents: parents 
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
    91
    self commit: message tree: tree parents: parents update: (detached ifTrue:[nil] ifFalse:[reference]).
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
    92
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
    93
    "Created: / 25-09-2012 / 11:11:23 / Jan Vrany <jan.vrany@fit.cvut.cz>"
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
    94
!
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
    95
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
    96
commit: message tree: tree parents: parents update: refOrNil
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
    97
    ^self commit: message tree: tree parents: parents update: refOrNil commiter: nil.
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
    98
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
    99
    "Created: / 25-09-2012 / 12:24:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
   100
!
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
   101
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
   102
commit: message tree: tree parents: parents update: refOrNil commiter: commiterOrNil
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
   103
    ^self commit: message tree: tree parents: parents update: refOrNil commiter: commiterOrNil author: nil
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
   104
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
   105
    "Created: / 25-09-2012 / 14:50:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
   106
!
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
   107
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
   108
commit: message tree: tree parents: parents update: refOrNil commiter: commiterOrNil author: authorOrNil
20
24ae01b36807 fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 18
diff changeset
   109
    reference := commit := detached := nil.
16
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
   110
    ^repository commit: message tree: tree parents: parents update: refOrNil commiter: commiterOrNil author: authorOrNil
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
   111
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
   112
    "Created: / 25-09-2012 / 14:50:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
   113
!
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
   114
15
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   115
stage
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   116
    "Stage all unstaged files"
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   117
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   118
    self entriesAndStatusesDo: [:entry :status|
16
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
   119
        (status bitAnd: (GIT_STATUS_WT_MODIFIED | GIT_STATUS_WT_DELETED)) ~~ 0 ifTrue:[
15
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   120
            self index add: entry.            
16
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
   121
        ] ifFalse:[
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
   122
            (status bitAnd: (GIT_STATUS_WT_DELETED)) ~~ 0 ifTrue:[
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
   123
                self index remove: entry.
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
   124
            ].
15
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   125
        ].
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   126
    ].
16
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
   127
    self index write
15
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   128
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   129
    "Created: / 25-09-2012 / 00:13:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   130
! !
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   131
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   132
!GitWorkingCopy methodsFor:'enumerating'!
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   133
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   134
entriesAndStatusesDo: aBlock
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   135
    | cb err |
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   136
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   137
    cb := ExternalFunctionCallback new.
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   138
    cb returnType:#int argumentTypes: #(charPointer int pointer).
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   139
    cb action:[:path :status :payload|
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   140
        aBlock value: (root / path copyCStringFromHeap) value: status
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   141
    ].
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   142
    cb generateClosure.
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   143
    err := GitPrimitives prim_git_status_foreach: repository getHandle callback: cb payload: nil.
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   144
    GitError raiseIfError: err.
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   145
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   146
    "Created: / 25-09-2012 / 00:11:38 / Jan Vrany <jan.vrany@fit.cvut.cz>"
10
3d98ee6c5c64 - GitStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 9
diff changeset
   147
! !
3d98ee6c5c64 - GitStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 9
diff changeset
   148
9
2783c9882d30 - GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   149
!GitWorkingCopy methodsFor:'initialization'!
2783c9882d30 - GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   150
2783c9882d30 - GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   151
setRepository: aGitRepository
16
83e178bfe891 - GitCommitterQuery
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 15
diff changeset
   152
    handle := aGitRepository getHandle.
15
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   153
    repository := aGitRepository.
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   154
    root := GitWorkingCopyEntry wc: self path: repository workdir.
9
2783c9882d30 - GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   155
2783c9882d30 - GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   156
    "Created: / 19-09-2012 / 09:43:47 / Jan Vrany <jan.vrany@fit.cvut.cz>"
2783c9882d30 - GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   157
! !
2783c9882d30 - GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   158
15
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   159
!GitWorkingCopy methodsFor:'initialization & release'!
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   160
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   161
free
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   162
    "Nothing to do, I have no backing structure"
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   163
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   164
    "Modified: / 25-09-2012 / 00:39:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   165
! !
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   166
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   167
!GitWorkingCopy methodsFor:'instance creation'!
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   168
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   169
/ aString
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   170
    ^root construct: aString
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   171
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   172
    "Created: / 24-09-2012 / 13:49:45 / Jan Vrany <jan.vrany@fit.cvut.cz>"
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   173
!
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   174
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   175
construct: aString
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   176
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   177
    ^root construct: aString
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   178
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   179
    "Created: / 24-09-2012 / 13:50:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   180
! !
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   181
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   182
!GitWorkingCopy methodsFor:'private'!
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   183
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   184
statusOf: aStringOrFilenameOrWorkingCopyEntry
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   185
    ^repository statusOf: aStringOrFilenameOrWorkingCopyEntry
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   186
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   187
    "Created: / 24-09-2012 / 22:36:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   188
! !
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   189
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   190
!GitWorkingCopy methodsFor:'private-accessing'!
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   191
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   192
getHandleClass
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   193
    ^ self shouldNotImplement
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   194
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   195
    "Modified (comment): / 25-09-2012 / 00:39:28 / Jan Vrany <jan.vrany@fit.cvut.cz>"
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   196
! !
40921d056f87 - GitRepository
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents: 10
diff changeset
   197
9
2783c9882d30 - GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   198
!GitWorkingCopy class methodsFor:'documentation'!
2783c9882d30 - GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   199
2783c9882d30 - GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   200
version_SVN
2783c9882d30 - GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   201
    ^ '$Id::                                                                                                                        $'
2783c9882d30 - GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
diff changeset
   202
! !