gitui-org / gitui-org/gitui

Respect git environment variables when committing

Abierto
#1,622 6 comentarios 0 reacciones 0 asignados Ver en GitHub
bug upstream
Lenguaje dominante
Rust
Estrellas
22.5k
Forks
773
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

**Describe the bug**
According to https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables git uses environment variables as primary source for name and email configuration.

> The final creation of a Git commit object is usually done by git-commit-tree, which uses these environment variables as its primary source of information, falling back to configuration values only if these aren’t present.

**To Reproduce**
Steps to reproduce the behavior:
1. Set:
```
export GIT_COMMITTER_NAME="Your Name"
export GIT_AUTHOR_EMAIL="git@example.com"
export GIT_COMMITTER_EMAIL="git@example.com"
export GIT_AUTHOR_NAME=Your Name"
export EMAIL="git@example.com"
```
2. Commit something with `git commit`
3. See in the logs that the env var values were used
4. Commit something with gitui
5. See in the logs that the git configured user was used instead.

**Expected behavior**
As git docs explains, environment variables should be used as primary source for the git commit command. If the variables are not configured we fall back to git configuration values.

**Screenshots**
Not applicable

**Context (please complete the following information):**
- OS/Distro + Version: Ubuntu 20.04.5
- GitUI Version: gitui 0.22.1
- Rust version: No idea, I use the package from the Nix package manager

**Additional context**
Even though it's suboptimal it's quite common that humans share users on certain machines, when working with Git it's nice to be able to send GIT_* and EMAIL over SSH to Git and gitui 😄
Workaround: Stage with gitui, commit with git (Same workaround as signing commits).

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Comienza en el punto de entrada de commits de gitui y sigue cómo se seleccionan los valores de identidad del autor y del committer para `git commit`. Compara esa selección con las variables de Git GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL, GIT_COMMITTER_NAME, GIT_COMMITTER_EMAIL y EMAIL, y reproduce el comportamiento reportado entre el entorno y la configuración para verificar el resultado.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
git, rust
Área
cli
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.