Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> writes: > B.t.w. you can probably speed up & simplify your script a lot by making > use of IFS="" in the shell and not calling N for-each-ref commands when > it seems to me that one invocation would do. Just dump the N fields you > need split on some token, and split on that token in your loop. A hidden gem in for-each-ref is its ability to quote the placeholder values in a language specific way, and that is to allow the --format to generate a script that can be eval'ed. E.g. $ git for-each-ref --shell \ --format='doit %(authorname) %(subject)' refs/heads/ab/\* | head -n 3 doit 'Ævar Arnfjörð Bjarmason' 'branch: show "HEAD detached" first ...' doit 'Ævar Arnfjörð Bjarmason' 'CoC: update to version 2.0 + local ...' doit 'Ævar Arnfjörð Bjarmason' 'config.mak.uname: remove unused NEE...' so that you can prepare doit () { person=$1 subject=$2 ... do things on the branch data ... } beforehand and then eval the output from the script you wrote with "git for-each-ref".