RE: How to retrieve the revision of a committed file?
[email protected] Tue, 20 Dec 2005 15:15:03 +0100
| Newsgroups | gmane.comp.java.netbeans.modules.javacvs.devel |
|---|---|
| Organization | http://freemail.web.de/ |
| Message-ID | <[email protected]> |
Hi David, thank you very much. It works :-) Manni [email protected] schrieb am 16.12.05 17:42:34: > > This is what you can do.... > > Write a listener that extends the CVSAdapter class. Specifically, you want > to override the fileInfoGenerated(FileInfoEvent ) method. I grab the > revision from the FileInfoEvent object and store it in a global variable of > my class and add an accessor method to get the revision when the commit > exits. To do this you would need to instantiate an instance of your > listener outside of your method that does the committing so you have access > to it when the commit returns. Here is my code that I use in the > fileInfoGenerated() method: > > public void fileInfoGenerated(FileInfoEvent event) > { > super.fileInfoGenerated(event); > _revision = > ((CommitInformation)event.getInfoContainer()).getRevision(); > } > > -----Original Message----- > From: [email protected] [mailto:[email protected]] > Sent: Friday, December 16, 2005 3:08 AM > To: [email protected] > Subject: [javacvs-dev] How to retrieve the revision of a committed file? > > Hi all, > > I'm new to the javacvs library, so apologize, if this is a stupid > question... > > I want to commit a file to the CVS repository, and read the response of the > server to retrieve the revision of the file just checked in. What is the > state-of-the-art way to do this? > > Should I parse one the messages of a messageSent event (such as "new > revision: 1.14; previous revision: 1.13"), or is there a more elegant way? > I wonder about the meaning of isTagged()... (never saw "true" in my tests). > > Can I use the CommitInformation class for this purpose (and if so, how)? > > > Thanks a lot, > > -- > Manni > > P.S.: The code of a sample app follows (without imports): > > public class TestRetrieveRevision { > > public class InfoListener extends CVSAdapter { > public void messageSent(MessageEvent e) { > // parse the message?? Or a more elegant way? > System.out.println("message: " + e.getMessage()); > System.out.println("isTagged: " + e.isTagged()); // always > false > } > } > > > private String cvsroot = ":pserver:mb@Halley:2401/srv/cvs/repository0"; > private String passWord = "xxxxxx"; > private String path = "D:/tmp/workingdir/testfile.txt"; > > private void doIt() throws AuthenticationException, CommandException > { > GlobalOptions globalOptions = new GlobalOptions(); > globalOptions.setCVSRoot(cvsroot); > > PServerConnection connection = > new PServerConnection(CVSRoot.parse(cvsroot), > SocketFactory.getDefault()); > connection.setEncodedPassword( > > StandardScrambler.getInstance().scramble(passWord)); > connection.open(); > > > // The files array contains exactly one File > File[] files = new File[1]; > files[0] = new File(path); > > String localPath = files[0].getParent(); > > Client client = new Client(connection, new > StandardAdminHandler()); > client.setLocalPath(localPath); > client.getEventManager().addCVSListener(new InfoListener()); > > // run the commit command > CommitCommand command = new CommitCommand(); > command.setBuilder( > new CommitBuilder(client.getEventManager(), > localPath, cvsroot)); > command.setRecursive(false); > > // set the file to be commited > command.setFiles(files); > > System.out.println(command.getCVSCommand()); > client.executeCommand(command, globalOptions); > } > > > public static void main(String[] args) throws > AuthenticationException, CommandException { > TestRetrieveRevision test = new TestRetrieveRevision(); > test.doIt(); > } > } > __________________________________________________________________ Nur bis 31.12.: 1&1 DSL mit WEB.DE Preisvorteil! Jetzt einsteigen und die Vorteile sichern! http://1und1dsl.web.de/?mc=021130