Subject: Heads up on work in progress - was: [PATCH 2/2] Add support ... [rev 11]

From: Jon Seymour <[email-masked]>
Date: Sat, 11 Jun 2005 15:28:50 +1000

Folks,

Thought I'd just give you a heads up that I am presently undertaking a
further substantial re factorisation and generalization of epoch.c.
The changes in this work we be largely limited to epoch.c and
epoch.c-related parts of rev-list.c.

The upcoming changes will not substantially change the existing tools
interfaces, so it would be safe to apply the [rev 11] to the git HEAD
provided there is agreement that the tools interfaces proposed in [rev
11] are acceptable.

However, if you want to perform a detailed review of epoch.c, it might
be better to hold off until my next batch of changes are ready. That
said, if you would like to provide feedback on what I have already
done, please feel welcome to.

In my forthcoming changes I intend to:

1. rename epoch.c to commit-graph.c
2. improve separation of concerns between rev-list.c and commit-graph.c
   * commit-graph.c will understand everything about incremental graph
traversals, including merge order search and "localized" perspectives
   * rev-list.c will be responsible for output limiting [ that is:
stopping the traversal according to user-defined (e.g. parameterised
criteria) ]
3. the epoch_methods structure in [rev11] will be generalized to a
per-traversal "traversal object" (struct graph_traversal) that will
have additional methods such as:
   * visit_edge - called on each edge
   * visit_commit - called on each visit to a commit
   * clean_commit - called to clean any resources allocated during a
call to visit_edge, visit_commit

I'll try to do the right thing and break the changes into a series of
small patches to rev11.

Please forgive me for my previous practice of submitting large changes
- I am quite new to the development-by-patch style of development, and
haven't quite got into the swing of it yet.

jon.