revision.c: remove implicit dependency on the_index
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
							parent
							
								
									26d024ecf0
								
							
						
					
					
						commit
						2abf350385
					
				|  | @ -15,9 +15,9 @@ revision list. | |||
| Functions | ||||
| --------- | ||||
|  | ||||
| `init_revisions`:: | ||||
| `repo_init_revisions`:: | ||||
|  | ||||
| 	Initialize a rev_info structure with default values. The second | ||||
| 	Initialize a rev_info structure with default values. The third | ||||
| 	parameter may be NULL or can be prefix path, and then the `.prefix` | ||||
| 	variable will be set to it. This is typically the first function you | ||||
| 	want to call when you want to deal with a revision list. After calling | ||||
|  |  | |||
							
								
								
									
										4
									
								
								bisect.c
								
								
								
								
							
							
						
						
									
										4
									
								
								bisect.c
								
								
								
								
							|  | @ -632,7 +632,7 @@ static void bisect_rev_setup(struct rev_info *revs, const char *prefix, | |||
| 	struct argv_array rev_argv = ARGV_ARRAY_INIT; | ||||
| 	int i; | ||||
|  | ||||
| 	init_revisions(revs, prefix); | ||||
| 	repo_init_revisions(the_repository, revs, prefix); | ||||
| 	revs->abbrev = 0; | ||||
| 	revs->commit_format = CMIT_FMT_UNSPECIFIED; | ||||
|  | ||||
|  | @ -889,7 +889,7 @@ static void show_diff_tree(const char *prefix, struct commit *commit) | |||
| 	struct rev_info opt; | ||||
|  | ||||
| 	/* diff-tree init */ | ||||
| 	init_revisions(&opt, prefix); | ||||
| 	repo_init_revisions(the_repository, &opt, prefix); | ||||
| 	git_config(git_diff_basic_config, NULL); /* no "diff" UI options */ | ||||
| 	opt.abbrev = 0; | ||||
| 	opt.diff = 1; | ||||
|  |  | |||
|  | @ -110,7 +110,7 @@ int add_files_to_cache(const char *prefix, | |||
| 	memset(&data, 0, sizeof(data)); | ||||
| 	data.flags = flags; | ||||
|  | ||||
| 	init_revisions(&rev, prefix); | ||||
| 	repo_init_revisions(the_repository, &rev, prefix); | ||||
| 	setup_revisions(0, NULL, &rev, NULL); | ||||
| 	if (pathspec) | ||||
| 		copy_pathspec(&rev.prune_data, pathspec); | ||||
|  | @ -232,7 +232,7 @@ static int edit_patch(int argc, const char **argv, const char *prefix) | |||
| 	if (read_cache() < 0) | ||||
| 		die(_("Could not read the index")); | ||||
|  | ||||
| 	init_revisions(&rev, prefix); | ||||
| 	repo_init_revisions(the_repository, &rev, prefix); | ||||
| 	rev.diffopt.context = 7; | ||||
|  | ||||
| 	argc = setup_revisions(argc, argv, &rev, NULL); | ||||
|  |  | |||
|  | @ -1372,7 +1372,7 @@ static void write_commit_patch(const struct am_state *state, struct commit *comm | |||
| 	FILE *fp; | ||||
|  | ||||
| 	fp = xfopen(am_path(state, "patch"), "w"); | ||||
| 	init_revisions(&rev_info, NULL); | ||||
| 	repo_init_revisions(the_repository, &rev_info, NULL); | ||||
| 	rev_info.diff = 1; | ||||
| 	rev_info.abbrev = 0; | ||||
| 	rev_info.disable_stdin = 1; | ||||
|  | @ -1407,7 +1407,7 @@ static void write_index_patch(const struct am_state *state) | |||
| 				   the_repository->hash_algo->empty_tree); | ||||
|  | ||||
| 	fp = xfopen(am_path(state, "patch"), "w"); | ||||
| 	init_revisions(&rev_info, NULL); | ||||
| 	repo_init_revisions(the_repository, &rev_info, NULL); | ||||
| 	rev_info.diff = 1; | ||||
| 	rev_info.disable_stdin = 1; | ||||
| 	rev_info.no_commit_id = 1; | ||||
|  | @ -1565,7 +1565,7 @@ static int fall_back_threeway(const struct am_state *state, const char *index_pa | |||
| 		struct rev_info rev_info; | ||||
| 		const char *diff_filter_str = "--diff-filter=AM"; | ||||
|  | ||||
| 		init_revisions(&rev_info, NULL); | ||||
| 		repo_init_revisions(the_repository, &rev_info, NULL); | ||||
| 		rev_info.diffopt.output_format = DIFF_FORMAT_NAME_STATUS; | ||||
| 		diff_opt_parse(&rev_info.diffopt, &diff_filter_str, 1, rev_info.prefix); | ||||
| 		add_pending_oid(&rev_info, "HEAD", &our_tree, 0); | ||||
|  |  | |||
|  | @ -830,7 +830,7 @@ int cmd_blame(int argc, const char **argv, const char *prefix) | |||
|  | ||||
| 	setup_default_color_by_age(); | ||||
| 	git_config(git_blame_config, &output_option); | ||||
| 	init_revisions(&revs, NULL); | ||||
| 	repo_init_revisions(the_repository, &revs, NULL); | ||||
| 	revs.date_mode = blame_date_mode; | ||||
| 	revs.diffopt.flags.allow_textconv = 1; | ||||
| 	revs.diffopt.flags.follow_renames = 1; | ||||
|  |  | |||
|  | @ -392,7 +392,7 @@ static void show_local_changes(struct object *head, | |||
| { | ||||
| 	struct rev_info rev; | ||||
| 	/* I think we want full paths, even if we're in a subdirectory. */ | ||||
| 	init_revisions(&rev, NULL); | ||||
| 	repo_init_revisions(the_repository, &rev, NULL); | ||||
| 	rev.diffopt.flags = opts->flags; | ||||
| 	rev.diffopt.output_format |= DIFF_FORMAT_NAME_STATUS; | ||||
| 	diff_setup_done(&rev.diffopt); | ||||
|  | @ -801,7 +801,7 @@ static void orphaned_commit_warning(struct commit *old_commit, struct commit *ne | |||
| 	struct rev_info revs; | ||||
| 	struct object *object = &old_commit->object; | ||||
|  | ||||
| 	init_revisions(&revs, NULL); | ||||
| 	repo_init_revisions(the_repository, &revs, NULL); | ||||
| 	setup_revisions(0, NULL, &revs, NULL); | ||||
|  | ||||
| 	object->flags &= ~UNINTERESTING; | ||||
|  |  | |||
|  | @ -980,7 +980,7 @@ static const char *find_author_by_nickname(const char *name) | |||
| 	const char *av[20]; | ||||
| 	int ac = 0; | ||||
|  | ||||
| 	init_revisions(&revs, NULL); | ||||
| 	repo_init_revisions(the_repository, &revs, NULL); | ||||
| 	strbuf_addf(&buf, "--author=%s", name); | ||||
| 	av[++ac] = "--all"; | ||||
| 	av[++ac] = "-i"; | ||||
|  |  | |||
|  | @ -488,7 +488,7 @@ static void describe_blob(struct object_id oid, struct strbuf *dst) | |||
| 		"--objects", "--in-commit-order", "--reverse", "HEAD", | ||||
| 		NULL); | ||||
|  | ||||
| 	init_revisions(&revs, NULL); | ||||
| 	repo_init_revisions(the_repository, &revs, NULL); | ||||
| 	if (setup_revisions(args.argc, args.argv, &revs, NULL) > 1) | ||||
| 		BUG("setup_revisions could not handle all args?"); | ||||
|  | ||||
|  | @ -636,7 +636,7 @@ int cmd_describe(int argc, const char **argv, const char *prefix) | |||
| 			if (0 <= fd) | ||||
| 				update_index_if_able(&the_index, &index_lock); | ||||
|  | ||||
| 			init_revisions(&revs, prefix); | ||||
| 			repo_init_revisions(the_repository, &revs, prefix); | ||||
| 			argv_array_pushv(&args, diff_index_args); | ||||
| 			if (setup_revisions(args.argc, args.argv, &revs, NULL) != 1) | ||||
| 				BUG("malformed internal diff-index command line"); | ||||
|  |  | |||
|  | @ -25,7 +25,7 @@ int cmd_diff_files(int argc, const char **argv, const char *prefix) | |||
| 		usage(diff_files_usage); | ||||
|  | ||||
| 	git_config(git_diff_basic_config, NULL); /* no "diff" UI options */ | ||||
| 	init_revisions(&rev, prefix); | ||||
| 	repo_init_revisions(the_repository, &rev, prefix); | ||||
| 	rev.abbrev = 0; | ||||
| 	precompose_argv(argc, argv); | ||||
|  | ||||
|  |  | |||
|  | @ -22,7 +22,7 @@ int cmd_diff_index(int argc, const char **argv, const char *prefix) | |||
| 		usage(diff_cache_usage); | ||||
|  | ||||
| 	git_config(git_diff_basic_config, NULL); /* no "diff" UI options */ | ||||
| 	init_revisions(&rev, prefix); | ||||
| 	repo_init_revisions(the_repository, &rev, prefix); | ||||
| 	rev.abbrev = 0; | ||||
| 	precompose_argv(argc, argv); | ||||
|  | ||||
|  |  | |||
|  | @ -110,7 +110,7 @@ int cmd_diff_tree(int argc, const char **argv, const char *prefix) | |||
| 		usage(diff_tree_usage); | ||||
|  | ||||
| 	git_config(git_diff_basic_config, NULL); /* no "diff" UI options */ | ||||
| 	init_revisions(opt, prefix); | ||||
| 	repo_init_revisions(the_repository, opt, prefix); | ||||
| 	if (read_cache() < 0) | ||||
| 		die(_("index file corrupt")); | ||||
| 	opt->abbrev = 0; | ||||
|  |  | |||
|  | @ -318,7 +318,7 @@ int cmd_diff(int argc, const char **argv, const char *prefix) | |||
| 	git_config(git_diff_ui_config, NULL); | ||||
| 	precompose_argv(argc, argv); | ||||
|  | ||||
| 	init_revisions(&rev, prefix); | ||||
| 	repo_init_revisions(the_repository, &rev, prefix); | ||||
|  | ||||
| 	if (no_index && argc != i + 2) { | ||||
| 		if (no_index == DIFF_NO_INDEX_IMPLICIT) { | ||||
|  |  | |||
|  | @ -1033,7 +1033,7 @@ int cmd_fast_export(int argc, const char **argv, const char *prefix) | |||
| 	/* we handle encodings */ | ||||
| 	git_config(git_default_config, NULL); | ||||
|  | ||||
| 	init_revisions(&revs, prefix); | ||||
| 	repo_init_revisions(the_repository, &revs, prefix); | ||||
| 	init_revision_sources(&revision_sources); | ||||
| 	revs.topo_order = 1; | ||||
| 	revs.sources = &revision_sources; | ||||
|  |  | |||
|  | @ -642,7 +642,7 @@ int fmt_merge_msg(struct strbuf *in, struct strbuf *out, | |||
| 		struct rev_info rev; | ||||
|  | ||||
| 		head = lookup_commit_or_die(&head_oid, "HEAD"); | ||||
| 		init_revisions(&rev, NULL); | ||||
| 		repo_init_revisions(the_repository, &rev, NULL); | ||||
| 		rev.commit_format = CMIT_FMT_ONELINE; | ||||
| 		rev.ignore_merges = 1; | ||||
| 		rev.limited = 1; | ||||
|  |  | |||
|  | @ -467,7 +467,7 @@ int cmd_whatchanged(int argc, const char **argv, const char *prefix) | |||
| 	init_log_defaults(); | ||||
| 	git_config(git_log_config, NULL); | ||||
|  | ||||
| 	init_revisions(&rev, prefix); | ||||
| 	repo_init_revisions(the_repository, &rev, prefix); | ||||
| 	rev.diff = 1; | ||||
| 	rev.simplify_history = 0; | ||||
| 	memset(&opt, 0, sizeof(opt)); | ||||
|  | @ -585,7 +585,7 @@ int cmd_show(int argc, const char **argv, const char *prefix) | |||
| 	git_config(git_log_config, NULL); | ||||
|  | ||||
| 	memset(&match_all, 0, sizeof(match_all)); | ||||
| 	init_revisions(&rev, prefix); | ||||
| 	repo_init_revisions(the_repository, &rev, prefix); | ||||
| 	rev.diff = 1; | ||||
| 	rev.always_show_header = 1; | ||||
| 	rev.no_walk = REVISION_WALK_NO_WALK_SORTED; | ||||
|  | @ -665,7 +665,7 @@ int cmd_log_reflog(int argc, const char **argv, const char *prefix) | |||
| 	init_log_defaults(); | ||||
| 	git_config(git_log_config, NULL); | ||||
|  | ||||
| 	init_revisions(&rev, prefix); | ||||
| 	repo_init_revisions(the_repository, &rev, prefix); | ||||
| 	init_reflog_walk(&rev.reflog_info); | ||||
| 	rev.verbose_header = 1; | ||||
| 	memset(&opt, 0, sizeof(opt)); | ||||
|  | @ -704,7 +704,7 @@ int cmd_log(int argc, const char **argv, const char *prefix) | |||
| 	init_log_defaults(); | ||||
| 	git_config(git_log_config, NULL); | ||||
|  | ||||
| 	init_revisions(&rev, prefix); | ||||
| 	repo_init_revisions(the_repository, &rev, prefix); | ||||
| 	rev.always_show_header = 1; | ||||
| 	memset(&opt, 0, sizeof(opt)); | ||||
| 	opt.def = "HEAD"; | ||||
|  | @ -917,7 +917,7 @@ static void get_patch_ids(struct rev_info *rev, struct patch_ids *ids) | |||
| 	init_patch_ids(the_repository, ids); | ||||
|  | ||||
| 	/* given a range a..b get all patch ids for b..a */ | ||||
| 	init_revisions(&check_rev, rev->prefix); | ||||
| 	repo_init_revisions(the_repository, &check_rev, rev->prefix); | ||||
| 	check_rev.max_parents = 1; | ||||
| 	o1->flags ^= UNINTERESTING; | ||||
| 	o2->flags ^= UNINTERESTING; | ||||
|  | @ -1367,7 +1367,7 @@ static void prepare_bases(struct base_tree_info *bases, | |||
|  | ||||
| 	oidcpy(&bases->base_commit, &base->object.oid); | ||||
|  | ||||
| 	init_revisions(&revs, NULL); | ||||
| 	repo_init_revisions(the_repository, &revs, NULL); | ||||
| 	revs.max_parents = 1; | ||||
| 	revs.topo_order = 1; | ||||
| 	for (i = 0; i < total; i++) { | ||||
|  | @ -1528,7 +1528,7 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix) | |||
| 	extra_cc.strdup_strings = 1; | ||||
| 	init_log_defaults(); | ||||
| 	git_config(git_format_config, NULL); | ||||
| 	init_revisions(&rev, prefix); | ||||
| 	repo_init_revisions(the_repository, &rev, prefix); | ||||
| 	rev.commit_format = CMIT_FMT_EMAIL; | ||||
| 	rev.expand_tabs_in_log_default = 0; | ||||
| 	rev.verbose_header = 1; | ||||
|  | @ -1939,7 +1939,7 @@ int cmd_cherry(int argc, const char **argv, const char *prefix) | |||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	init_revisions(&revs, prefix); | ||||
| 	repo_init_revisions(the_repository, &revs, prefix); | ||||
| 	revs.max_parents = 1; | ||||
|  | ||||
| 	if (add_pending_commit(head, &revs, 0)) | ||||
|  |  | |||
|  | @ -389,7 +389,7 @@ static void squash_message(struct commit *commit, struct commit_list *remotehead | |||
|  | ||||
| 	printf(_("Squash commit -- not updating HEAD\n")); | ||||
|  | ||||
| 	init_revisions(&rev, NULL); | ||||
| 	repo_init_revisions(the_repository, &rev, NULL); | ||||
| 	rev.ignore_merges = 1; | ||||
| 	rev.commit_format = CMIT_FMT_MEDIUM; | ||||
|  | ||||
|  | @ -911,7 +911,7 @@ static int evaluate_result(void) | |||
| 	struct rev_info rev; | ||||
|  | ||||
| 	/* Check how many files differ. */ | ||||
| 	init_revisions(&rev, ""); | ||||
| 	repo_init_revisions(the_repository, &rev, ""); | ||||
| 	setup_revisions(0, NULL, &rev, NULL); | ||||
| 	rev.diffopt.output_format |= | ||||
| 		DIFF_FORMAT_CALLBACK; | ||||
|  |  | |||
|  | @ -2989,7 +2989,7 @@ static void get_object_list(int ac, const char **av) | |||
| 	char line[1000]; | ||||
| 	int flags = 0; | ||||
|  | ||||
| 	init_revisions(&revs, NULL); | ||||
| 	repo_init_revisions(the_repository, &revs, NULL); | ||||
| 	save_commit_buffer = 0; | ||||
| 	setup_revisions(ac, av, &revs, NULL); | ||||
|  | ||||
|  |  | |||
|  | @ -120,7 +120,7 @@ int cmd_prune(int argc, const char **argv, const char *prefix) | |||
| 	save_commit_buffer = 0; | ||||
| 	read_replace_refs = 0; | ||||
| 	ref_paranoia = 1; | ||||
| 	init_revisions(&revs, prefix); | ||||
| 	repo_init_revisions(the_repository, &revs, prefix); | ||||
|  | ||||
| 	argc = parse_options(argc, argv, prefix, options, prune_usage, 0); | ||||
|  | ||||
|  |  | |||
|  | @ -567,7 +567,7 @@ static int cmd_reflog_expire(int argc, const char **argv, const char *prefix) | |||
| 	 * from reflog if the repository was pruned with older git. | ||||
| 	 */ | ||||
| 	if (cb.cmd.stalefix) { | ||||
| 		init_revisions(&cb.cmd.revs, prefix); | ||||
| 		repo_init_revisions(the_repository, &cb.cmd.revs, prefix); | ||||
| 		if (flags & EXPIRE_REFLOGS_VERBOSE) | ||||
| 			printf("Marking reachable objects..."); | ||||
| 		mark_reachable_objects(&cb.cmd.revs, 0, 0, NULL); | ||||
|  |  | |||
|  | @ -370,7 +370,7 @@ int cmd_rev_list(int argc, const char **argv, const char *prefix) | |||
| 		usage(rev_list_usage); | ||||
|  | ||||
| 	git_config(git_default_config, NULL); | ||||
| 	init_revisions(&revs, prefix); | ||||
| 	repo_init_revisions(the_repository, &revs, prefix); | ||||
| 	revs.abbrev = DEFAULT_ABBREV; | ||||
| 	revs.commit_format = CMIT_FMT_UNSPECIFIED; | ||||
|  | ||||
|  |  | |||
|  | @ -174,7 +174,7 @@ static int run_sequencer(int argc, const char **argv, struct replay_opts *opts) | |||
| 	} else { | ||||
| 		struct setup_revision_opt s_r_opt; | ||||
| 		opts->revs = xmalloc(sizeof(*opts->revs)); | ||||
| 		init_revisions(opts->revs, NULL); | ||||
| 		repo_init_revisions(the_repository, opts->revs, NULL); | ||||
| 		opts->revs->no_walk = REVISION_WALK_NO_WALK_UNSORTED; | ||||
| 		if (argc < 2) | ||||
| 			usage_with_options(usage_str, options); | ||||
|  |  | |||
|  | @ -278,7 +278,7 @@ int cmd_shortlog(int argc, const char **argv, const char *prefix) | |||
|  | ||||
| 	git_config(git_default_config, NULL); | ||||
| 	shortlog_init(&log); | ||||
| 	init_revisions(&rev, prefix); | ||||
| 	repo_init_revisions(the_repository, &rev, prefix); | ||||
| 	parse_options_start(&ctx, argc, argv, prefix, options, | ||||
| 			    PARSE_OPT_KEEP_DASHDASH | PARSE_OPT_KEEP_ARGV0); | ||||
|  | ||||
|  |  | |||
|  | @ -792,7 +792,7 @@ static void status_submodule(const char *path, const struct object_id *ce_oid, | |||
| 			 path, NULL); | ||||
|  | ||||
| 	git_config(git_diff_basic_config, NULL); | ||||
| 	init_revisions(&rev, prefix); | ||||
| 	repo_init_revisions(the_repository, &rev, prefix); | ||||
| 	rev.abbrev = 0; | ||||
| 	diff_files_args.argc = setup_revisions(diff_files_args.argc, | ||||
| 					       diff_files_args.argv, | ||||
|  |  | |||
							
								
								
									
										4
									
								
								bundle.c
								
								
								
								
							
							
						
						
									
										4
									
								
								bundle.c
								
								
								
								
							|  | @ -140,7 +140,7 @@ int verify_bundle(struct bundle_header *header, int verbose) | |||
| 	int i, ret = 0, req_nr; | ||||
| 	const char *message = _("Repository lacks these prerequisite commits:"); | ||||
|  | ||||
| 	init_revisions(&revs, NULL); | ||||
| 	repo_init_revisions(the_repository, &revs, NULL); | ||||
| 	for (i = 0; i < p->nr; i++) { | ||||
| 		struct ref_list_entry *e = p->list + i; | ||||
| 		struct object *o = parse_object(the_repository, &e->oid); | ||||
|  | @ -441,7 +441,7 @@ int create_bundle(struct bundle_header *header, const char *path, | |||
|  | ||||
| 	/* init revs to list objects for pack-objects later */ | ||||
| 	save_commit_buffer = 0; | ||||
| 	init_revisions(&revs, NULL); | ||||
| 	repo_init_revisions(the_repository, &revs, NULL); | ||||
|  | ||||
| 	/* write prerequisites */ | ||||
| 	if (compute_and_write_prerequisites(bundle_fd, &revs, argc, argv)) | ||||
|  |  | |||
|  | @ -542,7 +542,7 @@ int do_diff_cache(const struct object_id *tree_oid, struct diff_options *opt) | |||
| { | ||||
| 	struct rev_info revs; | ||||
|  | ||||
| 	init_revisions(&revs, NULL); | ||||
| 	repo_init_revisions(the_repository, &revs, NULL); | ||||
| 	copy_pathspec(&revs.prune_data, &opt->pathspec); | ||||
| 	revs.diffopt = *opt; | ||||
|  | ||||
|  | @ -557,7 +557,7 @@ int index_differs_from(const char *def, const struct diff_flags *flags, | |||
| 	struct rev_info rev; | ||||
| 	struct setup_revision_opt opt; | ||||
|  | ||||
| 	init_revisions(&rev, NULL); | ||||
| 	repo_init_revisions(the_repository, &rev, NULL); | ||||
| 	memset(&opt, 0, sizeof(opt)); | ||||
| 	opt.def = def; | ||||
| 	setup_revisions(0, NULL, &rev, &opt); | ||||
|  |  | |||
|  | @ -1925,7 +1925,7 @@ int cmd_main(int argc, const char **argv) | |||
| 		if (!push_all && !is_null_oid(&ref->old_oid)) | ||||
| 			argv_array_pushf(&commit_argv, "^%s", | ||||
| 					 oid_to_hex(&ref->old_oid)); | ||||
| 		init_revisions(&revs, setup_git_directory()); | ||||
| 		repo_init_revisions(the_repository, &revs, setup_git_directory()); | ||||
| 		setup_revisions(commit_argv.argc, commit_argv.argv, &revs, NULL); | ||||
| 		revs.edge_hint = 0; /* just in case */ | ||||
|  | ||||
|  |  | |||
|  | @ -1115,7 +1115,7 @@ static int find_first_merges(struct object_array *result, const char *path, | |||
| 	/* get all revisions that merge commit a */ | ||||
| 	xsnprintf(merged_revision, sizeof(merged_revision), "^%s", | ||||
| 		  oid_to_hex(&a->object.oid)); | ||||
| 	init_revisions(&revs, NULL); | ||||
| 	repo_init_revisions(the_repository, &revs, NULL); | ||||
| 	rev_opts.submodule = path; | ||||
| 	/* FIXME: can't handle linked worktrees in submodules yet */ | ||||
| 	revs.single_worktree = path != NULL; | ||||
|  |  | |||
|  | @ -261,7 +261,7 @@ void bitmap_writer_build(struct packing_data *to_pack) | |||
| 	if (writer.show_progress) | ||||
| 		writer.progress = start_progress("Building bitmaps", writer.selected_nr); | ||||
|  | ||||
| 	init_revisions(&revs, NULL); | ||||
| 	repo_init_revisions(the_repository, &revs, NULL); | ||||
| 	revs.tag_objects = 1; | ||||
| 	revs.tree_objects = 1; | ||||
| 	revs.blob_objects = 1; | ||||
|  |  | |||
|  | @ -2138,7 +2138,7 @@ static void do_merge_filter(struct ref_filter_cbdata *ref_cbdata) | |||
| 	struct ref_array *array = ref_cbdata->array; | ||||
| 	struct commit **to_clear = xcalloc(sizeof(struct commit *), array->nr); | ||||
|  | ||||
| 	init_revisions(&revs, NULL); | ||||
| 	repo_init_revisions(the_repository, &revs, NULL); | ||||
|  | ||||
| 	for (i = 0; i < array->nr; i++) { | ||||
| 		struct ref_array_item *item = array->items[i]; | ||||
|  |  | |||
							
								
								
									
										2
									
								
								remote.c
								
								
								
								
							
							
						
						
									
										2
									
								
								remote.c
								
								
								
								
							|  | @ -1903,7 +1903,7 @@ int stat_tracking_info(struct branch *branch, int *num_ours, int *num_theirs, | |||
| 			 oid_to_hex(&theirs->object.oid)); | ||||
| 	argv_array_push(&argv, "--"); | ||||
|  | ||||
| 	init_revisions(&revs, NULL); | ||||
| 	repo_init_revisions(the_repository, &revs, NULL); | ||||
| 	setup_revisions(argv.argc, argv.argv, &revs, NULL); | ||||
| 	if (prepare_revision_walk(&revs)) | ||||
| 		die("revision walk setup failed"); | ||||
|  |  | |||
							
								
								
									
										32
									
								
								revision.c
								
								
								
								
							
							
						
						
									
										32
									
								
								revision.c
								
								
								
								
							|  | @ -877,7 +877,7 @@ static void cherry_pick_list(struct commit_list *list, struct rev_info *revs) | |||
| 		return; | ||||
|  | ||||
| 	left_first = left_count < right_count; | ||||
| 	init_patch_ids(the_repository, &ids); | ||||
| 	init_patch_ids(revs->repo, &ids); | ||||
| 	ids.diffopts.pathspec = revs->diffopt.pathspec; | ||||
|  | ||||
| 	/* Compute patch-ids for one side */ | ||||
|  | @ -1370,8 +1370,8 @@ void add_index_objects_to_pending(struct rev_info *revs, unsigned int flags) | |||
| { | ||||
| 	struct worktree **worktrees, **p; | ||||
|  | ||||
| 	read_cache(); | ||||
| 	do_add_index_objects_to_pending(revs, &the_index); | ||||
| 	read_index(revs->repo->index); | ||||
| 	do_add_index_objects_to_pending(revs, revs->repo->index); | ||||
|  | ||||
| 	if (revs->single_worktree) | ||||
| 		return; | ||||
|  | @ -1439,10 +1439,13 @@ static int add_parents_only(struct rev_info *revs, const char *arg_, int flags, | |||
| 	return 1; | ||||
| } | ||||
|  | ||||
| void init_revisions(struct rev_info *revs, const char *prefix) | ||||
| void repo_init_revisions(struct repository *r, | ||||
| 			 struct rev_info *revs, | ||||
| 			 const char *prefix) | ||||
| { | ||||
| 	memset(revs, 0, sizeof(*revs)); | ||||
|  | ||||
| 	revs->repo = r; | ||||
| 	revs->abbrev = DEFAULT_ABBREV; | ||||
| 	revs->ignore_merges = 1; | ||||
| 	revs->simplify_history = 1; | ||||
|  | @ -1464,11 +1467,11 @@ void init_revisions(struct rev_info *revs, const char *prefix) | |||
| 	revs->commit_format = CMIT_FMT_DEFAULT; | ||||
| 	revs->expand_tabs_in_log_default = 8; | ||||
|  | ||||
| 	init_grep_defaults(the_repository); | ||||
| 	grep_init(&revs->grep_filter, the_repository, prefix); | ||||
| 	init_grep_defaults(revs->repo); | ||||
| 	grep_init(&revs->grep_filter, revs->repo, prefix); | ||||
| 	revs->grep_filter.status_only = 1; | ||||
|  | ||||
| 	repo_diff_setup(the_repository, &revs->diffopt); | ||||
| 	repo_diff_setup(revs->repo, &revs->diffopt); | ||||
| 	if (prefix && !revs->diffopt.prefix) { | ||||
| 		revs->diffopt.prefix = prefix; | ||||
| 		revs->diffopt.prefix_length = strlen(prefix); | ||||
|  | @ -1496,6 +1499,7 @@ static void prepare_show_merge(struct rev_info *revs) | |||
| 	struct object_id oid; | ||||
| 	const char **prune = NULL; | ||||
| 	int i, prune_num = 1; /* counting terminating NULL */ | ||||
| 	struct index_state *istate = revs->repo->index; | ||||
|  | ||||
| 	if (get_oid("HEAD", &oid)) | ||||
| 		die("--merge without HEAD?"); | ||||
|  | @ -1511,20 +1515,20 @@ static void prepare_show_merge(struct rev_info *revs) | |||
| 	free_commit_list(bases); | ||||
| 	head->object.flags |= SYMMETRIC_LEFT; | ||||
|  | ||||
| 	if (!active_nr) | ||||
| 		read_cache(); | ||||
| 	for (i = 0; i < active_nr; i++) { | ||||
| 		const struct cache_entry *ce = active_cache[i]; | ||||
| 	if (!istate->cache_nr) | ||||
| 		read_index(istate); | ||||
| 	for (i = 0; i < istate->cache_nr; i++) { | ||||
| 		const struct cache_entry *ce = istate->cache[i]; | ||||
| 		if (!ce_stage(ce)) | ||||
| 			continue; | ||||
| 		if (ce_path_match(&the_index, ce, &revs->prune_data, NULL)) { | ||||
| 		if (ce_path_match(istate, ce, &revs->prune_data, NULL)) { | ||||
| 			prune_num++; | ||||
| 			REALLOC_ARRAY(prune, prune_num); | ||||
| 			prune[prune_num-2] = ce->name; | ||||
| 			prune[prune_num-1] = NULL; | ||||
| 		} | ||||
| 		while ((i+1 < active_nr) && | ||||
| 		       ce_same_name(ce, active_cache[i+1])) | ||||
| 		while ((i+1 < istate->cache_nr) && | ||||
| 		       ce_same_name(ce, istate->cache[i+1])) | ||||
| 			i++; | ||||
| 	} | ||||
| 	clear_pathspec(&revs->prune_data); | ||||
|  |  | |||
							
								
								
									
										13
									
								
								revision.h
								
								
								
								
							
							
						
						
									
										13
									
								
								revision.h
								
								
								
								
							|  | @ -28,8 +28,9 @@ | |||
| #define DECORATE_SHORT_REFS	1 | ||||
| #define DECORATE_FULL_REFS	2 | ||||
|  | ||||
| struct rev_info; | ||||
| struct log_info; | ||||
| struct repository; | ||||
| struct rev_info; | ||||
| struct string_list; | ||||
| struct saved_parents; | ||||
| define_shared_commit_slab(revision_sources, char *); | ||||
|  | @ -60,6 +61,7 @@ struct rev_info { | |||
| 	/* Starting list */ | ||||
| 	struct commit_list *commits; | ||||
| 	struct object_array pending; | ||||
| 	struct repository *repo; | ||||
|  | ||||
| 	/* Parents of shown commits */ | ||||
| 	struct object_array boundary_commits; | ||||
|  | @ -248,12 +250,17 @@ extern volatile show_early_output_fn_t show_early_output; | |||
| struct setup_revision_opt { | ||||
| 	const char *def; | ||||
| 	void (*tweak)(struct rev_info *, struct setup_revision_opt *); | ||||
| 	const char *submodule; | ||||
| 	const char *submodule;	/* TODO: drop this and use rev_info->repo */ | ||||
| 	int assume_dashdash; | ||||
| 	unsigned revarg_opt; | ||||
| }; | ||||
|  | ||||
| void init_revisions(struct rev_info *revs, const char *prefix); | ||||
| #ifndef NO_THE_REPOSITORY_COMPATIBILITY_MACROS | ||||
| #define init_revisions(revs, prefix) repo_init_revisions(the_repository, revs, prefix) | ||||
| #endif | ||||
| void repo_init_revisions(struct repository *r, | ||||
| 			 struct rev_info *revs, | ||||
| 			 const char *prefix); | ||||
| int setup_revisions(int argc, const char **argv, struct rev_info *revs, | ||||
| 		    struct setup_revision_opt *); | ||||
| void parse_revision_opt(struct rev_info *revs, struct parse_opt_ctx_t *ctx, | ||||
|  |  | |||
|  | @ -1172,7 +1172,7 @@ void print_commit_summary(const char *prefix, const struct object_id *oid, | |||
| 	strbuf_release(&author_ident); | ||||
| 	strbuf_release(&committer_ident); | ||||
|  | ||||
| 	init_revisions(&rev, prefix); | ||||
| 	repo_init_revisions(the_repository, &rev, prefix); | ||||
| 	setup_revisions(0, NULL, &rev, NULL); | ||||
|  | ||||
| 	rev.diff = 1; | ||||
|  | @ -2595,7 +2595,7 @@ static int make_patch(struct commit *commit, struct replay_opts *opts) | |||
|  | ||||
| 	strbuf_addf(&buf, "%s/patch", get_dir(opts)); | ||||
| 	memset(&log_tree_opt, 0, sizeof(log_tree_opt)); | ||||
| 	init_revisions(&log_tree_opt, NULL); | ||||
| 	repo_init_revisions(the_repository, &log_tree_opt, NULL); | ||||
| 	log_tree_opt.abbrev = 0; | ||||
| 	log_tree_opt.diff = 1; | ||||
| 	log_tree_opt.diffopt.output_format = DIFF_FORMAT_PATCH; | ||||
|  | @ -3506,7 +3506,7 @@ cleanup_head_ref: | |||
| 			struct object_id orig, head; | ||||
|  | ||||
| 			memset(&log_tree_opt, 0, sizeof(log_tree_opt)); | ||||
| 			init_revisions(&log_tree_opt, NULL); | ||||
| 			repo_init_revisions(the_repository, &log_tree_opt, NULL); | ||||
| 			log_tree_opt.diff = 1; | ||||
| 			log_tree_opt.diffopt.output_format = | ||||
| 				DIFF_FORMAT_DIFFSTAT; | ||||
|  | @ -4241,7 +4241,7 @@ int sequencer_make_script(FILE *out, int argc, const char **argv, | |||
| 	const char *insn = flags & TODO_LIST_ABBREVIATE_CMDS ? "p" : "pick"; | ||||
| 	int rebase_merges = flags & TODO_LIST_REBASE_MERGES; | ||||
|  | ||||
| 	init_revisions(&revs, NULL); | ||||
| 	repo_init_revisions(the_repository, &revs, NULL); | ||||
| 	revs.verbose_header = 1; | ||||
| 	if (!rebase_merges) | ||||
| 		revs.max_parents = 1; | ||||
|  |  | |||
|  | @ -184,7 +184,7 @@ struct commit_list *get_shallow_commits_by_rev_list(int ac, const char **av, | |||
|  | ||||
| 	is_repository_shallow(the_repository); /* make sure shallows are read */ | ||||
|  | ||||
| 	init_revisions(&revs, NULL); | ||||
| 	repo_init_revisions(the_repository, &revs, NULL); | ||||
| 	save_commit_buffer = 0; | ||||
| 	setup_revisions(ac, av, &revs, NULL); | ||||
|  | ||||
|  |  | |||
|  | @ -428,7 +428,7 @@ static int prepare_submodule_summary(struct rev_info *rev, const char *path, | |||
| { | ||||
| 	struct commit_list *list; | ||||
|  | ||||
| 	init_revisions(rev, NULL); | ||||
| 	repo_init_revisions(the_repository, rev, NULL); | ||||
| 	setup_revisions(0, NULL, rev, NULL); | ||||
| 	rev->left_right = 1; | ||||
| 	rev->first_parent_only = 1; | ||||
|  | @ -773,7 +773,7 @@ static void collect_changed_submodules(struct index_state *istate, | |||
| 	struct rev_info rev; | ||||
| 	const struct commit *commit; | ||||
|  | ||||
| 	init_revisions(&rev, NULL); | ||||
| 	repo_init_revisions(the_repository, &rev, NULL); | ||||
| 	setup_revisions(argv->argc, argv->argv, &rev, NULL); | ||||
| 	if (prepare_revision_walk(&rev)) | ||||
| 		die("revision walk setup failed"); | ||||
|  | @ -784,7 +784,7 @@ static void collect_changed_submodules(struct index_state *istate, | |||
| 		data.changed = changed; | ||||
| 		data.commit_oid = &commit->object.oid; | ||||
|  | ||||
| 		init_revisions(&diff_rev, NULL); | ||||
| 		repo_init_revisions(the_repository, &diff_rev, NULL); | ||||
| 		diff_rev.diffopt.output_format |= DIFF_FORMAT_CALLBACK; | ||||
| 		diff_rev.diffopt.format_callback = collect_changed_submodules_cb; | ||||
| 		diff_rev.diffopt.format_callback_data = &data; | ||||
|  |  | |||
|  | @ -32,7 +32,7 @@ static int run_revision_walk(void) | |||
| 	int argc = ARRAY_SIZE(argv) - 1; | ||||
| 	int got_revision = 0; | ||||
|  | ||||
| 	init_revisions(&rev, NULL); | ||||
| 	repo_init_revisions(the_repository, &rev, NULL); | ||||
| 	setup_revisions(argc, argv, &rev, NULL); | ||||
| 	if (prepare_revision_walk(&rev)) | ||||
| 		die("revision walk setup failed"); | ||||
|  |  | |||
							
								
								
									
										10
									
								
								wt-status.c
								
								
								
								
							
							
						
						
									
										10
									
								
								wt-status.c
								
								
								
								
							|  | @ -582,7 +582,7 @@ static void wt_status_collect_changes_worktree(struct wt_status *s) | |||
| { | ||||
| 	struct rev_info rev; | ||||
|  | ||||
| 	init_revisions(&rev, NULL); | ||||
| 	repo_init_revisions(the_repository, &rev, NULL); | ||||
| 	setup_revisions(0, NULL, &rev, NULL); | ||||
| 	rev.diffopt.output_format |= DIFF_FORMAT_CALLBACK; | ||||
| 	rev.diffopt.flags.dirty_submodules = 1; | ||||
|  | @ -607,7 +607,7 @@ static void wt_status_collect_changes_index(struct wt_status *s) | |||
| 	struct rev_info rev; | ||||
| 	struct setup_revision_opt opt; | ||||
|  | ||||
| 	init_revisions(&rev, NULL); | ||||
| 	repo_init_revisions(the_repository, &rev, NULL); | ||||
| 	memset(&opt, 0, sizeof(opt)); | ||||
| 	opt.def = s->is_initial ? empty_tree_oid_hex() : s->reference; | ||||
| 	setup_revisions(0, NULL, &rev, &opt); | ||||
|  | @ -982,7 +982,7 @@ static void wt_longstatus_print_verbose(struct wt_status *s) | |||
| 	int dirty_submodules; | ||||
| 	const char *c = color(WT_STATUS_HEADER, s); | ||||
|  | ||||
| 	init_revisions(&rev, NULL); | ||||
| 	repo_init_revisions(the_repository, &rev, NULL); | ||||
| 	rev.diffopt.flags.allow_textconv = 1; | ||||
| 	rev.diffopt.ita_invisible_in_index = 1; | ||||
|  | ||||
|  | @ -2314,7 +2314,7 @@ int has_unstaged_changes(int ignore_submodules) | |||
| 	struct rev_info rev_info; | ||||
| 	int result; | ||||
|  | ||||
| 	init_revisions(&rev_info, NULL); | ||||
| 	repo_init_revisions(the_repository, &rev_info, NULL); | ||||
| 	if (ignore_submodules) { | ||||
| 		rev_info.diffopt.flags.ignore_submodules = 1; | ||||
| 		rev_info.diffopt.flags.override_submodule_config = 1; | ||||
|  | @ -2336,7 +2336,7 @@ int has_uncommitted_changes(int ignore_submodules) | |||
| 	if (is_cache_unborn()) | ||||
| 		return 0; | ||||
|  | ||||
| 	init_revisions(&rev_info, NULL); | ||||
| 	repo_init_revisions(the_repository, &rev_info, NULL); | ||||
| 	if (ignore_submodules) | ||||
| 		rev_info.diffopt.flags.ignore_submodules = 1; | ||||
| 	rev_info.diffopt.flags.quick = 1; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Nguyễn Thái Ngọc Duy
						Nguyễn Thái Ngọc Duy