On 20/03/2019 01:50, Duy Nguyen wrote:
On Wed, Mar 20, 2019 at 2:04 AM Phillip Wood <phillip.wood...@gmail.com> wrote:
     It would perhaps be better to pass around the_index rather than
     the_repository

Not 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(-)

Reply via email to