Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to parse git version on windows - git version 2.42.0.windows.2 #2686

Closed
Maxim4711 opened this issue Nov 5, 2023 · 3 comments · Fixed by #2849
Closed

Unable to parse git version on windows - git version 2.42.0.windows.2 #2686

Maxim4711 opened this issue Nov 5, 2023 · 3 comments · Fixed by #2849
Assignees
Labels
bug Defects
Milestone

Comments

@Maxim4711
Copy link

Summary

The git version ( installed git portable, git version 2.42.0.windows.2 ) is not recognized by go pass, probably due to this - global gitconfig isn't read, in particular - user.email and user.name from gitconfig are not evaluated

Steps To Reproduce

set GOPASS_DEBUG=Y
gopass init --store pass_test

Output:

🍭 Initializing a new password store ...
2023/11/05 23:12:22.421286 gitconfig/configs.go:67 gitconfig.(*Configs).LoadAll Loading gitconfigs for &{Preset: system:0xc000e52940 global:0xc000e52980 local:0xc000e529c0 worktree:0xc000e52a00 env:0xc000e52a40 workdir: SystemConfig:/etc/gitconfig GlobalConfig:.gitconfig LocalConfig:config WorktreeConfig:config.worktree EnvPrefix:GIT_CONFIG NoWrites:false} ...
2023/11/05 23:12:22.421286 gitconfig/configs.go:73 gitconfig.(*Configs).LoadAll failed to load system config: open /etc/gitconfig: Das System kann den angegebenen Pfad nicht finden.
2023/11/05 23:12:22.421837 gitconfig/configs.go:156 gitconfig.(*Configs).loadGlobalConfigs loaded global config from C:\Users<username>\AppData\Roaming\gopass\config
2023/11/05 23:12:22.421837 gitconfig/configs.go:196 gitconfig.(*Configs).Get no value for user.name found
2023/11/05 23:12:22.421837 gitconfig/configs.go:67 gitconfig.(*Configs).LoadAll Loading gitconfigs for &{Preset: system:0xc000e52b40 global:0xc000e52b80 local:0xc000e52bc0 worktree:0xc000e52c00 env:0xc000e52c40 workdir: SystemConfig:/etc/gitconfig GlobalConfig:.gitconfig LocalConfig:config WorktreeConfig:config.worktree EnvPrefix:GIT_CONFIG NoWrites:false} ...
2023/11/05 23:12:22.422389 gitconfig/configs.go:73 gitconfig.(*Configs).LoadAll failed to load system config: open /etc/gitconfig: Das System kann den angegebenen Pfad nicht finden.
2023/11/05 23:12:22.422932 gitconfig/configs.go:156 gitconfig.(*Configs).loadGlobalConfigs loaded global config from C:\Users<username>\AppData\Roaming\gopass\config
2023/11/05 23:12:22.422932 gitconfig/configs.go:196 gitconfig.(*Configs).Get no value for user.email found
2023/11/05 23:12:22.422932 root/init.go:18 root.(*Store).IsInitialized initializing store and possible sub-stores
2023/11/05 23:12:22.423477 root/init.go:79 root.(*Store).initialize initialize - C:\Users<username>\AppData\Local\gopass\stores\root
2023/11/05 23:12:22.423527 leaf/store.go:52 leaf.New Instantiating "" at "C:\Users\\AppData\Local\gopass\stores\root"
2023/11/05 23:12:22.423527 backend/storage.go:59 backend.DetectStorage Trying requested gitfs for C:\Users<username>\AppData\Local\gopass\stores\root
2023/11/05 23:12:22.423527 fsutil/fsutil.go:36 fsutil.ExpandHomedir No tilde found in C:\Users<username>\AppData\Local\gopass\stores\root
2023/11/05 23:12:22.424626 fsutil/fsutil.go:36 fsutil.ExpandHomedir No tilde found in C:\Users<username>\AppData\Local\gopass\stores\root
2023/11/05 23:12:22.425170 gitconfig/configs.go:67 gitconfig.(*Configs).LoadAll Loading gitconfigs for &{Preset: system:0xc000e52d80 global:0xc000e52dc0 local:0xc000e52e00 worktree:0xc000e52e40 env:0xc000e52e80 workdir:C:\Users<username>\AppData\Local\gopass\stores\root.git SystemConfig:/etc/gitconfig GlobalConfig:.gitconfig LocalConfig:config WorktreeConfig:config.worktree EnvPrefix:GIT_CONFIG NoWrites:false} ...
2023/11/05 23:12:22.425170 gitconfig/configs.go:73 gitconfig.(*Configs).LoadAll failed to load system config: open /etc/gitconfig: Das System kann den angegebenen Pfad nicht finden.
2023/11/05 23:12:22.425793 gitconfig/configs.go:156 gitconfig.(*Configs).loadGlobalConfigs loaded global config from C:\Users<username>\AppData\Roaming\gopass\config
2023/11/05 23:12:22.435192 gitconfig/configs.go:98 gitconfig.(*Configs).LoadAll loaded local config from C:\Users<username>\AppData\Local\gopass\stores\root.git\config
2023/11/05 23:12:22.435780 gitconfig/configs.go:109 gitconfig.(*Configs).LoadAll failed to load worktree config from C:\Users<username>\AppData\Local\gopass\stores\root.git\config.worktree: open C:\Users<username>\AppData\Local\gopass\stores\root.git\config.worktree: Das System kann die angegebene Datei nicht finden.
2023/11/05 23:12:22.436290 backend/storage.go:62 backend.DetectStorage Using requested gitfs for C:\Users<username>\AppData\Local\gopass\stores\root
2023/11/05 23:12:22.583478 gitfs/git.go:185 gitfs.(*Git).Version Failed to parse "2.42.0.windows.2" as semver: Invalid character(s) found in patch number "0.windows.2"
2023/11/05 23:12:22.584080 leaf/store.go:64 leaf.New Storage for => C:\Users<username>\AppData\Local\gopass\stores\root initialized as gitfs(0.0.0,path:C:\Users<username>\AppData\Local\gopass\stores\root)

