Hello World,
I have a question and a problem about the VC diff plugin
1) Question: Is it possible (it doesn't to be so at the moment, so maybe planned) to configure an external diff viewer to start instead of the version control diff?
2) Problem: If I try the VC Diff plugin in Windows, I get a message that it cannot read the diff output (Kann die Ausgabe von "diff" nicht einlesen). It is version 0.14 for Windows, under Windows XP; we use CVSNT (http://www.cvsnt.org/wiki) for version controlling (it is more or less compatible to standard CVS. Any tipps to make it working?
Best regards Andreas
On Tue, 13 May 2008 10:50:26 +0200, Andreas Tscharner andy@vis.ethz.ch wrote:
Hi Andreas,
- Question: Is it possible (it doesn't to be so at the moment, so
maybe planned) to configure an external diff viewer to start instead of the version control diff?
Not really. And probably there is not much need to, see below.
- Problem: If I try the VC Diff plugin in Windows, I get a message
that it cannot read the diff output (Kann die Ausgabe von "diff" nicht einlesen). It is version 0.14 for Windows, under Windows XP; we use CVSNT (http://www.cvsnt.org/wiki) for version controlling (it is more or less compatible to standard CVS. Any tipps to make it working?
I just tried it on Windows 2000 with cvsnt. I checked out a project, modified a file and used the "From current file" menu item. It works fine except when the file's encoding is e.g. UTF-32. But this is IMO more a problem of CVS as it told on the command line that "binary files differ". I.e. the cvs tool treated the changed file as a binary file.
So, maybe your problem is related to the encoding of the files you use? Did you try GeanyVC (http://users.cosmostv.by/yurand/geanyvc/)? It has many more features and maybe it works better/different.
Regards, Enrico
Enrico Tröger wrote:
On Tue, 13 May 2008 10:50:26 +0200, Andreas Tscharner andy@vis.ethz.ch wrote:
Hi Andreas,
Hello Enrico,
- Question: Is it possible (it doesn't to be so at the moment, so
maybe planned) to configure an external diff viewer to start instead of the version control diff?
Not really. And probably there is not much need to, see below.
I thought so...
[snip]
I just tried it on Windows 2000 with cvsnt. I checked out a project, modified a file and used the "From current file" menu item. It works fine except when the file's encoding is e.g. UTF-32. But this is IMO more a problem of CVS as it told on the command line that "binary files differ". I.e. the cvs tool treated the changed file as a binary file.
I have a UTF-8 file and CVSNT treats it as ASCII, so there should be no problem...
So, maybe your problem is related to the encoding of the files you use? Did you try GeanyVC (http://users.cosmostv.by/yurand/geanyvc/)? It has many more features and maybe it works better/different.
I've just tried it and here it worke with the same file I tried before with the other plugin. Well, it worked somewhat: It showed the diff, but in the status line, I could read: "Something went really wrong."
Best regards Andreas
On Tue, 13 May 2008 17:17:04 +0200, Andreas Tscharner andy@vis.ethz.ch wrote:
Enrico Tröger wrote:
On Tue, 13 May 2008 10:50:26 +0200, Andreas Tscharner andy@vis.ethz.ch wrote:
Hi Andreas,
Hello Enrico,
- Question: Is it possible (it doesn't to be so at the moment, so
maybe planned) to configure an external diff viewer to start instead of the version control diff?
Not really. And probably there is not much need to, see below.
I thought so...
[snip]
I just tried it on Windows 2000 with cvsnt. I checked out a project, modified a file and used the "From current file" menu item. It works fine except when the file's encoding is e.g. UTF-32. But this is IMO more a problem of CVS as it told on the command line that "binary files differ". I.e. the cvs tool treated the changed file as a binary file.
I have a UTF-8 file and CVSNT treats it as ASCII, so there should be no problem...
Hmm. The error message you posted is not as clear as it could be. It is printed when the charset conversion of the received diff data fails. In detail: we need to convert the data we receive from the diff command into UTF-8 because the internal buffer always uses UTF-8. And we assume the data we receive is in the same encoding as the file which was passed to the diff command (i.e. the current file). If the current file is already in UTF-8 and you get this message, then there is really something wrong ;-(.
So, maybe your problem is related to the encoding of the files you use? Did you try GeanyVC (http://users.cosmostv.by/yurand/geanyvc/)? It has many more features and maybe it works better/different.
I've just tried it and here it worke with the same file I tried before with the other plugin. Well, it worked somewhat: It showed the diff, but in the status line, I could read: "Something went really wrong."
Ok, this message is also not very useful (I'll change it tomorrow to be more descriptive). This message is caused by errors when spawning new processes (cvs.exe in this case). IIRC there were some not really critical errors reported by the Win32 API but the new process was spawned correctly anyway.
So, could you start Geany with the command line option "-d" and test again with both plugins? Then an additional console window will open and some more messages are shown, especially of the encoding conversion code.
Thanks.
Regards, Enrico
On Tue, 13 May 2008 18:01:49 +0200 Enrico Tröger enrico.troeger@uvena.de wrote:
On Tue, 13 May 2008 17:17:04 +0200, Andreas Tscharner andy@vis.ethz.ch wrote:
Enrico Tröger wrote:
On Tue, 13 May 2008 10:50:26 +0200, Andreas Tscharner andy@vis.ethz.ch wrote:
Hi Andreas,
Hello Enrico,
- Question: Is it possible (it doesn't to be so at the moment, so
maybe planned) to configure an external diff viewer to start instead of the version control diff?
Not really. And probably there is not much need to, see below.
I thought so...
[snip]
I just tried it on Windows 2000 with cvsnt. I checked out a project, modified a file and used the "From current file" menu item. It works fine except when the file's encoding is e.g. UTF-32. But this is IMO more a problem of CVS as it told on the command line that "binary files differ". I.e. the cvs tool treated the changed file as a binary file.
I have a UTF-8 file and CVSNT treats it as ASCII, so there should be no problem...
Hmm. The error message you posted is not as clear as it could be. It is printed when the charset conversion of the received diff data fails. In detail: we need to convert the data we receive from the diff command into UTF-8 because the internal buffer always uses UTF-8. And we assume the data we receive is in the same encoding as the file which was passed to the diff command (i.e. the current file). If the current file is already in UTF-8 and you get this message, then there is really something wrong ;-(.
So, maybe your problem is related to the encoding of the files you use? Did you try GeanyVC (http://users.cosmostv.by/yurand/geanyvc/)? It has many more features and maybe it works better/different.
I've just tried it and here it worke with the same file I tried before with the other plugin. Well, it worked somewhat: It showed the diff, but in the status line, I could read: "Something went really wrong."
Ok, this message is also not very useful (I'll change it tomorrow to be more descriptive).
I tested the error.
geanyvc write this nonecence to statusbar and print error description to stderr.
Current error description sound as: "The operation completed successfully".
It should be fixed somewhere in win32_spawn().
I added error description to statusbar message in geanyvc git.
Enrico Tröger wrote:
So, could you start Geany with the command line option "-d" and test again with both plugins? Then an additional console window will open and some more messages are shown, especially of the encoding conversion code.
OK, the VC plugin first:
Geany 0.14, GTK+ 2.10.11, GLib 2.12.11 Initializing plugin 'VC' Loaded: D:\DevTools\Geany\plugins\geanyvc.dll (VC) J:\Cm4_dev\src\Ui\MeasCtrl\MPCChangeDlg.pas : Pascal (UTF-8)
*** Here I started the diff command "Diff from current file" ***
CreateChildProcess: CreateProcess failed GetExitCodeProcess failed: Der Vorgang wurde erfolgreich beendet. s_spawn_sync error: Der Vorgang wurde erfolgreich beendet. J:\Cm4_dev\src\Ui\MeasCtrl\MPCChangeDlg.pas.vc.diff : Diff (UTF-8)
As before I have the diff and the status line says: "Something went really wrong"
I activated the VC Diff plugin:
Initializing plugin 'Automatisches Speichern' Initializing plugin 'Class Builder' Initializing plugin 'Exportieren' Initializing plugin 'Dateibrowser' Plugin "d:\DevTools\Geany\plugins\geanyvc.dll" already loaded. Initializing plugin 'Zeichen für HTML' Initializing plugin 'Version Diff' Unloaded: d:\DevTools\Geany\plugins\vcdiff.dll Initializing plugin 'Version Diff' Loaded: d:\DevTools\Geany\plugins\vcdiff.dll (Version Diff) Unloaded: d:\DevTools\Geany\plugins\autosave.dll Unloaded: d:\DevTools\Geany\plugins\classbuilder.dll Unloaded: d:\DevTools\Geany\plugins\export.dll Unloaded: d:\DevTools\Geany\plugins\filebrowser.dll Unloaded: d:\DevTools\Geany\plugins\htmlchars.dll
A diff with the Version Diff (same file as above): CreateChildProcess: CreateProcess failed GetExitCodeProcess failed: Der Vorgang wurde erfolgreich beendet. MPCChangeDlg.pas.vc.diff : Diff (UTF-8)
It worked??!! I closed geany and re-started it in normal (not debug) mode again and tried it again. And this time it worked again. I disabled the VC plugin and tried again, and it worked again.
I removed the geanyvc.dll from the plugins directory, tried again and it worked, so I don't know what was wrong yesterday. Sorry for bothering!
Best regards Andreas
On Wed, 14 May 2008 10:04:07 +0200, Andreas Tscharner andy@vis.ethz.ch wrote:
Enrico Tröger wrote:
So, could you start Geany with the command line option "-d" and test again with both plugins? Then an additional console window will open and some more messages are shown, especially of the encoding conversion code.
OK, the VC plugin first:
Geany 0.14, GTK+ 2.10.11, GLib 2.12.11 Initializing plugin 'VC' Loaded: D:\DevTools\Geany\plugins\geanyvc.dll (VC) J:\Cm4_dev\src\Ui\MeasCtrl\MPCChangeDlg.pas : Pascal (UTF-8)
*** Here I started the diff command "Diff from current file" ***
CreateChildProcess: CreateProcess failed GetExitCodeProcess failed: Der Vorgang wurde erfolgreich beendet. s_spawn_sync error: Der Vorgang wurde erfolgreich beendet. J:\Cm4_dev\src\Ui\MeasCtrl\MPCChangeDlg.pas.vc.diff : Diff (UTF-8)
For non-German readers: the "error" message: "Der Vorgang wurde erfolgreich beendet." means "The process finished successfully".
This message comes from the Windows API as an error code, in detail it happens when GetExitCodeProcess() fails. I probably will never understand why Microsoft return error messages telling everything was fine. Maybe it's just that surprising on Windows that something didn't fail that it is noteworthy.
;-).
I removed the geanyvc.dll from the plugins directory, tried again and it worked, so I don't know what was wrong yesterday. Sorry for bothering!
Hmm, just post here if it happens again... and remember the -d command line option ;-).
Regards, Enrico