From: Junio C Hamano Date: Thu, 13 Oct 2022 20:13:01 GMT Subject: Re: [PATCH v3 3/8] rebase: be stricter when reading state files containing oids Message-ID: In-Reply-To: <221013.86fsfrleqi.gmgdl@evledraar.gmail.com> Ævar Arnfjörð Bjarmason writes: > On Thu, Oct 13 2022, Phillip Wood via GitGitGadget wrote: > >> From: Phillip Wood >> >> 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.