On 20/03/2019 01:50, Duy Nguyen wrote:
On Wed, Mar 20, 2019 at 2:04 AM Phillip Wood <[email protected]> wrote:It would perhaps be better to pass around the_index rather than the_repositoryNot by a large margin. For sequencer.c most operations require more than just the index and passing 'struct repository *' around has been the norm. And as soon as you need to load the index back (not sure if you should do it here btw, after discard_index, since we have the index loaded before) you need 'struct repository' not 'struct index_state'.
Thanks, I think I'll leave it as it is then. After we checkout the new base we reload the index in the loop that picks the commits. For 'rebase <upstream> <branch>' after we checkout <branch> we create the todo-list which involves a revision walk and then checkout the new base. I'm not entirely sure if it needs reloading before we create the todo list but I think it probably not as I don't think rebase--interactive.c loads the index (which would explain why this only becomes an issue when we stop forking rebase--interactive from rebase because then rebase.c has loaded the index to check there are no uncommitted changes)
Best Wishes Phillip
builtin/rebase--interactive.c | 2 +- sequencer.c | 27 +++++++++++++++++---------- sequencer.h | 3 ++- 3 files changed, 20 insertions(+), 12 deletions(-)

