Re: [PATCH v3 3/8] rebase: be stricter when reading state files containing oids
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Oct 13, 2022, 20:13 UTC
- Message-ID
- <xmqqa65zfpo2.fsf@gitster.g>
- In-Reply-To
- <221013.86fsfrleqi.gmgdl@evledraar.gmail.com>
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
Show 18 quoted lines
> On Thu, Oct 13 2022, Phillip Wood via GitGitGadget wrote: > >> From: Phillip Wood <phillip.wood@dunelm.org.uk> >> >> The state files for 'onto' and 'orig_head' should contain a full hex >> oid, change the reading functions from get_oid() to get_oid_hex() to >> reflect this. > ... >> @@ -431,7 +431,7 @@ static int read_basic_state(struct rebase_options *opts) >> opts->head_name = starts_with(head_name.buf, "refs/") ? >> xstrdup(head_name.buf) : NULL; >> strbuf_release(&head_name); >> - if (get_oid(buf.buf, &oid)) >> + if (get_oid_hex(buf.buf, &oid)) > > The change looks sensible, maybe a commit message update + assuring > ourselves that we don't care about anyone manually manipulating these > files (e.g. a script with OID abbreviation that would "echo" to these.
"should contain" sufficiently conveys that already, but I do not mind being extra clear, either.
You do not want 6c1221c99975ad3216d82de51ed980fbf327d7f8 to be interpreted as a branch whose name is the 40-hex that points at a wrong commit, when it appears on the state file and I think that the proposed log message gives a reasonable explanation why we do not want to use get_oid() and instead use get_oid_hex(). If the code made sure that 40-hex is followed by end-of-line, that would even be better, but it is not required.