如何使用SVN CLI和/或SVNKit列出所有未版本控制的文件?

时间:2012-06-29 13:38:42

标签: svn svnkit

我正在尝试列出我的SVN工作副本中的每个未版本控制的文件,无论其目录深度如何。让我从命令行上的场景开始 - 我的最终目标是使用SVNKit执行此操作。

如果我在主目录中运行以下命令,

svnadmin create svnrepo
svn mkdir file:///home/foobar/svnrepo/myproj -m "New proj"
svn co file:///home/foobar/svnrepo/myproj
cd myproj
mkdir -p trunk/path/to/new/folder
touch trunk/path/to/new/folder/file.txt
svn status

我看到以下输出,

?       trunk

我想看到的是列表中的file.txt。我知道如果我添加trunk,那么所有文件都会显示出来,但我不能在我的场景中这样做。

在SVNKit中,我正在呼叫getStatusClient().doStatus( new File(myWorkingCopy), SVNRevision.HEAD, SVNDepth.Infinity, false, true, false, false, handler, null)。我的handler实施ISVNStatusHandlerISVNEventHandler以及handleStatus()方法仅看到trunk未版本化。可能正如预期的那样。

有没有人知道通过使用SVNKit查询工作副本根目录的状态是否可能(或如何)获取每个未版本化文件的列表?

由于

1 个答案:

答案 0 :(得分:1)

我很确定纯SVNKit功能(*)无法做到这一点。相反,当您遇到无版本化目录时,您需要自己进行无版本递归。

(*)看看SVNStatusEditor17.getDirStatus:在for(String name : allChildren)循环中,如果是版本化目录(nodeInfo != null),则会有一个递归。但是,如果sendUnversioned没有。