Skip to content

Respect git environment variables when committing #1622

Open
@Lillecarl

Description

@Lillecarl

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="[email protected]"
export GIT_COMMITTER_EMAIL="[email protected]"
export GIT_AUTHOR_NAME=Your Name"
export EMAIL="[email protected]"
  1. Commit something with git commit
  2. See in the logs that the env var values were used
  3. Commit something with gitui
  4. 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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingupstream

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions