DiffMerge on CodeAnywhere - Not Found

Support for our DiffMerge utility.

Moderator: SourceGear


Posts: 3
Joined: Wed Sep 02, 2015 12:07 pm
PostPosted: Wed Sep 02, 2015 12:22 pm
I installed DiffMerge on my Mac and set it up on a Terminal Window within my Mac in a development dir and it works great running it from my Mac's own terminal window editing file that actually reside on my Mac.

I SSH'd into a "Dev Box" on CodeAnywhere and configured git per the DiffMerge instructions as I had done on my Mac.

Now when I attempt to do a git merge tool in the CodeAnywhere terminal that I ssh'd into from my Mac this is the message that I get:

Hit return to start merge resolution tool (diffmerge):
/usr/lib/git-core/git-mergetool: 1: eval: diffmerge: not found
merge of app/Http/Controllers/WizardController.php failed

Is there a configuration that I missed or something?

Thanks
Last edited by garymize on Thu Sep 03, 2015 6:12 am, edited 1 time in total.

Posts: 8299
Joined: Wed Jun 21, 2006 8:24 pm
Location: SourceGear
PostPosted: Wed Sep 02, 2015 3:55 pm
I'm not familiar with CodeAnywhere. Just to make sure it works on the machine you are connecting to, is it possible for you or someone else to directly access the machine and see if it works that way? If it doesn't then, troubleshooting can be first performed without CodeAnywhere involved, and then tested with CodeAnywhere once it's working directly.

When using CodeAnywhere, is anything pulled to your machine and ran in a temp area and then pushed back?
Beth Kieler
SourceGear Technical Support

Posts: 3
Joined: Wed Sep 02, 2015 12:07 pm
PostPosted: Thu Sep 03, 2015 6:41 am
When I have an SSH terminal connected to a remote server, such as the CodeAnywhere server, and I run "git mergetool" it apparently then runs /usr/lib/git-core/git-mergetool which is not finding diffmerge on the remote system. I don't see where diffmerge actually installs anything on the remote at all.

This is the git config portion that relates to diffmerge:

Code: Select all
diff.tool=diffmerge
difftool.diffmerge.cmd=diffmerge "$LOCAL" "$REMOTE"
merge.tool=diffmerge
mergetool.diffmerge.cmd=diffmerge --merge --result="$MERGED" "$LOCAL" "$(if test -f "$BASE"; then echo "$BASE"; else echo "$LOCAL"; fi)" "$REMOTE"
mergetool.diffmerge.trustexitcode=true


it appears that this is the actual command that git uses to run diffmerge:

Code: Select all
mergetool.diffmerge.cmd=diffmerge --merge --result="$MERGED" "$LOCAL" "$(if test -f "$BASE"; then echo "$BASE"; else echo "$LOCAL"; fi)" "$REMOTE"


the file throwing the error is /usr/lib/git-core/git-mergetool which I traced to this line in that file which is apparently running the above command from the command line and isn't finding diffmerge on the remote machine cuz it isn't installed on the remote machine cuz it was installed on my local machine:

Code: Select all
if ! run_merge_tool "$merge_tool" "$present"
   then
      echo "merge of $MERGED failed" 1>&2
      mv -- "$BACKUP" "$MERGED"

      if test "$merge_keep_temporaries" = "false"
      then
         cleanup_temp_files
      fi

      return 1
fi



It would seem that either there is something I missed installing on the remote or there is a configuration that I missed that tells it to "temp copy" the files to my local then run diffmerge on my local then return the remote files to the remote. I just don't see which was missed in this case.

Thanks

Posts: 8299
Joined: Wed Jun 21, 2006 8:24 pm
Location: SourceGear
PostPosted: Thu Sep 03, 2015 10:28 am
Do you have a way to drop the installer on the remote machine, and then install?
Beth Kieler
SourceGear Technical Support

Posts: 3
Joined: Wed Sep 02, 2015 12:07 pm
PostPosted: Wed Sep 09, 2015 12:34 am
Thank you Beth.

I did copy the installer to the remote as you suggested and it appears to have installed properly on that end. I didn't need to do that when I installed in on my Mac and could still run it in my Mac's Terminal Box so, not knowing just how it works I didn't think that I would have to do it in this case either. When running on my Mac it launches the DiffMerge app on my Mac via a command that git runs in the Mac's Term Box.

After some additional research I discovered that there is indeed an installation required on the remote that works in conjunction with my local app. As I mentioned, I did the install on the remote Term Box and it is attempting to run now but is having problems with the GUI app running via the connection so now I'm looking into what it will take to overcome that hurdle. That has lead me to X11 - I've tried a couple of options there but not quite resolved yet.

Will post a followup.

Posts: 3385
Joined: Tue Dec 16, 2003 1:17 pm
Location: SourceGear
PostPosted: Wed Sep 16, 2015 8:12 am
We're happy you sorted this out.
Jeff Clausius
SourceGear

Return to Support (DiffMerge)

Who is online

Users browsing this forum: No registered users and 3 guests