author | convert-repo |
Sat, 08 Jun 2019 03:28:26 +0000 | |
changeset 873 | e7944a5cb335 |
parent 481 | 0cfef855baa2 |
permissions | -rw-r--r-- |
0 | 1 |
"{ Package: 'stx:libscm/git' }" |
2 |
||
2
9731a2e41428
- More API methods...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
0
diff
changeset
|
3 |
GitObject subclass:#GitCommit |
20
24ae01b36807
fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
10
diff
changeset
|
4 |
instanceVariableNames:'author commiter message timestamp tree parents' |
0 | 5 |
classVariableNames:'' |
6 |
poolDictionaries:'' |
|
28
f6f0a4bbaaee
Class category rename (SCM-Git-Model -> SCM-Git-Core)
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
27
diff
changeset
|
7 |
category:'SCM-Git-Core' |
0 | 8 |
! |
9 |
||
10 |
||
11 |
!GitCommit class methodsFor:'accessing'! |
|
12 |
||
13 |
libraryName |
|
14 |
||
15 |
OperatingSystem isUNIXlike ifTrue:[^'libgit2.so']. |
|
16 |
||
17 |
OperatingSystem isMSWINDOWSlike ifTrue:[^'git2.dll']. |
|
18 |
||
19 |
self error:'Library name for host OS is not known' |
|
20 |
! |
|
21 |
||
22 |
structSize |
|
2
9731a2e41428
- More API methods...
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
0
diff
changeset
|
23 |
"Returns size of undelaying structure in bytes" |
0 | 24 |
|
25 |
^0 |
|
26 |
! ! |
|
27 |
||
3
2a4bf4fb54d8
- Better error handling
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
2
diff
changeset
|
28 |
!GitCommit methodsFor:'accessing'! |
2a4bf4fb54d8
- Better error handling
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
2
diff
changeset
|
29 |
|
4 | 30 |
/ name |
31 |
"Returns an tree entry with given name" |
|
32 |
||
33 |
^self tree / name |
|
34 |
||
35 |
"Created: / 10-09-2012 / 19:03:40 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
36 |
! |
|
37 |
||
8
4275f357d3e8
- API fixes, more to come
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
5
diff
changeset
|
38 |
author |
27
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
39 |
author isNil ifTrue:[ |
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
40 |
author := GitSignature new |
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
41 |
setHandle: (GitPrimitives prim_git_commit_author: handle) |
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
42 |
yourself. |
8
4275f357d3e8
- API fixes, more to come
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
5
diff
changeset
|
43 |
]. |
4275f357d3e8
- API fixes, more to come
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
5
diff
changeset
|
44 |
^author |
4275f357d3e8
- API fixes, more to come
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
5
diff
changeset
|
45 |
|
4275f357d3e8
- API fixes, more to come
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
5
diff
changeset
|
46 |
"Created: / 19-09-2012 / 01:23:35 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
4275f357d3e8
- API fixes, more to come
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
5
diff
changeset
|
47 |
! |
4275f357d3e8
- API fixes, more to come
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
5
diff
changeset
|
48 |
|
4275f357d3e8
- API fixes, more to come
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
5
diff
changeset
|
49 |
committer |
27
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
50 |
commiter isNil ifTrue:[ |
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
51 |
commiter := GitSignature new |
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
52 |
setHandleFromExternalAddress: (GitPrimitives prim_git_commit_committer: handle) |
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
53 |
yourself. |
8
4275f357d3e8
- API fixes, more to come
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
5
diff
changeset
|
54 |
]. |
4275f357d3e8
- API fixes, more to come
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
5
diff
changeset
|
55 |
^commiter |
4275f357d3e8
- API fixes, more to come
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
5
diff
changeset
|
56 |
|
4275f357d3e8
- API fixes, more to come
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
5
diff
changeset
|
57 |
"Created: / 19-09-2012 / 01:24:06 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
4275f357d3e8
- API fixes, more to come
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
5
diff
changeset
|
58 |
! |
4275f357d3e8
- API fixes, more to come
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
5
diff
changeset
|
59 |
|
3
2a4bf4fb54d8
- Better error handling
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
2
diff
changeset
|
60 |
message |
8
4275f357d3e8
- API fixes, more to come
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
5
diff
changeset
|
61 |
message isNil ifTrue:[ |
27
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
62 |
message := GitPrimitives prim_git_commit_message: handle. |
8
4275f357d3e8
- API fixes, more to come
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
5
diff
changeset
|
63 |
]. |
4275f357d3e8
- API fixes, more to come
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
5
diff
changeset
|
64 |
^message |
3
2a4bf4fb54d8
- Better error handling
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
2
diff
changeset
|
65 |
|
2a4bf4fb54d8
- Better error handling
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
2
diff
changeset
|
66 |
"Created: / 10-09-2012 / 14:34:31 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
4 | 67 |
! |
68 |
||
27
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
69 |
oid |
20
24ae01b36807
fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
10
diff
changeset
|
70 |
oid isNil ifTrue:[ |
27
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
71 |
oid := GitOid fromBytes: (GitPrimitives prim_git_commit_id: handle). |
20
24ae01b36807
fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
10
diff
changeset
|
72 |
]. |
24ae01b36807
fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
10
diff
changeset
|
73 |
^ oid |
24ae01b36807
fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
10
diff
changeset
|
74 |
|
24ae01b36807
fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
10
diff
changeset
|
75 |
"Created: / 30-09-2012 / 10:39:51 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
24ae01b36807
fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
10
diff
changeset
|
76 |
! |
24ae01b36807
fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
10
diff
changeset
|
77 |
|
24ae01b36807
fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
10
diff
changeset
|
78 |
parents |
24ae01b36807
fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
10
diff
changeset
|
79 |
parents isNil ifTrue:[ |
27
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
80 |
| nparents ref err | |
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
81 |
nparents := GitPrimitives prim_git_commit_parentcount: handle. |
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
82 |
parents := Array new: nparents. |
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
83 |
ref := ByteArray new: ExternalBytes sizeofPointer. |
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
84 |
0 to: nparents - 1 do:[:n| |
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
85 |
| parent | |
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
86 |
err := GitPrimitives prim_git_commit_parent: ref commit: handle n: n. |
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
87 |
GitError raiseIfError: err. |
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
88 |
parent := GitCommit new. |
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
89 |
parent setHandleFromRef: ref. |
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
90 |
parents at: n + 1 put: parent. |
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
91 |
]. |
20
24ae01b36807
fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
10
diff
changeset
|
92 |
]. |
24ae01b36807
fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
10
diff
changeset
|
93 |
|
24ae01b36807
fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
10
diff
changeset
|
94 |
^parents. |
24ae01b36807
fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
10
diff
changeset
|
95 |
|
24ae01b36807
fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
10
diff
changeset
|
96 |
"Created: / 30-09-2012 / 10:41:27 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
24ae01b36807
fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
10
diff
changeset
|
97 |
! |
24ae01b36807
fixes, test_01a finished & passed on linux
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
10
diff
changeset
|
98 |
|
4 | 99 |
tree |
100 |
"Return a GitTree associated with this commit" |
|
101 |
||
27
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
102 |
tree isNil ifTrue:[ |
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
103 |
| ref oid | |
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
104 |
ref := ByteArray new: ExternalBytes sizeofPointer. |
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
105 |
GitError raiseIfError: (GitPrimitives prim_git_commit_tree: ref commit: handle). |
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
106 |
oid := GitPrimitives prim_git_commit_tree_oid: handle. |
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
107 |
tree := GitTree new |
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
108 |
setHandleFromRef: ref; |
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
109 |
setOid: oid; |
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
110 |
setRepository: self repository; |
a36a11925d3f
Class category renames
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
20
diff
changeset
|
111 |
yourself. |
4 | 112 |
]. |
113 |
^tree |
|
114 |
||
115 |
"Created: / 10-09-2012 / 19:02:52 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
3
2a4bf4fb54d8
- Better error handling
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
2
diff
changeset
|
116 |
! ! |
2a4bf4fb54d8
- Better error handling
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
2
diff
changeset
|
117 |
|
5
57c20a77e549
- Refactored to use handles
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
4
diff
changeset
|
118 |
!GitCommit methodsFor:'private-accessing'! |
57c20a77e549
- Refactored to use handles
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
4
diff
changeset
|
119 |
|
57c20a77e549
- Refactored to use handles
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
4
diff
changeset
|
120 |
getHandleClass |
57c20a77e549
- Refactored to use handles
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
4
diff
changeset
|
121 |
^GitCommitHandle |
57c20a77e549
- Refactored to use handles
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
4
diff
changeset
|
122 |
|
57c20a77e549
- Refactored to use handles
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
4
diff
changeset
|
123 |
"Created: / 17-09-2012 / 21:20:45 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
57c20a77e549
- Refactored to use handles
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
4
diff
changeset
|
124 |
! ! |
57c20a77e549
- Refactored to use handles
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
4
diff
changeset
|
125 |
|
9
2783c9882d30
- GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
8
diff
changeset
|
126 |
!GitCommit methodsFor:'testing'! |
2783c9882d30
- GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
8
diff
changeset
|
127 |
|
10 | 128 |
isGitCommit |
9
2783c9882d30
- GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
8
diff
changeset
|
129 |
^true |
2783c9882d30
- GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
8
diff
changeset
|
130 |
|
10 | 131 |
"Created: / 19-09-2012 / 13:57:54 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
9
2783c9882d30
- GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
8
diff
changeset
|
132 |
! |
2783c9882d30
- GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
8
diff
changeset
|
133 |
|
10 | 134 |
isGitTreeish |
9
2783c9882d30
- GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
8
diff
changeset
|
135 |
^true |
2783c9882d30
- GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
8
diff
changeset
|
136 |
|
10 | 137 |
"Created: / 19-09-2012 / 13:57:58 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
9
2783c9882d30
- GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
8
diff
changeset
|
138 |
! ! |
2783c9882d30
- GitSubmoduleUpdateType
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
8
diff
changeset
|
139 |
|
0 | 140 |
!GitCommit class methodsFor:'documentation'! |
141 |
||
31
d96d7eff6efc
- GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
28
diff
changeset
|
142 |
version_GIT |
d96d7eff6efc
- GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
28
diff
changeset
|
143 |
"Never, ever change this method. Ask JV or CG why" |
d96d7eff6efc
- GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
28
diff
changeset
|
144 |
^thisContext method mclass theNonMetaclass instVarNamed: #revision |
d96d7eff6efc
- GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
28
diff
changeset
|
145 |
! |
d96d7eff6efc
- GitDiffDeltaStructure
vranyj1@bd9d3459-6c23-4dd9-91de-98eeebb81177
parents:
28
diff
changeset
|
146 |
|
0 | 147 |
version_SVN |
481
0cfef855baa2
Initial import from upstream repository
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
31
diff
changeset
|
148 |
^ '$Id$' |
0 | 149 |
! ! |