2012-06-29 60 views
1

我試圖列出我的SVN工作副本中的每個未版本化的文件,而不管它們的目錄深度如何。讓我從命令行中的場景開始 - 我的最終目標是使用SVNKit完成此任務。如何使用SVN CLI和/或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,那麼所有文件都會顯示出來,但我無法在我的場景中執行此操作。我想打電話給getStatusClient().doStatus(new File(myWorkingCopy), SVNRevision.HEAD, SVNDepth.Infinity, false, true, false, false, handler, null)。我的handler執行ISVNStatusHandlerISVNEventHandlerhandleStatus()方法只看到trunk未版本化。可能如預期的那樣。

有誰知道是否有可能(或如何)通過查詢我的工作副本根目錄下的狀態來獲取每個未版本化文件的列表與SVNKit?

謝謝

+0

問題的SVN CLI部分是這個問題的重複:[如何從svn獲得所有未版本控制的文件列表?](http://stackoverflow.com/questions/216049/how-do-i -get-a-all-unversioned-files-from-svn) –

+0

對不起,我看到了,但我需要仔細設置我的真正問題。 – wsams

回答

1

我敢肯定,這是不可能的純SVNKit功能(*)。相反,當你遇到未版本化的目錄時,你需要自己做非版本化遞歸。

(*)看看SVNStatusEditor17.getDirStatus:在for(String name : allChildren)循環中,如果版本控制的目錄(nodeInfo != null)存在遞歸。但是,在sendUnversioned的情況下沒有。

+0

這是一個好主意,我會試試看。謝謝。 – wsams

相關問題