Hi Brian, we do use the cvs task too. Have you considered to perform an update on an already checked out version? This removes the need for the login completely!
Thanks, Wolfgang > -----Ursprungliche Nachricht----- > Von: Brian M. Kelley [mailto:[EMAIL PROTECTED] > Gesendet: Freitag, 14. Juli 2000 01:56 > An: [EMAIL PROTECTED] > Betreff: cvs task - BufferedReader code in Exec.java > > > Hey all. I apologize if this is a huge letter, but I need all the space > to specify our problem. In using the cvs task in our build.xml, I've ran > into a curious annoyance, having to do with the cvs login > command. So, we > have in our build file something like: > > <!-- Slurp the native link/runtime libraries and headers from the CVS > repository on poe; login first. --> > <cvs > cvsRoot=":pserver:[EMAIL PROTECTED]:/usr/local/projects/share/cvs" > command="login" > /> > ... > > > Upon ant's execution of the cvs login command, we get: > > > [Cvs] (Logging in to [EMAIL PROTECTED]) > > > and we sit and wait for an eternity, _hoping_ to see: > > > [Cvs] CVS Password: > > > but we never do, until we hit carriage-return. I traced this back > to some code in org.apache.tools.ant.taskdefs.Exec : > > > public void pumpStream() > throws IOException > { > byte[] buf = new byte[BUFFER_SIZE]; > if (!endOfStream) { > String line = din.readLine(); > > if (line != null) { > outputLog(line, messageLevel); > } else { > endOfStream = true; > } > } > } > > The deal is that 'cvs login', with a CVSROOT that points to a pserver, > (i.e. CVSROOT=:pserver:[EMAIL PROTECTED]:/mycvs/dir) does an > 'interactive' login, > one that prompts for a password with the string: > > CVS Password: > > with _no_ newline. Thus, when the output stream of the process that is > executing the cvs command is 'pumped' (i.e., the code fragment above > is ran through), din.readLine() is hoping to read a string that > ends with > a newline or carriage-return linefeed (which the cvs interactive login > prompt does not contain). Thus, we don't see the interactive prompt > until we hit our carriage-return (thus not inputting a password for > cvs to validate us, making 'cvs login' fail). Of course, we could just > realize that we don't have to wait for the password prompt, type in > our password, hit enter, and go on our merry way. This doesn't seem > to be the best behavior for a cvs login, though. > > Any workarounds (I've tried a few with no success)? Will there be a fix > for this? Am I completely off base? I read in the code that > jCVS might be > used in the future; How far away from that point are we now? > > I apologize if this subject has come up before and I wasn't around to > hear about it. :) > > > Brian >
