commitizen / commitizen/cz-cli

Git-generated trailers are not preserved

Abierto
#820 2 comentarios 1 reacción 0 asignados Ver en GitHub
Lenguaje dominante
JavaScript
Estrellas
17.5k
Forks
566
Merge medio
8 h 16 min
PR fusionados (30 d)
1

Descripción

Commitizen's `--hook` option truncates the `COMMIT_EDITMSG` file. This wipes the `Signed-off-by` trailer generated by Git's `-s` flag, as well as any other trailers that might have been there before running Commitizen, and forces us to amend our commits after the fact.

We have a temporary workaround in our hook for this, which might offer some insight:

```sh
#!/bin/bash

file="$1"
type="$2"

if [ -z "$type" ]; then # only run on new commits
#
# Save any commit message trailers generated by Git.
#

trailers=$(git interpret-trailers --parse "$file")

#
# Execute the Commitizen hook.
#

(exec < "/dev/tty" && npx --no-install git-cz --hook) || true

#
# Restore any trailers that Commitizen might have overwritten.
#

printf "\n" >> "$file"

while IFS= read -r trailer; do
git interpret-trailers --in-place --trailer "$trailer" "$file"
done <<< "$trailers"
fi
```

Version: cz-cli@4.2.2, cz-conventional-changelog@3.3.0

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.