commit/revisions: bookkeeping before refactoring
There are a few things that need to move around a little before making a big refactoring in the topo-order logic: 1. We need access to record_author_date() and compare_commits_by_author_date() in revision.c. These are used currently by sort_in_topological_order() in commit.c. 2. Moving these methods to commit.h requires adding an author_date_slab declaration to commit.h. Consumers will need their own implementation. 3. The add_parents_to_list() method in revision.c performs logic around the UNINTERESTING flag and other special cases depending on the struct rev_info. Allow this method to ignore a NULL 'list' parameter, as we will not be populating the list for our walk. Also rename the method to the slightly more generic name process_parents() to make clear that this method does more than add to a list (and no list is required anymore). Helped-by: Jeff King <peff@peff.net> Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
f0d9cc4196
commit
5284fc5cc9
7
commit.h
7
commit.h
@ -8,6 +8,7 @@
|
||||
#include "gpg-interface.h"
|
||||
#include "string-list.h"
|
||||
#include "pretty.h"
|
||||
#include "commit-slab.h"
|
||||
|
||||
#define COMMIT_NOT_FROM_GRAPH 0xFFFFFFFF
|
||||
#define GENERATION_NUMBER_INFINITY 0xFFFFFFFF
|
||||
@ -328,6 +329,12 @@ extern int remove_signature(struct strbuf *buf);
|
||||
*/
|
||||
extern int check_commit_signature(const struct commit *commit, struct signature_check *sigc);
|
||||
|
||||
/* record author-date for each commit object */
|
||||
struct author_date_slab;
|
||||
void record_author_date(struct author_date_slab *author_date,
|
||||
struct commit *commit);
|
||||
|
||||
int compare_commits_by_author_date(const void *a_, const void *b_, void *unused);
|
||||
int compare_commits_by_commit_date(const void *a_, const void *b_, void *unused);
|
||||
int compare_commits_by_gen_then_commit_date(const void *a_, const void *b_, void *unused);
|
||||
|
||||
|
Reference in New Issue
Block a user