changes to cvsgui_protocol/AppGlue that might be interesting for gCvs

Jens Miltner <[email protected]>
Newsgroups gmane.comp.version-control.cvs.gui.devel
Message-ID <[email protected]>
Hi,

I recently made two changes to the cvsgui_protocol / AppGlue sources 
for MacCvs, that I think might also apply for gCvs (however, they're 
conditionalized for MacCvs only currently):

(1) catch stdio output from the cvs process: some of the information 
printed by cvs and it's child processes (e.g. ssh) are done using 
regular printf and thus ended up in the system console instead of 
MacCvs console. I've added some code to create pipes for stdout and 
stderr and insert the information written there into our cvsconsole 
stream.
While in theory, this might cause partial lines written through stdout 
to be mixed up with partial lines written through the cvsgui_wire 
protocol, in real life, I haven't yet seen this - I think usually, the 
information is separated enough so it doesn't end up intermixed.
I assume that gCvs should have the same problems, as the runtime 
environments w.r.t. launching the cvs process are similar (both unix 
based), so you may want to check whether this modification also applies 
to gCvs.
[One test case would be to try to access a remote ssh repository 
without having set up an ssh-agent that can deliver the ssh key. In 
that case, the ssh errors ended up in the system console on MacCvs, but 
the MacCvs log contained the line "error while connecting (see messages 
above)" (or similar), but the cited "messages above" actually ended up 
in the system console and thus were rather hard to discover]

(2) When the cvs process was terminated, MacCvs never ever closed the 
pipes it created to communicate with the cvs process. This caused 
MacCvs to eventually run out of file descriptors after it had performed 
quite a few cvs operations. I fixed this (again conditionalized for 
MacCvs only) by making sure the cvs process information is properly 
destroyed after cvs finished. Again, from what I could read from the 
code, I assume the same problem occurs in gCvs.
The fix for MacCvs is a call to cvs_process_destroy() after we've 
waited for the cvs process to terminate in launchCvs.


</jum>

[Non-text portions of this message have been removed]



 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
     http://groups.yahoo.com/group/cvsgui-dev/

<*> To unsubscribe from this group, send an email to:
     [email protected]

<*> Your use of Yahoo! Groups is subject to:
     http://docs.yahoo.com/info/terms/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.