1
1
//! sync git api (various methods)
2
2
3
- use git2:: { IndexAddOption , Oid , Repository , RepositoryOpenFlags } ;
3
+ use git2:: {
4
+ Error , IndexAddOption , Oid , Repository , RepositoryOpenFlags ,
5
+ } ;
4
6
use scopetime:: scope_time;
5
7
use std:: path:: Path ;
6
8
@@ -31,19 +33,18 @@ pub fn repo(repo_path: &str) -> Repository {
31
33
}
32
34
33
35
/// this does not run any git hooks
34
- pub fn commit ( repo_path : & str , msg : & str ) -> Oid {
36
+ pub fn commit ( repo_path : & str , msg : & str ) -> Result < Oid , Error > {
35
37
scope_time ! ( "commit" ) ;
36
38
37
39
let repo = repo ( repo_path) ;
38
40
39
- let signature = repo. signature ( ) . unwrap ( ) ;
40
- let mut index = repo. index ( ) . unwrap ( ) ;
41
- let tree_id = index. write_tree ( ) . unwrap ( ) ;
42
- let tree = repo. find_tree ( tree_id) . unwrap ( ) ;
41
+ let signature = repo. signature ( ) ? ;
42
+ let mut index = repo. index ( ) ? ;
43
+ let tree_id = index. write_tree ( ) ? ;
44
+ let tree = repo. find_tree ( tree_id) ? ;
43
45
44
46
let parents = if let Ok ( reference) = repo. head ( ) {
45
- let parent =
46
- repo. find_commit ( reference. target ( ) . unwrap ( ) ) . unwrap ( ) ;
47
+ let parent = repo. find_commit ( reference. target ( ) . unwrap ( ) ) ?;
47
48
vec ! [ parent]
48
49
} else {
49
50
Vec :: new ( )
@@ -59,7 +60,6 @@ pub fn commit(repo_path: &str, msg: &str) -> Oid {
59
60
& tree,
60
61
parents. as_slice ( ) ,
61
62
)
62
- . unwrap ( )
63
63
}
64
64
65
65
/// add a file diff from workingdir to stage (will not add removed files see `stage_addremoved`)
@@ -144,7 +144,7 @@ mod tests {
144
144
145
145
assert_eq ! ( get_statuses( repo_path) , ( 0 , 1 ) ) ;
146
146
147
- commit ( repo_path, "commit msg" ) ;
147
+ commit ( repo_path, "commit msg" ) . unwrap ( ) ;
148
148
149
149
assert_eq ! ( get_statuses( repo_path) , ( 0 , 0 ) ) ;
150
150
}
@@ -169,7 +169,7 @@ mod tests {
169
169
170
170
assert_eq ! ( get_statuses( repo_path) , ( 0 , 1 ) ) ;
171
171
172
- commit ( repo_path, "commit msg" ) ;
172
+ commit ( repo_path, "commit msg" ) . unwrap ( ) ;
173
173
174
174
assert_eq ! ( get_statuses( repo_path) , ( 0 , 0 ) ) ;
175
175
}
@@ -256,7 +256,7 @@ mod tests {
256
256
257
257
assert_eq ! ( stage_add_file( repo_path, file_path) , true ) ;
258
258
259
- commit ( repo_path, "commit msg" ) ;
259
+ commit ( repo_path, "commit msg" ) . unwrap ( ) ;
260
260
261
261
// delete the file now
262
262
assert_eq ! ( remove_file( full_path) . is_ok( ) , true ) ;
0 commit comments