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
DiffMerge on CodeAnywhere - Not Found
Moderator: SourceGear
DiffMerge on CodeAnywhere - Not Found
Last edited by garymize on Thu Sep 03, 2015 6:12 am, edited 1 time in total.
Re: DiffMerge on CodeAnywhere - Not Found
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?
When using CodeAnywhere, is anything pulled to your machine and ran in a temp area and then pushed back?
Beth Kieler
SourceGear Technical Support
SourceGear Technical Support
Re: DiffMerge on CodeAnywhere - Not Found
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:
it appears that this is the actual command that git uses to run diffmerge:
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:
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
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
Code: Select all
mergetool.diffmerge.cmd=diffmerge --merge --result="$MERGED" "$LOCAL" "$(if test -f "$BASE"; then echo "$BASE"; else echo "$LOCAL"; fi)" "$REMOTE"
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
Re: DiffMerge on CodeAnywhere - Not Found
Do you have a way to drop the installer on the remote machine, and then install?
Beth Kieler
SourceGear Technical Support
SourceGear Technical Support
Re: DiffMerge on CodeAnywhere - Not Found
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.
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.