Symlinked gitconfig löst Include relativ zum Symlink auf

Symlinked gitconfig löst Include relativ zum Symlink auf

Ich habe meinen Dotfiles eine Gitconfig hinzugefügt. Um Ordnung zu schaffen, ~/.gitconfigverweist ein symbolischer Link auf die eigentliche Datei, die woanders liegt.

Ich möchte einen Abschnitt wie diesen haben:

[include]
    path = other-file.txt

in meiner Gitconfig. Aber das funktioniert nicht, weil es versucht, ~/other-file.txt(relativ zum Symlink) einzuschließen, was nicht existiert. Stattdessen muss ich Folgendes verwenden:

[include]
    path = /absolute/path/to/other-file.txt

Aber wenn ich mein Dotfiles-Verzeichnis verschiebe, wird dieser Include jetzt nicht mehr funktionieren. Gibt es eine Möglichkeit, den relativen Pfad zum Laufen zu bringen?

Antwort1

Nein, es gibt keine Möglichkeit, Git dazu zu bringen, Symlinks aufzulösen, bevor ein relativer Pfad berechnet wird. In der Dokumentation heißt es ausdrücklich, dass der Pfad relativ zur geladenen Datei ist ~/.gitconfig.

Git unterstützt jedoch mehrere Dateien pro Benutzer. Es gibt $HOME/.gitconfigund $XDG_CONFIG_HOME/git/config. Im letzteren Fall $XDG_CONFIG_HOMEwird standardmäßig verwendet, wenn nicht festgelegt ist ~/.config. Daher können Sie Ihre Git-Konfiguration in speichern ~/.config/git/configund dann auch haben ~/.config/git/other-file.txt, was ordnungsgemäß funktionieren sollte.

verwandte Informationen