Skip to content

Git Executable Detection

Hans Unzner edited this page May 15, 2023 · 1 revision

As Git Graph requires a Git executable to be present on the users computer to run underlying the Git commands, when Visual Studio Code is opened the extension must find it. The following steps are performed by the extension to determine the absolute path of the Git executable:

  1. If Visual Studio Code & Git Graph have previously been opened, the extension will check to see if the last known Git executable still exists. If it does, it will use it. This speeds up the extension start up time.
  2. If the user has manually set the path and file name of a Git executable in the Visual Studio Code setting git.path, the extension checks to see if it is a valid Git executable. If it is, it will use it.
  3. Depending on the platform returned by Node.js:
    • darwin (Mac & Linux): Runs the command which git to determine the absolute path of the Git executable.
    • win32 (Windows): Checks the following directories for the Git executable (matching the Visual Studio Code behaviour), and returns as soon as the first match is found:
      • process.env['ProgramW6432'] + '\Git\cmd\git.exe
      • process.env['ProgramFiles(x86)'] + '\Git\cmd\git.exe
      • process.env['ProgramFiles'] + '\Git\cmd\git.exe
      • process.env['LocalAppData'] + '\Git\cmd\git.exe
      • All directories in process.env['PATH']

Notes

  • If you use git.path, make sure:
    • It is the path and file name of a Git executable (e.g. C:\Program Files\Git\bin\git.exe).
    • Backslashes are correctly escaped for JSON (e.g. "git.path": "C:\\Program Files\\Git\\bin\\git.exe")
  • If you have multiple versions of Git executables on your computer, you can check to see which Git executable is being used by the extension in the log (which is shown in a Visual Studio Code Output Channel).
    • For example: [2019-08-23 09:23:28.691] Using C:\Program Files\Git\cmd\git.exe (version: 2.17.1.windows.2)
Clone this wiki locally