Phillip Wood <phillip.wood123@xxxxxxxxx> writes: >> ... These refs are not supposed to be accessed by the user in the >> first place, and we do not document their existence to the best of my >> knowledge. Also, `git rev-parse rebase-merge/autostash` would fail. > > Exactly "rebase-merge/autostash" is a detail of the rebase > implementation, it is not a ref that users should be using. > >> So overall I think it's fine to leave this internal sequencer state as >> self-contained as it is. > > That's my feeling too Good. As long as "git rev-parse rebase-merge/autostash" fails, and regardless of the ref backend in use, we always do "read one line from the on-disk file and run get_oid_hex() on it", I would be happy with that direction. Thanks. [Footnote] * We seem to overuse strbuf_read_file() even when we expect that the file is a single-liner. We have read_line_from_git_path() in wt-status.c that only reads one line and we may want to split it into two: one that takes a filename and calls the other with git_path("%s", filename), and the other that takes a path for any on-disk file, reads a single line, and returns the string that was read, or something like that. We might later want to update the "other" function so that it errors out if there are extra trailing lines (i.e. we expect it is a single-liner, but that expectation is violated---now what?).