Here is my problem: I am working on a project as part of my diploma thesis. I am trying to connect to different Open Source project repositories and get info from source files. Actually we analyze the code of this projects and the changes made on it during the time. In other words, we want to see how the software evolves and specify the changes made on. Therefore, we need to connect to a repository using SVNKit and download for each source file its contents for each revision it is changed.
For example let say we have a project with an initial directory structure: - dirA/ -- file1.java -- file2.java The first commit make changes to dirA/file1.java and the second to dirA/file2.java and file1.java. We want to analyze the code of two files (file1.java and file2.java) at initial state and then the changes that were made at file1.java during first and second commit and the changes made at file2.java during second commit. The third commit creates directories and files: - dirB/ -- file3.java - dirA/dirC -- file4.java In the same way as described above we want to analyze the code for dirB/file3.java and dirA/dirC/file4.java, as well as we want to analyze how the (main) directory structure is changed. The 4th commit copies the file file3.java to dirA/dirC/ directory and makes changes to this file. In the same way we want to analyze how the copy operation changed the directory structure and analyze the contents of file3.java before and after the commit. Because we are code oriented we want to get all of the source files from repository and all their revisions. For each revision of a particular file we want the contents of current revision (starting from very first revision) and the previous one, until the last revision. Because a file is not necessary changed at each commit (it might be copied or deleted) there is no need to download a duplicate file with same contents. I know there is a way to retrieve the original state of a file only by having its contents at its last revision by recursively performing backward diff to its contents. For example having the contents of dirA/file1.java at last revision (the one created during second commit) and having the diff output we can retrieve the state of file as it was before this revision (before second commit). This way there is no need to download each file's contents for each revision. So we only have to download the contents of a file at the very first revision and then every diff output (if any) for each revision and perform forward diff to retrieve the state after commit. Can you please provide me some help on how to implement such functionality with SVNKit. It would be very useful if you provide some short code example, and or which classes and methods I have to use, so I can read the java doc. Every help will be appreciate. Thank you in advance, Elvis. -- View this message in context: http://old.nabble.com/Downloading-all-files-in-each-resivision-from-a-SVN-repo-using-SVNkit---Please-HELP-tp32480141p32480141.html Sent from the SVNKit - Users mailing list archive at Nabble.com.