Expected behavior

global gitconfig is read and gopass init don't ask for git.username and git.email (by setting respective environment variables - it works as expected though)

Environment

  • OS: [e.g. Mac OS X High Sierra, Ubuntu 18.04, Windows 10, ...]
  • OS version: [uname -a]
  • gopass Version: [gopass version]
  • Installation method: [e.g. from source, brew, gopass repo]
    os version: windows 11 22H2 build 22621.2506
    gopass 1.15.8 go1.20.7 windows amd64 (installed via scoop install gopass)

Additional context

probably related to the issue #214

@dominikschulz
Copy link
Member

At first sight this looks like two separate issues.
Parsing the git version should affect how configs are read since git config parsing is implemented in Go w/o calling out to the git CLI.

But both should be fixed.

@dominikschulz dominikschulz added the bug Defects label Nov 6, 2023
@dominikschulz dominikschulz self-assigned this Nov 6, 2023
@dominikschulz dominikschulz modified the milestones: 1.15.9, 1.15.10 Nov 6, 2023
dominikschulz added a commit to dominikschulz/gopass that referenced this issue Nov 12, 2023
See gopasspw#2686

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
dominikschulz added a commit that referenced this issue Nov 18, 2023
* [bugfix] Improve git version parsing

See #2686

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* Fix lint issues

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

---------

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
@AnomalRoil
Copy link
Member

AnomalRoil commented Nov 18, 2023

I wonder if this is really fixed in the linked PR @dominikschulz :

config: open /etc/gitconfig: Das System kann den angegebenen Pfad nicht finden.

This isn't a Windows path at all. Should we look elsewhere for system config on Windows?

@dominikschulz
Copy link
Member

That is correct. This path does certainly not exist on Windows.

dominikschulz added a commit to dominikschulz/gopass that referenced this issue Mar 29, 2024
The gitconfig package was incorrectly using gopass specific
locations when trying to load global (per user) git configs.

This change makes it use the correct locations.

Fixes gopasspw#2686

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
dominikschulz added a commit that referenced this issue Mar 29, 2024
* [bugfix] Fix loading of git configs

The gitconfig package was incorrectly using gopass specific
locations when trying to load global (per user) git configs.

This change makes it use the correct locations.

Fixes #2686

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* Fix typo

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* Fix linter issues

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* Fix failing tests

Those started to fail because we are now correctly reading
global git configs.

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

---------

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Defects
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants