git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 1/3] rebase: guard against missing files in read_basic_state()

From
Junio C Hamano <gitster@pobox.com>
Date
Jun 13, 2013, 22:29 UTC
Message-ID
<7vy5adskz3.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1371139573-28047-2-git-send-email-artagnon@gmail.com>
Ramkumar Ramachandra <artagnon@gmail.com> writes:
> Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>

This does not affect correctness; i.e. head_name=$(cat that-file) will error out if the file is missing, right?

A more troublesome is that nobody seems to check the return value of this function. If head-name, onto or orig-head is missing, is that an error condition that should make the callers of read_basic_state stop and refuse to proceed?

The way the && cascade is used seems to indicate that, but up to the point where it sents $verbose. If and only if head-name, onto, orig-head and quiet can be read in state-dir, verbose in state-dir is checked and only then $verbose is set.

Martin, this seems to be from your series around early Feburary
2011.  Do you recall why these checks are cascaded this way?
I do not offhand think of a good reason.
Show 17 quoted lines
> ---
>  git-rebase.sh | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/git-rebase.sh b/git-rebase.sh
> index d0c11a9..2122fe0 100755
> --- a/git-rebase.sh
> +++ b/git-rebase.sh
> @@ -84,6 +84,8 @@ keep_empty=
>  test "$(git config --bool rebase.autosquash)" = "true" && autosquash=t
>  
>  read_basic_state () {
> +	test -f "$state_dir/head-name" &&
> +	test -f "$state_dir/onto" &&
>  	head_name=$(cat "$state_dir"/head-name) &&
>  	onto=$(cat "$state_dir"/onto) &&
>  	# We always write to orig-head, but interactive rebase used to write to
Previous: Ramkumar RamachandraNext: Martin von Zweigbergk
Message 3 of 7 in “Fix a couple of edge cases in autostash”
  1. 0/3 Fix a couple of edge cases in autostashRamkumar Ramachandra, Jun 13, 2013
  2. 1/3 rebase: guard against missing files in read_basic_state()Ramkumar Ramachandra, Jun 13, 2013
  3. Junio C HamanoJun 13, 2013
  4. Martin von ZweigbergkJun 16, 2013
  5. Junio C HamanoJun 20, 2013
  6. 2/3 rebase: finish_rebase() in fast-forward rebaseRamkumar Ramachandra, Jun 13, 2013
  7. 3/3 rebase: finish_rebase() in noop rebaseRamkumar Ramachandra, Jun 13, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.