1

我试图在我的 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). 我的实现handlerISVNStatusHandler方法只看到未版本化。大概如预期的那样。ISVNEventHandlerhandleStatus()trunk

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

谢谢

4

1 回答 1

1

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

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

于 2012-06-29T13:54:40.640 回答