Re: Trying to implement Rollback Command
Milos Kleint <[email protected]> Fri, 12 Jul 2002 09:48:33 +0200
| Newsgroups | gmane.comp.java.netbeans.modules.javacvs.devel |
|---|---|
| Message-ID | <[email protected]> |
saad tawwab wrote:
> Hello!!
>
> I am trying to implement the Rollback command using the command that
> have already been implemented in the CVSLib. I am following the "*Fast
> Method of Reverting*" scheme from the PostScript version of Karl Fogel's
> book (this method/scheme is listed on the page # 36 of his book).
>
> The file is reverted to the previous version but I encounter an EOF
> Exception. Is this exception fatal or can I just ignore it. Is there
> anyway of stopping for the exception to be thrown. I have attached my
> code for the method that is responsible for implementing the rollback
> command and the console output along with the exception.
>
>
try exploring the client-server log. you could also try doing the same command sequence with
command-line cvs, because an EOF exception is usually server side problem. The server just stops
sending responses and closes connection..
it happened with the second update, right?
Milos
>
>
> Regards,
> Saad Tawwab
>
>
> ------------------------------------------------------------------------
>
> public void rollbackDocument(String path, String rollbackVersion, String currentVersion){
>
> /*
> The Utilities function is just responsible for initializing the GlobalOptions object
> */
> GlobalOptions globalOptions= Utilities.getGlobalOptionsObject(this.repository);
> /*
> The Utilities function is just responsible for getting a PServerConnection
> */
> PServerConnection pserverConnection = Utilities.getPServerConnection(this.userName,
> this.password,
> this.hostName,
> this.repository);
> String localDirectory;
> localDirectory = Utilities.getWorkingDirectory(path);
> Client client = new Client(pserverConnection, new StandardAdminHandler());
> client.setLocalPath(localDirectory);
> client.getEventManager().addCVSListener(new BasicListener());
> UpdateCommand command = new UpdateCommand();
> command.setBuilder(null);
> command.setRecursive(true);
> command.setBuildDirectories(false);
> command.setPruneDirectories(false);
> File tempFile = new File(path);
> File[] files = new File[1];
> files[0]=tempFile;
>
> // The j arguments that need to be set
> command.setCVSCommand('j',currentVersion);
> command.setCVSCommand('j',rollbackVersion);
there are setters that substitute this and could be more readable..
setMergeRevision1() and setMergeRevision2()
> command.setFiles(files);
> try{
> System.out.println(command.getCVSCommand());
> client.executeCommand(command, globalOptions);
> }
> catch(CommandAbortedException cae){
> System.out.println("Inside CommandAbortedException");
> }
> catch(CommandException ce){
> System.out.println("Inside CommandException");
> ce.printStackTrace(System.out);
> }
>
>
> GlobalOptions newGlobalOptions= Utilities.getGlobalOptionsObject(this.repository);
> PServerConnection newPserverConnection = Utilities.getPServerConnection(this.userName,
> this.password,
> this.hostName,
> this.repository);
>
>
>
> UpdateCommand updateCommand = new UpdateCommand();
> updateCommand.setBuilder(null);
> updateCommand.setRecursive(true);
> updateCommand.setBuildDirectories(false);
> updateCommand.setPruneDirectories(false);
> Client tempClient = new Client(newPserverConnection, new StandardAdminHandler());
> tempClient.setLocalPath(localDirectory);
> tempClient.getEventManager().addCVSListener(new BasicListener());
> File newTempFile = new File(path);
> File[] newfiles = new File[1];
> newfiles[0]=newTempFile;
> updateCommand.setFiles(newfiles);
> try{
> System.out.println(updateCommand.getCVSCommand());
> client.executeCommand(updateCommand, globalOptions);
> }
> catch(CommandAbortedException cae){
> System.out.println("Inside CommandAbortedException");
> }
> catch(CommandException ce){
> System.out.println("Inside CommandException");
> ce.printStackTrace(System.out);
> }
>
> String[] pathToCommit = {path};
> this.checkIn(pathToCommit);
> }
>
>
> ------------------------------------------------------------------------
>
> root :c:\newcvs
> connection established successfully
> update -j 1.28 -j 1.29 ummair.txt
>
> RCS file: c:/newcvs/buttx/ummair.txt,v
> retrieving revision 1.29
> retrieving revision 1.28
> Merging differences between 1.29 and 1.28 into ummair.txt
>
> root :c:\newcvs
> connection established successfully
> update ummair.txt
>
>
>
> Inside CommandException
> java.io.EOFException
> at java.io.DataInputStream.readByte(DataInputStream.java:224)
> at org.netbeans.lib.cvsclient.util.LoggedDataInputStream.readByte(LoggedDataInputStream.java:88)
> at org.netbeans.lib.cvsclient.Client.handleResponse(Client.java:461)
> at org.netbeans.lib.cvsclient.Client.processRequests(Client.java:442)
> at org.netbeans.lib.cvsclient.command.update.UpdateCommand.execute(UpdateCommand.java:294)
> at org.netbeans.lib.cvsclient.Client.executeCommand(Client.java:521)
> at referencelibrary.repository.LibraryRAO.rollbackDocument(LibraryRAO.java:199)
> at versioncontrol.Debug.<init>(Debug.java:25)
> at versioncontrol.Debug.main(Debug.java:34)
> root :c:\newcvs
> connection established successfully
> commit ummair.txt
>
>
>
> Checking in ummair.txt;
> c:/newcvs/buttx/ummair.txt,v <-- ummair.txt
> new revision: 1.30; previous revision: 1.29
> done
>
>
>
> ------------------------------------------------------------------------
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]