【问题标题】:How to list all unversioned files with the SVN CLI and/or SVNKit?如何使用 SVN CLI 和/或 SVNKit 列出所有未版本控制的文件?
【发布时间】:2012-06-29 13:38:41
【问题描述】:

我试图在我的 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 查询我的工作副本根目录的状态来获取每个未版本控制文件的列表?

谢谢

【问题讨论】:

标签: svn svnkit


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2012-08-04
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 2013-04-25
    • 2015-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多