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

Re: [RFC PATCH 0/4] git-gui: support SHA-256 repositories

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Oct 11, 2021, 14:15 UTC
Message-ID
<87bl3vlk0j.fsf@evledraar.gmail.com>
In-Reply-To
<20211011121757.627-1-carenas@gmail.com>
On Mon, Oct 11 2021, Carlo Marcelo Arenas Belón wrote:
Show 28 quoted lines
> While poking a SHA-256 hash repository, was surprised to find gitk
> would fail with a fatal error when called, hence this series.
>
> Sending as an RFC, since I am not a git-gui or gitk user, and so
> while this fixes the original issue and allows me to call gitk to
> see the branch merge history (which is usually as much as I do with
> it), it is likey missing some changes, as most of them where found
> by lightly poking at all of the gui menus (except for remote or tool)
>
> It could also be reordered to reduce unnecessary churn and of course
> also needs the gitk change[1] that was sent independently, and better
> commit messages.
>
> [1] https://lore.kernel.org/git/20211011114723.204-1-carenas@gmail.com/
>
> Carlo Marcelo Arenas Belón (4):
>   blame: prefer null_sha1 over nullid and retire later
>   rename all *_sha1 variables and make null_oid hash aware
>   expand regexp matching an oid to be hash agnostic
>   track oid_size to allow for checks that are hash agnostic
>
>  git-gui.sh                   | 30 ++++++++++++++++--------------
>  lib/blame.tcl                | 18 +++++++++---------
>  lib/checkout_op.tcl          |  4 ++--
>  lib/choose_repository.tcl    |  2 +-
>  lib/commit.tcl               |  3 ++-
>  lib/remote_branch_delete.tcl |  2 +-
>  6 files changed, 31 insertions(+), 28 deletions(-)

There was a similar series earlier this year which didn't make it that fixes some of the same issues: https://lore.kernel.org/git/pull.979.git.1623687519832.gitgitgadget@gmail.com/

My comment on this one is much the same as that: I don't use this software, and if you've tested this I trust that it's better & this going in as-is would be better than the status quo.

But also that as noted in the feedback there it seems that:
 1. Figuring out if we're using SHA-1 or SHA-256
 2. Adjusting all regexes to *exactly* math those things, i.e. using
    things like x{40}(?:x{24})

Just seems like a lot of needless work as opposed to just matching x{40,64} or whatever. Yes that's not the same regex semantically, but I think the current code is just being overly strict, i.e. it's parsing some plumbing output, we can trust that the thing that looks like the OID in that position is the OID.

If anything I'd think we could just match [0-9a-f]{4,} in most/all of these cases, would make things like this easier to read:

- if {[regexp {^([a-z0-9]{40}) (\d+) (\d+) (\d+)$} $line line \ + if {[regexp {^([a-z0-9]{40}(?:[0-9a-f]{24})?) (\d+) (\d+) (\d+)$} $line line \

And also the pre-existing [a-z0-9]{40} is a very weird mixture of being overly permissive and overly strict :)

Previous: Pratyush YadavNext: Carlo Arenas
Message 12 of 14 in “git-gui: support SHA-256 repositories”
  1. 0/4 git-gui: support SHA-256 repositoriesCarlo Marcelo Arenas Belón, Oct 11, 2021
  2. 1/4 blame: prefer null_sha1 over nullid and retire laterCarlo Marcelo Arenas Belón, Oct 11, 2021
  3. Pratyush YadavOct 27, 2021
  4. 2/4 rename all *_sha1 variables and make null_oid hash awareCarlo Marcelo Arenas Belón, Oct 11, 2021
  5. Eric SunshineOct 11, 2021
  6. Pratyush YadavNov 13, 2021
  7. 3/4 expand regexp matching an oid to be hash agnosticCarlo Marcelo Arenas Belón, Oct 11, 2021
  8. Pratyush YadavNov 13, 2021
  9. 4/4 track oid_size to allow for checks that are hash agnosticCarlo Marcelo Arenas Belón, Oct 11, 2021
  10. Pratyush YadavNov 13, 2021
  11. Pratyush YadavNov 13, 2021
  12. Ævar Arnfjörð BjarmasonOct 11, 2021
  13. Carlo ArenasOct 11, 2021
  14. Pratyush YadavNov 13, 2021

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.