Am 28.03.2018 um 23:37 schrieb Stefan Beller:
>> This looks nicer here in the script, but doesn't test exactly what users
>> type most of the time, I suppose.
>>
>> So how about this?
>
> Looks good to me, though I had a nagging feeling at first that the
> regex could be made more concise.
> Why do we need the optional "[^ ]" inside \1 ?
>
>> + sed -e "s/^ \([^ ]* repo\) .*/-\1/" <actual >expect &&
[:xdigit:] would match the hash more precisely, but I don't know how
widely this character class is supported among sed implementations.
And being so strict may require changes once SHA1 is replaced -- new
hashes might be marked with a special character. And it's longer
anyway.
\S could be used instead, but I also don't know how widely this is
supported.
. could be used as well, of course, but that feels a bit sloppy to
me.
Using separate s commands for beginning and end of the line would
be shorter. This here is slightly longer, anyway:
/ repo / {s/^ /-/; s/ (.*//}
What do you have in mind? How to transform this:
b2613938d15a18d9d4a504cacd9654fd1c879197 repo (heads/master)
... into this:
-b2613938d15a18d9d4a504cacd9654fd1c879197 repo
... while keeping other lines unchanged?
René