Re: Gitk doesn't work on macOS Mojave
đź‘Ť > On 20 Jul 2018, at 9:25, Eric Sunshine wrote: > > [re-adding cc:git] > > On Fri, Jul 20, 2018 at 12:38 AM Evgeny Cherpak wrote: >>> On 20 Jul 2018, at 7:30, Eric Sunshine wrote: >>> >>> On Fri, Jul 20, 2018 at 12:11 AM Evgeny Cherpak wrote: Not sure what you referring to? Is it alternative to gitk? How I install it? >>> >>> This: https://git-scm.com/docs/git-gui >>> >>> It's not an alternative to gitk, but complements it by providing >>> ability to stage and create commits, show blame information >>> graphically, etc. >>> >>> It's a standard part of the Git distribution, although it may not be >>> installed by default, depending upon your platform and the packager. >>> Some Linux distributions, for instance, may place it in a separate >>> package for installation (named "git-gui" or something). >> >> Just tried it - it works, but doesn't get focus. > > Looking more closely, the code in "git gui" is catching and silently > ignoring errors: > >## On Mac, bring the current Wish process window to front >if {[tk windowingsystem] eq "aqua"} { >catch { >exec osascript -e [format { >tell application "System Events" >set frontmost of processes whose unix id is %d to true >end tell >} [pid]] >} >} > > which explains why you don't see the "Not authorized to send Apple > events" error you see with gitk, and also explains why the application > doesn't get focus. > > So, updating gitk to mirror git-gui might be one way forward.
Re: Gitk doesn't work on macOS Mojave
[re-adding cc:git] On Fri, Jul 20, 2018 at 12:38 AM Evgeny Cherpak wrote: > > On 20 Jul 2018, at 7:30, Eric Sunshine wrote: > > > > On Fri, Jul 20, 2018 at 12:11 AM Evgeny Cherpak wrote: > >> Not sure what you referring to? > >> Is it alternative to gitk? How I install it? > > > > This: https://git-scm.com/docs/git-gui > > > > It's not an alternative to gitk, but complements it by providing > > ability to stage and create commits, show blame information > > graphically, etc. > > > > It's a standard part of the Git distribution, although it may not be > > installed by default, depending upon your platform and the packager. > > Some Linux distributions, for instance, may place it in a separate > > package for installation (named "git-gui" or something). > > Just tried it - it works, but doesn't get focus. Looking more closely, the code in "git gui" is catching and silently ignoring errors: ## On Mac, bring the current Wish process window to front if {[tk windowingsystem] eq "aqua"} { catch { exec osascript -e [format { tell application "System Events" set frontmost of processes whose unix id is %d to true end tell } [pid]] } } which explains why you don't see the "Not authorized to send Apple events" error you see with gitk, and also explains why the application doesn't get focus. So, updating gitk to mirror git-gui might be one way forward.
Re: Gitk doesn't work on macOS Mojave
[please reply inline rather than top-posting] On Thu, Jul 19, 2018 at 5:11 PM Evgeny Cherpak wrote: > It seems this code placed at the end of the file, after getcommits() does the > trick: > > if {[tk windowingsystem] eq "aqua"} { > set openscript [format { > open -a \"$(ps -p %d -o comm=)\" > } [pid] ] > exec osascript -e [format { > do shell script "%s" > } "$openscript” ] > } Interesting idea. A shortcoming of this approach is that it's non-deterministic. It will bring _any_ running gitk to the foreground, rather than the one mentioned by PID, which would be a potentially confusing regression. Such confusion _might_ be worse than simply not foregrounding the application at all (though that's a matter of opinion). Unfortunately, the 'open' command doesn't let you do so by PID, and Googling shows only answers which predate Mojave (that is, they all suggest Apple Events). To avoid such a regression on older MacOS's, it would be nice to retain the Apple Events code, but that would mean gitk would need to do a version check or something to avoid executing the Apple Events code on Mojave. By the way, the same problem presumably afflicts "git gui", which has identical code in it for foregrounding the application. Does that match with your experience?
Re: Gitk doesn't work on macOS Mojave
It seems this code placed at the end of the file, after getcommits() does the trick: if {[tk windowingsystem] eq "aqua"} { set openscript [format { open -a \"$(ps -p %d -o comm=)\" } [pid] ] exec osascript -e [format { do shell script "%s" } "$openscript” ] } > On 19 Jul 2018, at 22:12, Eric Sunshine wrote: > > On Thu, Jul 19, 2018 at 2:48 PM Evgeny Cherpak wrote: >> You have probably heard this by now already, but gitk doesn’t work on macOS >> 10.14 - because it uses Apple Events, >> And apps on 10.14 require user to give them permissions to control other >> apps with Apple Events. > > This hasn't been reported, so thanks for bringing it up. > >> Here is what I get when I try running it on my machine with beta 4 installed: >> >> Error in startup script: 58:102: execution error: Not authorized to send >> Apple events to System Events. (-1743) >>while executing >> "exec osascript -e [format { >>tell application "System Events" >>set frontmost of processes whose unix id is %d to true >>end te..." > > Fortunately, this feature is merely a convenience, not otherwise > critical to gitk functioning. It would be ideal if someone running > Mojave could devise up a patch to work around the problem (either by > skipping this code on Mojave or discovering a different way to bring > the application to the foreground). An alternative would be to revert > 76bf6ff93e (gitk: On OSX, bring the gitk window to front, 2013-04-24), > which introduced this code. > > (Note, however, that the gitk project is dormant, so it's not clear if > such a patch will be picked up.)
Re: Gitk doesn't work on macOS Mojave
On Thu, Jul 19, 2018 at 2:48 PM Evgeny Cherpak wrote: > You have probably heard this by now already, but gitk doesn’t work on macOS > 10.14 - because it uses Apple Events, > And apps on 10.14 require user to give them permissions to control other apps > with Apple Events. This hasn't been reported, so thanks for bringing it up. > Here is what I get when I try running it on my machine with beta 4 installed: > > Error in startup script: 58:102: execution error: Not authorized to send > Apple events to System Events. (-1743) > while executing > "exec osascript -e [format { > tell application "System Events" > set frontmost of processes whose unix id is %d to true > end te..." Fortunately, this feature is merely a convenience, not otherwise critical to gitk functioning. It would be ideal if someone running Mojave could devise up a patch to work around the problem (either by skipping this code on Mojave or discovering a different way to bring the application to the foreground). An alternative would be to revert 76bf6ff93e (gitk: On OSX, bring the gitk window to front, 2013-04-24), which introduced this code. (Note, however, that the gitk project is dormant, so it's not clear if such a patch will be picked up.)
Gitk doesn't work on macOS Mojave
Hi You have probably heard this by now already, but gitk doesn’t work on macOS 10.14 - because it uses Apple Events, And apps on 10.14 require user to give them permissions to control other apps with Apple Events. Here is what I get when I try running it on my machine with beta 4 installed: Error in startup script: 58:102: execution error: Not authorized to send Apple events to System Events. (-1743) while executing "exec osascript -e [format { tell application "System Events" set frontmost of processes whose unix id is %d to true end te..." invoked from within "if {[tk windowingsystem] eq "aqua"} { exec osascript -e [format { tell application "System Events" set frontmost of processes ..." (file "/usr/local/bin/gitk" line 12212) And Apple doesn’t allow to add apps to “Automation” :( Best regards. And thanks for git :)