DiffMerge error messages on OSX (Mavericks)

Support for our DiffMerge utility.

Moderator: SourceGear


Posts: 1
Joined: Wed Feb 12, 2014 6:06 am
PostPosted: Wed Feb 12, 2014 6:08 am
When running/quitting Diffmerge on OSX Mavericks, I find the following messages in the system console:

2014-02-12 13:04:33.848 DiffMerge[93636:507] CoreText performance note: Client called CTFontCreateWithName() using name ".Lucida Grande UI" and got font with PostScript name ".LucidaGrandeUI". For best performance, only use PostScript names when calling this API.
2014-02-12 13:04:33.848 DiffMerge[93636:507] CoreText performance note: Set a breakpoint on CTFontLogSuboptimalRequest to debug.
2014-02-12 13:04:34.364 DiffMerge[93636:507] CoreText performance note: Client called CTFontCreateWithName() using name ".Lucida Grande UI" and got font with PostScript name ".LucidaGrandeUI". For best performance, only use PostScript names when calling this API.


Maybe that could easily be fixed in a future release?

Posts: 534
Joined: Tue Jun 05, 2007 11:37 am
Location: SourceGear
PostPosted: Wed Feb 12, 2014 11:43 am
These are harmless warnings from a library that DiffMerge links with.
Annoying yes, but harmless.

I'm waiting on a fix in that library and then I can do another release
to quiet that message.

j

Posts: 1
Joined: Sat Feb 15, 2014 3:42 am
PostPosted: Sat Feb 15, 2014 3:46 am
When I launch DiffMerge from command line I see a pop up dialog with the following info:
Code: Select all
wxWidgets Debug Alert

/build/sgdm400/Apple/intel/Release_patched/wxWidgets-3.0.0-rc1/src/common/arrstr.cpp(368): assert "nIndex < m_nCount" failed in RemoveAt(): bad index in wxArrayString::Remove

Call stack:
[00] wxFileName::RemoveLastDir()             
[01] dlg_paid::~dlg_paid()                   
[02] dlg_paid::~dlg_paid()                   
[03] wxURI::~wxURI()                         
[04] wxHashTable::~wxHashTable()             
[05] dlg_paid::~dlg_paid()                   
[06] wxLogger::DoLogTrace(wxString const&, wchar_t const*, ...)
[07] wxLogger::DoLogTrace(wxString const&, wchar_t const*, ...)

Do you want to stop the program?
You can also choose [Cancel] to suppress further warnings.

How can i get rid of this? It's really annoying and inconvenient since it pops up every time it's launched from command line.

Thanks!

Posts: 534
Joined: Tue Jun 05, 2007 11:37 am
Location: SourceGear
PostPosted: Tue Feb 18, 2014 12:27 pm
Could you give us a little more information about your system.

Which version of DiffMerge do you have?
Which version of OS X do you have?

What is the command line that causes the error?

Does it run OK when launched from Finder?

thanks

Posts: 3
Joined: Tue Apr 22, 2014 8:49 am
PostPosted: Tue Apr 22, 2014 8:52 am
I'm getting the following error when I try to copy to my clipboard:

Image

The console provides this error as well: /build/sgdm400/Apple/intel/Release_patched/wxWidgets-3.0.0-rc1/src/osx/carbon/clipbrd.cpp(65): assert "m_pasteboard" failed in Clear(): Clipboard creation failed.

This is OS X 10.9.2 and the latest registered DiffMerge (downloaded today).

Posts: 8550
Joined: Wed Jun 21, 2006 8:24 pm
Location: SourceGear
PostPosted: Tue Apr 22, 2014 4:38 pm
What steps are you using for copying the data to the clipboard. Are you using the Export function or just selecting text and trying to copy that with a Mac function?
Beth Kieler
SourceGear Technical Support

Posts: 3
Joined: Tue Apr 22, 2014 8:49 am
PostPosted: Tue Apr 22, 2014 8:21 pm
Just selecting text and command + c.

Posts: 8550
Joined: Wed Jun 21, 2006 8:24 pm
Location: SourceGear
PostPosted: Wed Apr 23, 2014 2:19 pm
We tested it here on 3 different Macs here, of which one was Mavericks. We can't make the same error happen.

Do you have another user with a similar machine you can try this?

Outside of what you see on the screen, what errors do you see in the Systems log files.?
Beth Kieler
SourceGear Technical Support

Posts: 3
Joined: Tue Apr 22, 2014 8:49 am
PostPosted: Thu Apr 24, 2014 9:40 am
It was happening after launching with "git mergetool", but today when I tried to reproduce it, I couldn't. No idea what was going on. If this happens again, I'll revisit it. Thanks for looking into this.

Posts: 8550
Joined: Wed Jun 21, 2006 8:24 pm
Location: SourceGear
PostPosted: Thu Apr 24, 2014 10:22 am
Thanks for the update.
Beth Kieler
SourceGear Technical Support

