gitgit-config

Can gitconfig options be set conditionally?


Via Github I use the same set of "dot files" on several different computers and servers. On the Macs and Linux boxes under my direct control I have Sublime Text 2 installed and set up as my git merge and commit editor of choice. However, on remote (i.e., not under my direct control) servers I would select to use vim.

I would rather not create and maintain a second .gitconfig for those remote servers. Is there a way to do something like this:

[core]
    if [[ $IS_REMOTE -eq 1 ]]; then
        editor = "vim"
    else
        editor = "subl -n -w"
    fi

where I've somehow set $IS_REMOTE based on the hostname?


Solution

  • Since it isn't possible to test an environment variable and programmatically alter the .gitconfig, and since scripting the creation of two .gitconfig files feels like more work than I really want to put forth, I'm just going to create two .gitconfig files. On those machines where I can setup Sublime Text 2 as my editor, and have control over the merge tool and diff tool, I'll use the "primary" gitconfig as the target of my symbolic link. On those machines where I don't have ST2 as an option, I'll use the "secondary" gitconfig file.