@@ -79,7 +79,7 @@ impl TodoList {
79
79
. ok ( )
80
80
. and_then ( |r| r. target ( ) ) ;
81
81
let mut labels: std:: collections:: HashMap < Label , git2:: Oid > = Default :: default ( ) ;
82
- for event in self . commands . iter ( ) {
82
+ for ( i , event) in self . commands . iter ( ) . enumerate ( ) {
83
83
match event {
84
84
Command :: Label ( label) => {
85
85
let current_oid = last_oid. ok_or_else ( || eyre:: eyre!( "no commits yet" ) ) ?;
@@ -110,14 +110,17 @@ impl TodoList {
110
110
} else {
111
111
repo. signature ( ) ?
112
112
} ;
113
- let message = tree. message . as_deref ( ) . unwrap_or ( "Automated" ) ;
113
+ let message = tree
114
+ . message
115
+ . clone ( )
116
+ . unwrap_or_else ( || format ! ( "Commit (command {i})" ) ) ;
114
117
let mut parents = Vec :: new ( ) ;
115
118
if let Some ( last_oid) = last_oid {
116
119
parents. push ( repo. find_commit ( last_oid) ?) ;
117
120
}
118
121
let parents = parents. iter ( ) . collect :: < Vec < _ > > ( ) ;
119
122
let current_oid =
120
- repo. commit ( None , & sig, & sig, message, & new_tree, & parents) ?;
123
+ repo. commit ( None , & sig, & sig, & message, & new_tree, & parents) ?;
121
124
last_oid = Some ( current_oid) ;
122
125
123
126
if let Some ( sleep) = self . sleep {
@@ -169,11 +172,21 @@ impl TodoList {
169
172
} else {
170
173
repo. signature ( ) ?
171
174
} ;
172
- let message = merge. message . as_deref ( ) . unwrap_or ( "Automated" ) ;
175
+ let message = merge. message . clone ( ) . unwrap_or_else ( || {
176
+ format ! (
177
+ "Merged {} (command {i})" ,
178
+ merge
179
+ . base
180
+ . iter( )
181
+ . map( |s| s. as_str( ) )
182
+ . collect:: <Vec <_>>( )
183
+ . join( " " ) ,
184
+ )
185
+ } ) ;
173
186
let ours_tree = repo. find_tree ( ours_tree_oid) ?;
174
187
let parents = parents. iter ( ) . collect :: < Vec < _ > > ( ) ;
175
188
let current_oid =
176
- repo. commit ( None , & sig, & sig, message, & ours_tree, & parents) ?;
189
+ repo. commit ( None , & sig, & sig, & message, & ours_tree, & parents) ?;
177
190
last_oid = Some ( current_oid) ;
178
191
179
192
if let Some ( sleep) = self . sleep {
@@ -195,8 +208,8 @@ impl TodoList {
195
208
} else {
196
209
repo. signature ( ) ?
197
210
} ;
198
- let message = "Automated" ;
199
- repo. tag ( tag. as_str ( ) , commit. as_object ( ) , & sig, message, true ) ?;
211
+ let message = format ! ( "Tag (command {i})" ) ;
212
+ repo. tag ( tag. as_str ( ) , commit. as_object ( ) , & sig, & message, true ) ?;
200
213
}
201
214
Command :: Head => {
202
215
let current_oid = last_oid. ok_or_else ( || eyre:: eyre!( "no commits yet" ) ) ?;
0 commit comments