Posts: 1
Joined: Wed Jul 16, 2014 12:55 pm
PostPosted: Wed Jul 16, 2014 1:12 pm
jeffhostetler wrote:I'm waiting on a fix in that library and then I can do another release
to quiet that message.


In the meantime, the warnings can be quieted by redirecting stderr to /dev/null. Of course this also suppresses other errors and warnings. Here is what I did:

Code: Select all
# In my .zshrc
alias diffmerge='diffmerge 2>/dev/null'


Code: Select all
# in my ~/.gitconfig
[difftool "diffmerge"]
    cmd = /usr/bin/diffmerge 2>/dev/null \"$LOCAL\" \"$REMOTE\"
    ...
   
[mergetool "diffmerge"]
    cmd = /usr/bin/diffmerge 2>/dev/null --merge --result=\"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\"
    ...


Cheers

Posts: 3
Joined: Thu Dec 04, 2014 10:58 am
PostPosted: Mon Feb 16, 2015 10:14 am
zsuhq wrote:When I launch DiffMerge from command line I see a pop up dialog with the following info:
Code: Select all
wxWidgets Debug Alert

/build/sgdm400/Apple/intel/Release_patched/wxWidgets-3.0.0-rc1/src/common/arrstr.cpp(368): assert "nIndex < m_nCount" failed in RemoveAt(): bad index in wxArrayString::Remove

Call stack:
[00] wxFileName::RemoveLastDir()             
[01] dlg_paid::~dlg_paid()                   
[02] dlg_paid::~dlg_paid()                   
[03] wxURI::~wxURI()                         
[04] wxHashTable::~wxHashTable()             
[05] dlg_paid::~dlg_paid()                   
[06] wxLogger::DoLogTrace(wxString const&, wchar_t const*, ...)
[07] wxLogger::DoLogTrace(wxString const&, wchar_t const*, ...)

Do you want to stop the program?
You can also choose [Cancel] to suppress further warnings.

How can i get rid of this? It's really annoying and inconvenient since it pops up every time it's launched from command line.

Thanks!

I'm getting the exact same thing when running git difftool or git mergetool.

I'm running DiffMerge 4.2.0 (697:52f98c4fcb) [intel] stable on Mac OS 10.10.2 (Yosemite).

My .gitconfig looks like this:

Code: Select all
...
[mergetool "diffmerge"]
    cmd = diffmerge --nosplash --merge --result=$MERGED $LOCAL $BASE $REMOTE
    trustExitCode = true
[difftool "diffmerge"]
    cmd = diffmerge --nosplash $LOCAL $REMOTE
...

Posts: 8550
Joined: Wed Jun 21, 2006 8:24 pm
Location: SourceGear
PostPosted: Mon Feb 16, 2015 10:56 am
Did you try the suggestions from the post above yours?

What happens if you use it outside of Git?
Beth Kieler
SourceGear Technical Support

Posts: 3
Joined: Thu Dec 04, 2014 10:58 am
PostPosted: Tue Feb 17, 2015 9:58 am
Beth wrote:Did you try the suggestions from the post above yours?

What happens if you use it outside of Git?

I did, and redirecting stderr to /dev/null did not change anything. Running diffmerge from the command line or through Git as a difftool/mergetool all result in the same error dialog.

Opening DiffMerge.app using Finder or open -a /Applications/DiffMerge.app both work fine.

Posts: 2
Joined: Thu May 07, 2015 12:00 am
PostPosted: Thu May 07, 2015 12:16 am
The error
Code: Select all
/build/sgdm400/Apple/intel/Release_patched/wxWidgets-3.0.0-rc1/src/common/arrstr.cpp(368): assert "nIndex < m_nCount" failed in RemoveAt(): bad index in wxArrayString::Remove


is due to calling the program from the command line without a path, like having it in $PATH

Code: Select all
ls -l | grep diffmerge
  diffmerge -> /opt/homebrew-cask/Caskroom/diffmerge/4.2.0.697/DiffMerge.app/Contents/MacOS/DiffMerge

$ /usr/local/bin/diffmerge <--- works, no error
$ /opt/homebrew-cask/Caskroom/diffmerge/4.2.0.697/DiffMerge.app/Contents/MacOS/DiffMerge <--- works, no error
$ diffmerge <--- works, but gives error


So either use absolute path when calling the program or use a small wrapper script like this:
Code: Select all
#!/bin/bash
/opt/homebrew-cask/Caskroom/diffmerge/4.2.0.697/DiffMerge.app/Contents/MacOS/DiffMerge $@

Save the above to
Code: Select all
/usr/local/bin/diffmerge
and make it executable with
Code: Select all
chmod +x /usr/local/bin/diffmerge


Now
Code: Select all
diffemerge
will run without error.

Maybe SourceGear folks can identify the code causing this now and hopefully fix it so we can avoid this work around.
Next

Return to Support (DiffMerge)

Who is online

Users browsing this forum: No registered users and 2 guests