On Fri, Nov 24, 2023 at 6:37 AM Patrick Steinhardt <ps@xxxxxx> wrote: > We're manually parsing the HEAD reference in git-prompt to figure out > whether it is a symbolic or direct reference. This makes it intimately > tied to the on-disk format we use to store references and will stop > working once we gain additional reference backends in the Git project. > > Refactor the code to always use git-symbolic-ref(1) to read HEAD, which > is both simpler and compatible with alternate reference backends. This may get some push-back from Windows folks due to high process-creation cost on that platform. As I recall, over the years, a good deal of effort has been put into reducing the number of programs run each time the prompt is displayed, precisely because invoking Git (or other programs) multiple times became unbearably slow. In particular, optimizations efforts have focussed on computing as much as possible within the shell itself rather than invoking external programs for the same purpose. Thus, this seems to be taking a step backwards in that regard for the common or status quo case. Would it be possible instead to, within shell, detect if the historic file-based backend is being used in the current repository, thus continue using the existing shell code for that case, and only employ git-symbolic-ref if some other backend is in use? > Signed-off-by: Patrick Steinhardt <ps@xxxxxx>