Browse Source

Remove insane overlapping bit ranges from epoch.c

..and move the DUPCHECK to rev-list.c since both the merge-order and the
upcoming topo-sort get confused by dups.
maint
Linus Torvalds 20 years ago
parent
commit
bce6286670
  1. 10
      epoch.c
  2. 12
      epoch.h
  3. 6
      rev-list.c

10
epoch.c

@ -582,14 +582,8 @@ int sort_list_in_merge_order(struct commit_list *list, emitter_func emitter)
int action = CONTINUE; int action = CONTINUE;
struct commit_list *reversed = NULL; struct commit_list *reversed = NULL;


for (; list; list = list->next) { for (; list; list = list->next)
struct commit *next = list->item; commit_list_insert(list->item, &reversed);

if (!(next->object.flags & DUPCHECK)) {
next->object.flags |= DUPCHECK;
commit_list_insert(list->item, &reversed);
}
}


if (!reversed) if (!reversed)
return ret; return ret;

12
epoch.h

@ -10,12 +10,12 @@ typedef int (*emitter_func) (struct commit *);


int sort_list_in_merge_order(struct commit_list *list, emitter_func emitter); int sort_list_in_merge_order(struct commit_list *list, emitter_func emitter);


#define UNINTERESTING (1u<<2) /* Low bits are used by rev-list */
#define BOUNDARY (1u<<3) #define UNINTERESTING (1u<<10)
#define VISITED (1u<<4) #define BOUNDARY (1u<<11)
#define DISCONTINUITY (1u<<5) #define VISITED (1u<<12)
#define DUPCHECK (1u<<6) #define DISCONTINUITY (1u<<13)
#define LAST_EPOCH_FLAG (1u<<6) #define LAST_EPOCH_FLAG (1u<<14)




#endif /* EPOCH_H */ #endif /* EPOCH_H */

6
rev-list.c

@ -8,7 +8,8 @@
#define SEEN (1u << 0) #define SEEN (1u << 0)
#define INTERESTING (1u << 1) #define INTERESTING (1u << 1)
#define COUNTED (1u << 2) #define COUNTED (1u << 2)
#define SHOWN (LAST_EPOCH_FLAG << 2) #define SHOWN (1u << 3)
#define DUPCHECK (1u << 4)


static const char rev_list_usage[] = static const char rev_list_usage[] =
"usage: git-rev-list [OPTION] commit-id <commit-id>\n" "usage: git-rev-list [OPTION] commit-id <commit-id>\n"
@ -485,6 +486,9 @@ int main(int argc, char **argv)
commit = get_commit_reference(arg, flags); commit = get_commit_reference(arg, flags);
if (!commit) if (!commit)
continue; continue;
if (commit->object.flags & DUPCHECK)
continue;
commit->object.flags |= DUPCHECK;
insert(commit, &list); insert(commit, &list);
} }



Loading…
Cancel
Save