When I open a Terminal window in the appropriate folder and issue this command:
git difftool -y KMEditor.scpt
It opens Beyond Compare just like it should. (I have Beyond Compare set up as git’s diff tool).
But if I do the same thing in a Shell Script from KM:
cd "/Users/Dan/Documents/Development/JXA/JXA Libraries/Dev/Sources"
git difftool -y KMEditor.scpt
I get this error:
The diff tool bc3 is not available as 'bcompare’
fatal: external diff died, stopping at Dev/Sources/KMEditor.scpt
The problem has nothing to do with the folder, or anything like that. It has something to do with how git resolves “bc3” - see the following.
When I set up Beyond Compare as git’s diff tool, I followed the instructions at http://www.scootersoftware.com/support.php?zz=kb_vcs_osx. Specifically:
So somehow git resolves “bc3” to the application “bcomp”, and this works from a terminal window. But it doesn’t work from a shell script.
I’ve managed to cobble together a workaround involving a macro that opens a Terminal window and types in the necessary commands, but it’s pretty kludgy.
Any help would be appreciated.
We’ve talked about the fact that Keyboard Maestro’s Execute a Shell Script action creates an unadulterated environment.
You clearly have made changes to your log-in shell environment that aren’t reflected in Keyboard Maestro’s shell environment.
Scope these out:
Thanks, Chris. I tried doing this:
git difftool -y "$KMVAR_zzFileName"
and it says:
/Users/Dan/.profile: No such file or directory
I don’t have a clue where to go from there.
See if this works. It’ll run as a log-in shell.
#!/usr/bin/env bash -l
git difftool -y <hard-coded-path>;
I haven’t gotten around to using
git yet, so I don’t know how it manages its config files.
Have a look at this:
You may or may not have a ~/.bashrc file.
set in the Terminal and see what you find.
Look at all the invisible files in your home directory:
ls -ld .*
ls -a | egrep -i "git"
When I do this sort of thing I normally fire up ForkLift or Path Finder and turn on show-invisibles, but the Terminal runs 24/7 on my system and is sometimes more convenient.
You can use the Finder to view invisibles, although I find this method inconvenient and don’t use it (since I have better tools for the job).
In the Terminal:
defaults write com.apple.finder AppleShowAllFiles -bool true; killAll Finder
defaults write com.apple.finder AppleShowAllFiles -bool false; killAll Finder
Which reminded me to post these:
In Finder (I am on Sierra) I can toggle invisible files by using this shortcut Command-Shift-Period
Heck, this must be new with Sierra!? Previously it only worked in Open/Save dialogs.
Many thanks for the tip, this has totally escaped me!
I hope you are not malade,
your tip is really, exceptionally, really (yes, 2 times) great. Formerly I used Forklift or Terminal when I wanted to see the contents of my HOME folder or similar…
I’m with Tom – this is a great tip!
One small caveat – when using this method the Finder will NOT show you
Potentially that means other file types might be hidden at any time Apple sees fit, so I won’t give up my forensic tools just yet.
That said – I don’t anticipate needing them anymore for mundane stuff – I’m delighted to say.
Someone at Apple woke up and smelled the green tea…
Hey, finally they – Apple got something right.
That Cmd-Shift-Period existed since 2003 or whatnot? In Save dialogs, of course. Only in dialogs. Of course. And , in case I forgot mention it , only in Save dialogs.
Wow, now, finally after 15 years OS X we can do this also in the damn Finder window.
You know what?: I think this was a left-over from a debugging-Finder. But they will leave it in
Heck, that’s not a caveat, that’s a feature
No, seriously, I think, this was a good tweak.
Who wants to see
Even Onyx will trash them.
 Edit: Proposes to trash them