Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: [PATCH] Fix hexdump command used for mercurial dirstate parsing



On Sun, Oct 30, 2016 at 3:47 AM, Reed Riley <john.reed.riley@xxxxxxxxx> wrote:
> Normally, the old command works.  But very rarely, it outputs a string
> like the following instead:
> ❯ hexdump -n20 -e '1/1 "%02x"' .hg/dirstate
> 77bba665e970146bd2be0b2da40092e340*
> 8804
>
> Changing the command resolves the problem:
> ❯ xxd -p -l20 .hg/dirstate
> 77bba665e970146bd2be0b2da40092e340408804
> ---
>  Functions/VCS_Info/Backends/VCS_INFO_get_data_hg | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/Functions/VCS_Info/Backends/VCS_INFO_get_data_hg b/Functions/VCS_Info/Backends/VCS_INFO_get_data_hg
> index f35ad59..abcd8bc 100644
> --- a/Functions/VCS_Info/Backends/VCS_INFO_get_data_hg
> +++ b/Functions/VCS_Info/Backends/VCS_INFO_get_data_hg
> @@ -42,7 +42,7 @@ if zstyle -t ":vcs_info:${vcs}:${usercontext}:${rrn}" get-revision ; then
>      if zstyle -t ":vcs_info:${vcs}:${usercontext}:${rrn}" use-simple \
>              && ( VCS_INFO_check_com hexdump ) && [[ -r ${dirstatefile} ]] ; then
>          # Calling hexdump is (much) faster than hg but doesn't get the local rev
> -        r_csetid=$(hexdump -n 20 -e '1/1 "%02x"' ${dirstatefile})
> +        r_csetid=$(xxd -p -l20 ${dirstatefile})
>      else
>          # Settling for a short (but unique!) hash because getting the full
>          # 40-char hash in addition to all the other info we want isn't

I don't think it's a good idea to add a dependency on Vim here.

-- 
Mikael Magnusson



Messages sorted by: Reverse Date, Date, Thread, Author