20
20
#include <oidset.h>
21
21
#include <tree.h>
22
22
23
- static const char * short_commit_name (struct commit * commit )
23
+ static const char * short_commit_name (struct repository * repo ,
24
+ struct commit * commit )
24
25
{
25
- return repo_find_unique_abbrev (the_repository , & commit -> object .oid ,
26
+ return repo_find_unique_abbrev (repo , & commit -> object .oid ,
26
27
DEFAULT_ABBREV );
27
28
}
28
29
29
- static struct commit * peel_committish (const char * name )
30
+ static struct commit * peel_committish (struct repository * repo , const char * name )
30
31
{
31
32
struct object * obj ;
32
33
struct object_id oid ;
33
34
34
- if (repo_get_oid (the_repository , name , & oid ))
35
+ if (repo_get_oid (repo , name , & oid ))
35
36
return NULL ;
36
- obj = parse_object (the_repository , & oid );
37
- return (struct commit * )repo_peel_to_type (the_repository , name , 0 , obj ,
37
+ obj = parse_object (repo , & oid );
38
+ return (struct commit * )repo_peel_to_type (repo , name , 0 , obj ,
38
39
OBJ_COMMIT );
39
40
}
40
41
@@ -50,7 +51,8 @@ static char *get_author(const char *message)
50
51
return NULL ;
51
52
}
52
53
53
- static struct commit * create_commit (struct tree * tree ,
54
+ static struct commit * create_commit (struct repository * repo ,
55
+ struct tree * tree ,
54
56
struct commit * based_on ,
55
57
struct commit * parent )
56
58
{
@@ -62,7 +64,7 @@ static struct commit *create_commit(struct tree *tree,
62
64
struct commit_extra_header * extra = NULL ;
63
65
struct strbuf msg = STRBUF_INIT ;
64
66
const char * out_enc = get_commit_output_encoding ();
65
- const char * message = repo_logmsg_reencode (the_repository , based_on ,
67
+ const char * message = repo_logmsg_reencode (repo , based_on ,
66
68
NULL , out_enc );
67
69
const char * orig_message = NULL ;
68
70
const char * exclude_gpgsig [] = { "gpgsig" , NULL };
@@ -79,7 +81,7 @@ static struct commit *create_commit(struct tree *tree,
79
81
goto out ;
80
82
}
81
83
82
- obj = parse_object (the_repository , & ret );
84
+ obj = parse_object (repo , & ret );
83
85
84
86
out :
85
87
free_commit_extra_headers (extra );
@@ -97,7 +99,8 @@ struct ref_info {
97
99
int negative_refexprs ;
98
100
};
99
101
100
- static void get_ref_information (struct rev_cmdline_info * cmd_info ,
102
+ static void get_ref_information (struct repository * repo ,
103
+ struct rev_cmdline_info * cmd_info ,
101
104
struct ref_info * ref_info )
102
105
{
103
106
int i ;
@@ -132,14 +135,14 @@ static void get_ref_information(struct rev_cmdline_info *cmd_info,
132
135
133
136
if (* refexpr == '^' )
134
137
refexpr ++ ;
135
- if (repo_dwim_ref (the_repository , refexpr , strlen (refexpr ), & oid , & fullname , 0 ) != 1 )
138
+ if (repo_dwim_ref (repo , refexpr , strlen (refexpr ), & oid , & fullname , 0 ) != 1 )
136
139
can_uniquely_dwim = 0 ;
137
140
138
141
if (e -> flags & BOTTOM ) {
139
142
if (can_uniquely_dwim )
140
143
strset_add (& ref_info -> negative_refs , fullname );
141
144
if (!ref_info -> negative_refexprs )
142
- ref_info -> onto = lookup_commit_reference_gently (the_repository ,
145
+ ref_info -> onto = lookup_commit_reference_gently (repo ,
143
146
& e -> item -> oid , 1 );
144
147
ref_info -> negative_refexprs ++ ;
145
148
} else {
@@ -152,31 +155,32 @@ static void get_ref_information(struct rev_cmdline_info *cmd_info,
152
155
}
153
156
}
154
157
155
- static void determine_replay_mode (struct rev_cmdline_info * cmd_info ,
158
+ static void determine_replay_mode (struct repository * repo ,
159
+ struct rev_cmdline_info * cmd_info ,
156
160
const char * onto_name ,
157
161
char * * advance_name ,
158
162
struct commit * * onto ,
159
163
struct strset * * update_refs )
160
164
{
161
165
struct ref_info rinfo ;
162
166
163
- get_ref_information (cmd_info , & rinfo );
167
+ get_ref_information (repo , cmd_info , & rinfo );
164
168
if (!rinfo .positive_refexprs )
165
169
die (_ ("need some commits to replay" ));
166
170
167
171
die_for_incompatible_opt2 (!!onto_name , "--onto" ,
168
172
!!* advance_name , "--advance" );
169
173
if (onto_name ) {
170
- * onto = peel_committish (onto_name );
174
+ * onto = peel_committish (repo , onto_name );
171
175
if (rinfo .positive_refexprs <
172
176
strset_get_size (& rinfo .positive_refs ))
173
177
die (_ ("all positive revisions given must be references" ));
174
178
} else if (* advance_name ) {
175
179
struct object_id oid ;
176
180
char * fullname = NULL ;
177
181
178
- * onto = peel_committish (* advance_name );
179
- if (repo_dwim_ref (the_repository , * advance_name , strlen (* advance_name ),
182
+ * onto = peel_committish (repo , * advance_name );
183
+ if (repo_dwim_ref (repo , * advance_name , strlen (* advance_name ),
180
184
& oid , & fullname , 0 ) == 1 ) {
181
185
free (* advance_name );
182
186
* advance_name = fullname ;
@@ -245,7 +249,8 @@ static struct commit *mapped_commit(kh_oid_map_t *replayed_commits,
245
249
return kh_value (replayed_commits , pos );
246
250
}
247
251
248
- static struct commit * pick_regular_commit (struct commit * pickme ,
252
+ static struct commit * pick_regular_commit (struct repository * repo ,
253
+ struct commit * pickme ,
249
254
kh_oid_map_t * replayed_commits ,
250
255
struct commit * onto ,
251
256
struct merge_options * merge_opt ,
@@ -257,12 +262,12 @@ static struct commit *pick_regular_commit(struct commit *pickme,
257
262
base = pickme -> parents -> item ;
258
263
replayed_base = mapped_commit (replayed_commits , base , onto );
259
264
260
- result -> tree = repo_get_commit_tree (the_repository , replayed_base );
261
- pickme_tree = repo_get_commit_tree (the_repository , pickme );
262
- base_tree = repo_get_commit_tree (the_repository , base );
265
+ result -> tree = repo_get_commit_tree (repo , replayed_base );
266
+ pickme_tree = repo_get_commit_tree (repo , pickme );
267
+ base_tree = repo_get_commit_tree (repo , base );
263
268
264
- merge_opt -> branch1 = short_commit_name (replayed_base );
265
- merge_opt -> branch2 = short_commit_name (pickme );
269
+ merge_opt -> branch1 = short_commit_name (repo , replayed_base );
270
+ merge_opt -> branch2 = short_commit_name (repo , pickme );
266
271
merge_opt -> ancestor = xstrfmt ("parent of %s" , merge_opt -> branch2 );
267
272
268
273
merge_incore_nonrecursive (merge_opt ,
@@ -275,13 +280,13 @@ static struct commit *pick_regular_commit(struct commit *pickme,
275
280
merge_opt -> ancestor = NULL ;
276
281
if (!result -> clean )
277
282
return NULL ;
278
- return create_commit (result -> tree , pickme , replayed_base );
283
+ return create_commit (repo , result -> tree , pickme , replayed_base );
279
284
}
280
285
281
286
int cmd_replay (int argc ,
282
287
const char * * argv ,
283
288
const char * prefix ,
284
- struct repository * repo UNUSED )
289
+ struct repository * repo )
285
290
{
286
291
const char * advance_name_opt = NULL ;
287
292
char * advance_name = NULL ;
@@ -329,7 +334,7 @@ int cmd_replay(int argc,
329
334
"--advance" , "--contained" );
330
335
advance_name = xstrdup_or_null (advance_name_opt );
331
336
332
- repo_init_revisions (the_repository , & revs , prefix );
337
+ repo_init_revisions (repo , & revs , prefix );
333
338
334
339
/*
335
340
* Set desired values for rev walking options here. If they
@@ -380,7 +385,7 @@ int cmd_replay(int argc,
380
385
revs .simplify_history = 0 ;
381
386
}
382
387
383
- determine_replay_mode (& revs .cmdline , onto_name , & advance_name ,
388
+ determine_replay_mode (repo , & revs .cmdline , onto_name , & advance_name ,
384
389
& onto , & update_refs );
385
390
386
391
if (!onto ) /* FIXME: Should handle replaying down to root commit */
@@ -391,7 +396,7 @@ int cmd_replay(int argc,
391
396
goto cleanup ;
392
397
}
393
398
394
- init_basic_merge_options (& merge_opt , the_repository );
399
+ init_basic_merge_options (& merge_opt , repo );
395
400
memset (& result , 0 , sizeof (result ));
396
401
merge_opt .show_rename_progress = 0 ;
397
402
last_commit = onto ;
@@ -406,8 +411,8 @@ int cmd_replay(int argc,
406
411
if (commit -> parents -> next )
407
412
die (_ ("replaying merge commits is not supported yet!" ));
408
413
409
- last_commit = pick_regular_commit (commit , replayed_commits , onto ,
410
- & merge_opt , & result );
414
+ last_commit = pick_regular_commit (repo , commit , replayed_commits ,
415
+ onto , & merge_opt , & result );
411
416
if (!last_commit )
412
417
break ;
413
418
0 commit comments