我正在尝试列出我的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
实施ISVNStatusHandler
和ISVNEventHandler
以及handleStatus()
方法仅看到trunk
未版本化。可能正如预期的那样。
有没有人知道通过使用SVNKit查询工作副本根目录的状态是否可能(或如何)获取每个未版本化文件的列表?
由于
答案 0 :(得分:1)
我很确定纯SVNKit功能(*)无法做到这一点。相反,当您遇到无版本化目录时,您需要自己进行无版本递归。
(*)看看SVNStatusEditor17.getDirStatus
:在for(String name : allChildren)
循环中,如果是版本化目录(nodeInfo != null
),则会有一个递归。但是,如果sendUnversioned
没有。