Re: [PATCH 02/31] rebase: refactor reading of state

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Junio C Hamano
Date: Tuesday, December 28, 2010 - 4:08 pm

Martin von Zweigbergk <martin.von.zweigbergk@gmail.com> writes:


It used to be safe to call this without head_name and friends set, because
the function took care of reading these itself.  Nobody calls this without
head_name set anymore?

I am not complaining nor suggesting to add an unnecessary "read_state"
here only to slow things down---I am making sure that you removed this
because you know it is unnecessary.


Even though this patch may make the code shorter, it starts to read
head_name and orig_head that we previously did not open and change the
values of variables with what are read from them.  Does this change affect
the behaviour in any way (either in performance or in correctness)?


Earlier move-to-original-branch was Ok to be called without head_name, and
the old code here read from the file anyway, so it didn't matter, but now
it seems that the first check and assignment you removed from the function
may matter because this caller does not even read from head_name.  Are you
sure about this change?


My heartbeat skipped when I first saw this.  Thanks to the previous
commit, it was exposed that somebody reused $dotest that was only to be
used when using merge machinery because the things left to be done in this
codepath are common between the merge and apply, which is kind of sloppy,
but that sloppiness is now gone ;-).

Are there places that read from individual files for states left after
this patch, or read_state is the only interface to get to the states?  If
the latter that would be a great news, and also would suggest that we may
want to have a corresponding write_state function (and we may even want to
make the state into a single file to reduce I/O---but that is a separate
issue that can be done at the very end of the series if it turns out to be
beneficial).

Of course it is fine if introduction of read_state is an attempt to catch
most common cases, but it would reduce chances of mistake if the coverage
were 100% (as opposed to 99.9%) hence this question.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 00/31] Refactor rebase, Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 01/31] rebase: clearer names for directory variables, Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 02/31] rebase: refactor reading of state, Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 03/31] rebase: read state outside loop, Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 04/31] rebase: remove unused rebase state 'prev_head', Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 05/31] rebase: improve detection of rebase in progress, Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 06/31] rebase: act on command line outside parsing loop, Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 07/31] rebase: stricter check of standalone sub command, Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 08/31] rebase: align variable names, Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 09/31] rebase: align variable content, Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 10/31] rebase: factor out command line option proce ..., Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 11/31] rebase -i: remove now unnecessary directory ..., Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 12/31] rebase: reorder validation steps, Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 13/31] rebase: factor out reference parsing, Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 14/31] rebase: factor out clean work tree check, Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 15/31] rebase: factor out call to pre-rebase hook, Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 16/31] rebase -i: support --stat, Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 17/31] rebase: remove $branch as synonym for $orig_head, Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 18/31] rebase: extract merge code to new source file, Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 19/31] rebase: extract am code to new source file, Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 20/31] rebase: show consistent conflict resolution hint, Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 21/31] rebase -i: align variable names, Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 22/31] rebase: make -v a tiny bit more verbose, Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 23/31] rebase: factor out sub command handling, Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 24/31] rebase: extract code for writing basic state, Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 25/31] rebase: remember verbose option, Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 26/31] rebase: remember strategy and strategy options, Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 27/31] rebase -m: remember allow_rerere_autoupdate ..., Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 28/31] rebase -m: don't print exit code 2 when merg ..., Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 29/31] git-rebase--am: remove unnecessary --3way option, Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 30/31] rebase -i: don't read unused variable preser ..., Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
[PATCH 31/31] rebase -i: remove unnecessary state rebase-root, Martin von Zweigbergk, (Tue Dec 28, 2:30 am)
Re: [PATCH 16/31] rebase -i: support --stat, Martin von Zweigbergk, (Tue Dec 28, 6:24 am)
Re: [PATCH 16/31] rebase -i: support --stat, Johannes Schindelin, (Tue Dec 28, 10:59 am)
Re: [PATCH 05/31] rebase: improve detection of rebase in p ..., Martin von Zweigbergk, (Tue Dec 28, 1:35 pm)
Re: [PATCH 01/31] rebase: clearer names for directory vari ..., Martin von Zweigbergk, (Tue Dec 28, 1:53 pm)
Re: [PATCH 02/31] rebase: refactor reading of state, Junio C Hamano, (Tue Dec 28, 4:08 pm)
Re: [PATCH 16/31] rebase -i: support --stat, Junio C Hamano, (Tue Dec 28, 4:36 pm)
Re: [PATCH 16/31] rebase -i: support --stat, Johannes Schindelin, (Tue Dec 28, 4:44 pm)
Re: [PATCH 02/31] rebase: refactor reading of state, Martin von Zweigbergk, (Wed Dec 29, 1:09 am)
Re: [PATCH 18/31] rebase: extract merge code to new source ..., Martin von Zweigbergk, (Wed Dec 29, 3:24 pm)
Re: [PATCH 31/31] rebase -i: remove unnecessary state reba ..., Martin von Zweigbergk, (Wed Dec 29, 3:31 pm)
Re: [PATCH 31/31] rebase -i: remove unnecessary state reba ..., Christian Couder, (Thu Dec 30, 10:41 pm)
Re: [PATCH 18/31] rebase: extract merge code to new source ..., Martin von Zweigbergk, (Fri Dec 31, 7:05 am)
Re: [PATCH 08/31] rebase: align variable names, Thomas Rast, (Tue Jan 4, 12:12 pm)
Re: [PATCH 00/31] Refactor rebase, Thomas Rast, (Tue Jan 4, 12:57 pm)