I was previously using an older version of Sourcetree, and I'd have to keep setting up the external diff tool on every restart of the program. I found a post here that said that was a known issue, and it was fixed in the latest version. So I updated to 3.1.3 for Windows, and while the Tools->Options->Diff menu does remember what I put in there now, it doesn't do anything anymore.
When I try to run one, the Process Log says this:
{
"Command": "git-c diff.mnemonicprefix=false -c core.quotepath=false difftool -y --tool=sourcetree be772c0da4337819b46177dcd6ada189b9cbb464^..be772c0da4337819b46177dcd6ada189b9cbb464 --ble/Source/hal_vault.c",
"Directory": "C:\\Project\\Main",
"Status": "Finished",
"Duration": "00:00:01.0446160",
"CallerContext": "GetExternalDiffProcess",
"Output": "Unknown merge tool sourcetree\nfatal: external diff died, stopping at ble/Source/hal_vault.c\n"
}
I've seen this topic multiple times on here, but none of the solutions seem to be applicable to my situation. I have "Allow Sourcetree to modify your global Git and Mercurial config files" checked. But if I change the tool from within Sourcetree, my .gitconfig file doesn't change. And if I run the command from the log above through the terminal, MINGW64 doesn't give me the error message.
So I don't think Sourcetree knows where my .gitconfig file is located. I found another thread that said it first looks in the path defined by the HOME environment variable; I didn't have one, but I created it, and that still didn't help. So how do I tell Sourcetree where my .gitconfig is, or what other issue am I missing?