View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000697 | Subversion for OS/2 & eCS | Bug | public | 2019-09-01 20:48 | 2019-11-15 08:51 |
Reporter | Thomasikus | Assigned To | psmedley | ||
Priority | low | Severity | minor | Reproducibility | always |
Status | closed | Resolution | no change required | ||
Platform | Thinkpad T43 | OS | eComStation | OS Version | 2.1 |
Summary | 0000697: Cannot use PMDiff as an external diff program with svn 1.7.21 (2015-08-10) | ||||
Description | Cannot run PMDiff as an external 'svn diff' program. kdiff3 works. | ||||
Steps To Reproduce | Local svn server (svn://localhost). The file ASSOEDIT.TXT is in the working copy and has been modified. Running [d:\prevas\testsvnmapp]svn diff ASSOEDIT.TXT --diff-cmd D:/util/pmdiff/pmdiff.exe Index: ASSOEDIT.TXT =================================================================== svn: E000010: Error waiting for process 'D:/util/pmdiff/pmdiff.exe': No children PMDiff never starts. kdiff3 will start properly: [d:\prevas\testsvnmapp]svn diff ASSOEDIT.TXT --diff-cmd d:/apps/kdiff3/kdiff3.exe Index: ASSOEDIT.TXT =================================================================== svn: E000010: Error waiting for process 'd:/apps/kdiff3/kdiff3.exe': No children The message is the same but kdiff3 starts and displays the files. Neither program is in the PATH, and both run perfectly from the command line. The error is in itself not severe since I have an alternative, but it could indicate some other problem. | ||||
Additional Information | I will gladly run any test you require. | ||||
Tags | No tags attached. | ||||
Attached Files | |||||
|
I have done some more testing of this and discovered that the reason PMdiff won't work as an external diff program with Subversion, is that Subversion gives the external diff program arguments that PMdiff cannot handle. A simple OS/2 command file, "get_args.cmd" discovers the arguments from Subversion: svn diff ASSOEDIT.TXT --diff-cmd get_args.cmd %1: -u %2: -L %3: "ASSOEDIT.TXT (revision 49)" %4: -L %5: "ASSOEDIT.TXT (working copy)" %6: D:/Prevas/testsvnmapp/.svn/pristine/0a/0a6c1db129a705ff95f249f598097d630046872d.svn-base %7: D:/Prevas/testsvnmapp/ASSOEDIT.TXT These arguments work fine with kdiff3, but PMdiff expects only two filename arguments, andit cannot handle filenames separated by forward slashes (Unix-style). This is why PMdiff cannot be used directly as an external diff program with Subversion. But it can be used indirectly. A simple REXX program, "xPMdiff.cmd", translates the forward slashes of the filenames into backslashes and calls PMdiff with the two filenames: svn diff ASSOEDIT.TXT --diff-cmd xPMdiff.cmd works perfectly and displays the two temporary files, though the titles supplied by Subversion are lost in this manner. The two files get_args.cmd and xPMdiff.cmd are included in this message in case they are of interest. The conclusion is that this issue can now be closed. /Thomas get_args.cmd (189 bytes)
@echo off rem Turn on echoing to see what the arguments are. echo %%1: %1 echo %%2: %2 echo %%3: %3 echo %%4: %4 echo %%5: %5 echo %%6: %6 echo %%7: %7 echo %%8: %8 echo %%9: %9 xPMdiff.cmd (194 bytes)
/* REXX */ parse arg sw0 sw1 '"' title1 '"' sw2 '"' title2 '"' fname1 fname2 bname1 = Translate(fname1,'\','/') bname2 = Translate(fname2,'\','/') 'D:\util\pmdiff\pmdiff.exe' bname1 bname2 |
Date Modified | Username | Field | Change |
---|---|---|---|
2019-09-01 20:48 | Thomasikus | New Issue | |
2019-11-15 00:54 | Thomasikus | File Added: get_args.cmd | |
2019-11-15 00:54 | Thomasikus | File Added: xPMdiff.cmd | |
2019-11-15 00:54 | Thomasikus | Note Added: 0003376 | |
2019-11-15 08:51 | psmedley | Assigned To | => psmedley |
2019-11-15 08:51 | psmedley | Status | new => closed |
2019-11-15 08:51 | psmedley | Resolution | open => no change required |