Formato de git: truncando con columnas

Tengo el siguiente command para enumerar las twigs locales en la línea de command:

git for-each-ref --sort=committerdate refs/heads/ --format='%(color:yellow)%(refname:short)%(color:reset);(%(color:green)%(committerdate:relative)%(color:reset));%<(70,trunc)(%(contents:subject)%s)' | column -t -s';' 

todo funciona, excepto el %<(70,trunc) que simplemente se imprime en lugar de aplicarse como un command.

Por los documentos :

'% <(<N> [, trunc | ltrunc | mtrunc])': haga que el siguiente marcador de position tome al less N columnas, espacios de relleno a la derecha si es necesario. Opcionalmente truncar al principio (ltrunc), el medio (mtrunc) o el final (trunc) si la salida es más larga que N columnas. Tenga en count que truncar solo funciona correctamente con N> = 2.

No creo que debería importar, pero esto no funcionó ni en zsh ni en bash.

Aquí hay un fragment de cómo se ve: fragmento de salida de lista de ramas git formateada

Estás leyendo los documentos incorrectos. Los formattings bonitos no son los que se usan en for-each-ref y nada en la documentation de for-each-ref sugiere. Incluso si lee la página de ayuda de bellos formattings, puede ver que esto no constring en absoluto con los marcadores de position que está usando. Tienes cosas como %s , no cosas como %(contents:subject) . (Por cierto, todavía tienes %s en tu patrón que siempre se imprimirá).

Como tiene %(contents:subject) y %s en su patrón, supongo que intenta transformar un patrón de git log un patrón de git for-each-ref , pero esos son totalmente diferentes, razón por la cual el marcador de position relleno / truncado No funciona. Solo está disponible en formattings bonitos, no en formattings for-a-ref.