summaryrefslogtreecommitdiff
path: root/rev-list.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@osdl.org>2006-02-27 16:54:36 (GMT)
committerJunio C Hamano <junkio@cox.net>2006-02-27 19:10:16 (GMT)
commitd9a83684c473e04c61f0060c4926d20f8183f7b6 (patch)
tree09cfb3bda4137a5376477fc6659e933fa4657cf4 /rev-list.c
parentd9cfb964c7a59a39711da12e56563e10aa388331 (diff)
downloadgit-d9a83684c473e04c61f0060c4926d20f8183f7b6.zip
git-d9a83684c473e04c61f0060c4926d20f8183f7b6.tar.gz
git-d9a83684c473e04c61f0060c4926d20f8183f7b6.tar.bz2
Splitting rev-list into revisions lib, end of beginning.
This makes the rewrite easier to validate in that revision flag parsing and warlking part are now all in rev_info structure. Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'rev-list.c')
-rw-r--r--rev-list.c25
1 files changed, 5 insertions, 20 deletions
diff --git a/rev-list.c b/rev-list.c
index 630626e..2e80930 100644
--- a/rev-list.c
+++ b/rev-list.c
@@ -41,7 +41,6 @@ static const char rev_list_usage[] =
struct rev_info revs;
-static int unpacked = 0;
static int bisect_list = 0;
static int verbose_header = 0;
static int abbrev = DEFAULT_ABBREV;
@@ -572,7 +571,7 @@ static struct commit_list *limit_list(struct commit_list *list)
if (revs.max_age != -1 && (commit->date < revs.max_age))
obj->flags |= UNINTERESTING;
- if (unpacked && has_sha1_pack(obj->sha1))
+ if (revs.unpacked && has_sha1_pack(obj->sha1))
obj->flags |= UNINTERESTING;
add_parents_to_list(commit, &list);
if (obj->flags & UNINTERESTING) {
@@ -595,7 +594,7 @@ static struct commit_list *limit_list(struct commit_list *list)
int main(int argc, const char **argv)
{
struct commit_list *list;
- int i, limited = 0;
+ int i;
argc = setup_revisions(argc, argv, &revs);
@@ -655,11 +654,6 @@ int main(int argc, const char **argv)
bisect_list = 1;
continue;
}
- if (!strcmp(arg, "--unpacked")) {
- unpacked = 1;
- limited = 1;
- continue;
- }
if (!strcmp(arg, "--merge-order")) {
merge_order = 1;
continue;
@@ -673,34 +667,25 @@ int main(int argc, const char **argv)
}
list = revs.commits;
- if (list)
- limited = 1;
-
- if (revs.topo_order)
- limited = 1;
if (!list &&
(!(revs.tag_objects||revs.tree_objects||revs.blob_objects) && !revs.pending_objects))
usage(rev_list_usage);
- if (revs.paths) {
- limited = 1;
+ if (revs.paths)
diff_tree_setup_paths(revs.paths);
- }
- if (revs.max_age != -1 || revs.min_age != -1)
- limited = 1;
save_commit_buffer = verbose_header;
track_object_refs = 0;
if (!merge_order) {
sort_by_date(&list);
- if (list && !limited && revs.max_count == 1 &&
+ if (list && !revs.limited && revs.max_count == 1 &&
!revs.tag_objects && !revs.tree_objects && !revs.blob_objects) {
show_commit(list->item);
return 0;
}
- if (limited)
+ if (revs.limited)
list = limit_list(list);
if (revs.topo_order)
sort_in_topological_order(&list, revs.lifo);