While trying to count the lines of code in a Subversion branch which contains renamed folders, Process Dashboard 2.0's LOC Counter fails with the error shown below. I'm trying to use the "Count revisions whose log messages contain the token:". The token I entered is 17218 which is a ticket number on each svn commit.
I've used the LOC Counter lots of times without any problems. But there's something about this combination of SVN commits that's causing a problem.
An unexpected error occurred during the LOC comparison operation:
java.lang.IllegalException: Cannot undelete a file which has not been deleted
at net.sourceforge.processdash.tool.diff.impl.svn.SvnFile.undeleteAndRename(SvnFile.java:100)
at net.sourceforge.processdash.tool.diff.impl.svn.SvnFileSet.handleAddedLogEntries(SvnFileSet.java:397)
at net.sourceforge.processdash.tool.diff.impl.svn.SvnFileSet.processLogEntry(SvnFileSet.java:278)
at net.sourceforge.processdash.tool.diff.impl.svn.SvnFileSet.processLogEntries(SvnFileSet.java:230)
at net.sourceforge.processdash.tool.diff.impl.svn.SvnFileSet.getFilesToAnalyze(SvnFileSet.java:191)
at net.sourceforge.processdash.tool.diff.engine.DiffEngine.addFilesToAnalyze(DiffEngine.java:115)
at net.sourceforge.processdash.tool.diff.ui.LOCDiffDialog$WorkerThread.run(LOCDiffDialog.java:291)
The LOC counter attempts to determine the lineage of renamed files and folders so it can track the modifications within a file even when the file has been renamed or moved. But that is a very tricky problem. Apparently this particular set of folder renames has resulted in file lineage complexities which the LOC counter didn't anticipate.
Unfortunately, I cannot think of any way to troubleshoot the error without connectivity to your SVN repository. :-(
I could setup a webex if you'd like to poke at the Subversion repo.
I'm not sure of the exact steps to reproduce the issue. I think it would be something like:
1. Add to a trunk some folders and files to subversion that look something like trunk/folderA/subfolderB/file1
2. svn copy ("branch") trunk
3. Install TortoiseSVN 1.7.x
4. Right-click on branch/folderA, drag and drop to branch/, on the TortoiseSVN drop menu, select "SVN COPY and rename versioned item here". Name the new folderC.
5. Right-click on branch/folderC/subfolderB, select TortioseSVN->Rename in the right-click menu. Rename as subfolderC.
6. Commit the branch changes.
7. Run the LOC Counter on the commit.
I'm not having any success duplicating the error, even after performing the directory rename operations as described above.
What svn version is your repository server running?